Excel,在一整列中将一个完整范围追加到另一个范围的末尾
Excel, append one full range to the end of another in one full column
我在 Excel 的不同 sheet 中有两列数据。我想在另一个 sheet 中添加第三列,它结合了第一列和第二列。如何使用公式执行此操作,以便我可以在 sheet 1 中的 A 列和 sheet 2 中的 B 列中添加或删除数据,而无需触摸 [=51= 中的 C 列] 3?
我想复制整列,例如:
=append(SheetName1!A:A ,SheetName2!A:A)
这可能吗?
已编辑:我在使用 Excel 365 时遇到问题,我正在使用 Manjaro Linux,所以我在 chrome浏览器。问题是我有一个 excel 文件,里面有 10 个 sheet。我想从 9 sheet 中获取 A B C 和 D 列,并将它们附加到 sheet 10 上的一个大 table 中。
工作表 1:
Tarefa Atividade Importante Urgente Numero-Total-de-Tarefas
A 1 asd fg gh
A 1 asd fg gh
A 1 asd fg gh
A 1 asd fg gh
A 1 asd fg gh
A 1 asd fg gh
A 1 asd fg gh
A 1 asd fg gh
A 1 asd fg gh
A 1 asd fg gh
A 1 asd fg gh
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...
工作表 2:
Tarefa Atividade Importante Urgente Numero-Total-de-Tarefas
B 1 asd fg gh
B 1 asd fg gh
B 1 asd fg gh
B 1 asd fg gh
B 1 asd fg gh
B 1 asd fg gh
B 1 asd fg gh
B 1 asd fg gh
B 1 asd fg gh
B 1 asd fg gh
B 1 asd fg gh
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...
其他 7 个 table 也一样。
我想获取所有这 9 个 table 并将它们附加到 sheet10
像:
Sheet10
Tarefa Atividade Importante Urgente Numero-Total-de-Tarefas
A 1 asd fg gh
A 1 asd fg gh
A 1 asd fg gh
A 1 asd fg gh
A 1 asd fg gh
A 1 asd fg gh
A 1 asd fg gh
A 1 asd fg gh
A 1 asd fg gh
A 1 asd fg gh
A 1 asd fg gh
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...
B 1 asd fg gh
B 1 asd fg gh
B 1 asd fg gh
B 1 asd fg gh
B 1 asd fg gh
B 1 asd fg gh
B 1 asd fg gh
B 1 asd fg gh
B 1 asd fg gh
B 1 asd fg gh
B 1 asd fg gh
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...
C 1 asd fg gh
C 1 asd fg gh
C 1 asd fg gh
C 1 asd fg gh
C 1 asd fg gh
C 1 asd fg gh
C 1 asd fg gh
C 1 asd fg gh
C 1 asd fg gh
C 1 asd fg gh
C 1 asd fg gh
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...
D ... ... ... ...
D ... ... ... ...
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...
file Link
已编辑:
我想这是我办公室的 @SpectralInstance 公式:
它得到这样的结果:
这是唯一的解释
非常感谢,伙计们
是的,可以使用最新的 Excel 函数:
F1
中的公式:
=VSTACK(TOCOL(A:A,1),TOCOL(D:D,1))
您现在可以根据自己的喜好在任一列中 remove/add 值,而无需调整 F1
中的公式。
了解您的 Excel 版本会很有帮助。因此,如果您没有 Early Adopters 的访问权限,但您是 Office 365,则可以执行以下操作:
=LET( a, A:A, b, B:B,
fa, FILTER( a, NOT(ISBLANK(a))), fb, FILTER( b, NOT(ISBLANK(b))),
ra, ROWS(fa), rb, ROWS(fb),
rSeq, SEQUENCE(ra + rb),
IFERROR( INDEX( fa, rSeq), INDEX( fb, rSeq - ra ) ) )
其中 a 和 b 是您要追加的列。
你可以使用这个公式,我假设两列是 A 和 B:
=FILTERXML("<t><s>"&TEXTJOIN("</s><s>",TRUE,A:A,B:B)&"</s></t>","//s")
FilterXML 也为其他功能打开,您可以在此处探索:
(我的 excel 没有其他一些答案中描述的 lambda 功能)
下面的公式(改编自我在评论中发布的 link)
=LET(one,Sheet1!A1:INDEX(Sheet1!A:A,COUNTA(Sheet1!A:A)),two,Sheet2!A1:INDEX(Sheet2!A:A,COUNTA(Sheet2!A:A)),IFERROR(INDEX(one,SEQUENCE(ROWS(one)+ROWS(two))),INDEX(two,SEQUENCE(ROWS(one)+ROWS(two))-ROWS(one))))
将在 Excel 在线工作,如图所示 (read-only) file。
编辑 2022 年 5 月 4 日
根据您的更新,显着 不同的规范,此公式以及填充半个屏幕的公式将从 Sheet1 获取所有数据,包括 headers,以及工作表 2 到 9 中的 header-exclusive 数据,并合并它们:
=LET(t_1,Sheet1!A1:INDEX(Sheet1!F:F,COUNTA(Sheet1!E:E)),t_2,Sheet2!A2:INDEX(Sheet2!F:F,COUNTA(Sheet2!E:E)),
t_3,Sheet3!A2:INDEX(Sheet3!F:F,COUNTA(Sheet3!E:E)),t_4,Sheet4!A2:INDEX(Sheet4!F:F,COUNTA(Sheet4!E:E)),
t_5,Sheet5!A2:INDEX(Sheet5!F:F,COUNTA(Sheet5!E:E)),t_6,Sheet6!A2:INDEX(Sheet6!F:F,COUNTA(Sheet6!E:E)),
t_7,Sheet7!A2:INDEX(Sheet7!F:F,COUNTA(Sheet7!E:E)),t_8,Sheet8!A2:INDEX(Sheet8!F:F,COUNTA(Sheet8!E:E)),
t_9,Sheet9!A2:INDEX(Sheet9!F:F,COUNTA(Sheet9!E:E)),width,SEQUENCE(,6),
IFERROR(INDEX(t_1,SEQUENCE(ROWS(t_1)),width),
IFERROR(INDEX(t_2,SEQUENCE(ROWS(t_1)+ROWS(t_2))-ROWS(t_1),width),
IFERROR(INDEX(t_3,SEQUENCE(ROWS(t_1)+ROWS(t_2)+ROWS(t_3))-ROWS(t_1)-ROWS(t_2),width),
IFERROR(INDEX(t_4,SEQUENCE(ROWS(t_1)+ROWS(t_2)+ROWS(t_3)+ROWS(t_4))-ROWS(t_1)-ROWS(t_2)-ROWS(t_3),width),
IFERROR(INDEX(t_5,SEQUENCE(ROWS(t_1)+ROWS(t_2)+ROWS(t_3)+ROWS(t_4)+ROWS(t_5))-ROWS(t_1)-ROWS(t_2)-ROWS(t_3)-ROWS(t_4),width),
IFERROR(INDEX(t_6,SEQUENCE(ROWS(t_1)+ROWS(t_2)+ROWS(t_3)+ROWS(t_4)+ROWS(t_5)+ROWS(t_6))-ROWS(t_1)-ROWS(t_2)-ROWS(t_3)-ROWS(t_4)-ROWS(t_5),width),
IFERROR(INDEX(t_7,SEQUENCE(ROWS(t_1)+ROWS(t_2)+ROWS(t_3)+ROWS(t_4)+ROWS(t_5)+ROWS(t_6)+ROWS(t_7))-ROWS(t_1)-ROWS(t_2)-ROWS(t_3)-ROWS(t_4)-ROWS(t_5)-ROWS(t_6),width),
IFERROR(INDEX(t_8,SEQUENCE(ROWS(t_1)+ROWS(t_2)+ROWS(t_3)+ROWS(t_4)+ROWS(t_5)+ROWS(t_6)+ROWS(t_7)+ROWS(t_8))-ROWS(t_1)-ROWS(t_2)-ROWS(t_3)-ROWS(t_4)-ROWS(t_5)-ROWS(t_6)-ROWS(t_7),width),
INDEX(t_9,SEQUENCE(ROWS(t_1)+ROWS(t_2)+ROWS(t_3)+ROWS(t_4)+ROWS(t_5)+ROWS(t_6)+ROWS(t_7)+ROWS(t_8)+ROWS(t_9))-ROWS(t_1)-ROWS(t_2)-ROWS(t_3)-ROWS(t_4)-ROWS(t_5)-ROWS(t_6)-ROWS(t_7)-ROWS(t_8),width)
)))))))))
我在 Excel 的不同 sheet 中有两列数据。我想在另一个 sheet 中添加第三列,它结合了第一列和第二列。如何使用公式执行此操作,以便我可以在 sheet 1 中的 A 列和 sheet 2 中的 B 列中添加或删除数据,而无需触摸 [=51= 中的 C 列] 3?
我想复制整列,例如:
=append(SheetName1!A:A ,SheetName2!A:A)
这可能吗?
已编辑:我在使用 Excel 365 时遇到问题,我正在使用 Manjaro Linux,所以我在 chrome浏览器。问题是我有一个 excel 文件,里面有 10 个 sheet。我想从 9 sheet 中获取 A B C 和 D 列,并将它们附加到 sheet 10 上的一个大 table 中。
工作表 1:
Tarefa Atividade Importante Urgente Numero-Total-de-Tarefas
A 1 asd fg gh
A 1 asd fg gh
A 1 asd fg gh
A 1 asd fg gh
A 1 asd fg gh
A 1 asd fg gh
A 1 asd fg gh
A 1 asd fg gh
A 1 asd fg gh
A 1 asd fg gh
A 1 asd fg gh
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...
工作表 2:
Tarefa Atividade Importante Urgente Numero-Total-de-Tarefas
B 1 asd fg gh
B 1 asd fg gh
B 1 asd fg gh
B 1 asd fg gh
B 1 asd fg gh
B 1 asd fg gh
B 1 asd fg gh
B 1 asd fg gh
B 1 asd fg gh
B 1 asd fg gh
B 1 asd fg gh
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...
其他 7 个 table 也一样。
我想获取所有这 9 个 table 并将它们附加到 sheet10
像:
Sheet10
Tarefa Atividade Importante Urgente Numero-Total-de-Tarefas
A 1 asd fg gh
A 1 asd fg gh
A 1 asd fg gh
A 1 asd fg gh
A 1 asd fg gh
A 1 asd fg gh
A 1 asd fg gh
A 1 asd fg gh
A 1 asd fg gh
A 1 asd fg gh
A 1 asd fg gh
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...
B 1 asd fg gh
B 1 asd fg gh
B 1 asd fg gh
B 1 asd fg gh
B 1 asd fg gh
B 1 asd fg gh
B 1 asd fg gh
B 1 asd fg gh
B 1 asd fg gh
B 1 asd fg gh
B 1 asd fg gh
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...
C 1 asd fg gh
C 1 asd fg gh
C 1 asd fg gh
C 1 asd fg gh
C 1 asd fg gh
C 1 asd fg gh
C 1 asd fg gh
C 1 asd fg gh
C 1 asd fg gh
C 1 asd fg gh
C 1 asd fg gh
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...
D ... ... ... ...
D ... ... ... ...
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...
... ... ... ... ...
file Link
已编辑:
我想这是我办公室的 @SpectralInstance 公式:
它得到这样的结果:
是的,可以使用最新的 Excel 函数:
F1
中的公式:
=VSTACK(TOCOL(A:A,1),TOCOL(D:D,1))
您现在可以根据自己的喜好在任一列中 remove/add 值,而无需调整 F1
中的公式。
了解您的 Excel 版本会很有帮助。因此,如果您没有 Early Adopters 的访问权限,但您是 Office 365,则可以执行以下操作:
=LET( a, A:A, b, B:B,
fa, FILTER( a, NOT(ISBLANK(a))), fb, FILTER( b, NOT(ISBLANK(b))),
ra, ROWS(fa), rb, ROWS(fb),
rSeq, SEQUENCE(ra + rb),
IFERROR( INDEX( fa, rSeq), INDEX( fb, rSeq - ra ) ) )
其中 a 和 b 是您要追加的列。
你可以使用这个公式,我假设两列是 A 和 B:
=FILTERXML("<t><s>"&TEXTJOIN("</s><s>",TRUE,A:A,B:B)&"</s></t>","//s")
FilterXML 也为其他功能打开,您可以在此处探索:
(我的 excel 没有其他一些答案中描述的 lambda 功能)
下面的公式(改编自我在评论中发布的 link)
=LET(one,Sheet1!A1:INDEX(Sheet1!A:A,COUNTA(Sheet1!A:A)),two,Sheet2!A1:INDEX(Sheet2!A:A,COUNTA(Sheet2!A:A)),IFERROR(INDEX(one,SEQUENCE(ROWS(one)+ROWS(two))),INDEX(two,SEQUENCE(ROWS(one)+ROWS(two))-ROWS(one))))
将在 Excel 在线工作,如图所示 (read-only) file。
编辑 2022 年 5 月 4 日
根据您的更新,显着 不同的规范,此公式以及填充半个屏幕的公式将从 Sheet1 获取所有数据,包括 headers,以及工作表 2 到 9 中的 header-exclusive 数据,并合并它们:
=LET(t_1,Sheet1!A1:INDEX(Sheet1!F:F,COUNTA(Sheet1!E:E)),t_2,Sheet2!A2:INDEX(Sheet2!F:F,COUNTA(Sheet2!E:E)),
t_3,Sheet3!A2:INDEX(Sheet3!F:F,COUNTA(Sheet3!E:E)),t_4,Sheet4!A2:INDEX(Sheet4!F:F,COUNTA(Sheet4!E:E)),
t_5,Sheet5!A2:INDEX(Sheet5!F:F,COUNTA(Sheet5!E:E)),t_6,Sheet6!A2:INDEX(Sheet6!F:F,COUNTA(Sheet6!E:E)),
t_7,Sheet7!A2:INDEX(Sheet7!F:F,COUNTA(Sheet7!E:E)),t_8,Sheet8!A2:INDEX(Sheet8!F:F,COUNTA(Sheet8!E:E)),
t_9,Sheet9!A2:INDEX(Sheet9!F:F,COUNTA(Sheet9!E:E)),width,SEQUENCE(,6),
IFERROR(INDEX(t_1,SEQUENCE(ROWS(t_1)),width),
IFERROR(INDEX(t_2,SEQUENCE(ROWS(t_1)+ROWS(t_2))-ROWS(t_1),width),
IFERROR(INDEX(t_3,SEQUENCE(ROWS(t_1)+ROWS(t_2)+ROWS(t_3))-ROWS(t_1)-ROWS(t_2),width),
IFERROR(INDEX(t_4,SEQUENCE(ROWS(t_1)+ROWS(t_2)+ROWS(t_3)+ROWS(t_4))-ROWS(t_1)-ROWS(t_2)-ROWS(t_3),width),
IFERROR(INDEX(t_5,SEQUENCE(ROWS(t_1)+ROWS(t_2)+ROWS(t_3)+ROWS(t_4)+ROWS(t_5))-ROWS(t_1)-ROWS(t_2)-ROWS(t_3)-ROWS(t_4),width),
IFERROR(INDEX(t_6,SEQUENCE(ROWS(t_1)+ROWS(t_2)+ROWS(t_3)+ROWS(t_4)+ROWS(t_5)+ROWS(t_6))-ROWS(t_1)-ROWS(t_2)-ROWS(t_3)-ROWS(t_4)-ROWS(t_5),width),
IFERROR(INDEX(t_7,SEQUENCE(ROWS(t_1)+ROWS(t_2)+ROWS(t_3)+ROWS(t_4)+ROWS(t_5)+ROWS(t_6)+ROWS(t_7))-ROWS(t_1)-ROWS(t_2)-ROWS(t_3)-ROWS(t_4)-ROWS(t_5)-ROWS(t_6),width),
IFERROR(INDEX(t_8,SEQUENCE(ROWS(t_1)+ROWS(t_2)+ROWS(t_3)+ROWS(t_4)+ROWS(t_5)+ROWS(t_6)+ROWS(t_7)+ROWS(t_8))-ROWS(t_1)-ROWS(t_2)-ROWS(t_3)-ROWS(t_4)-ROWS(t_5)-ROWS(t_6)-ROWS(t_7),width),
INDEX(t_9,SEQUENCE(ROWS(t_1)+ROWS(t_2)+ROWS(t_3)+ROWS(t_4)+ROWS(t_5)+ROWS(t_6)+ROWS(t_7)+ROWS(t_8)+ROWS(t_9))-ROWS(t_1)-ROWS(t_2)-ROWS(t_3)-ROWS(t_4)-ROWS(t_5)-ROWS(t_6)-ROWS(t_7)-ROWS(t_8),width)
)))))))))