将多列数据混合到一列中
Mix data of multiple columns into one column
我想将三列的内容合并为一列,如本例所示:
Col1 Col2 Col3
A 1 x
B 2 Y
所以结果是一个包含 8 行的列,如下所示:
Result
A 1 X
A 1 Y
A 2 X
A 2 Y
B 1 X
B 1 Y
B 2 X
B 2 Y
我需要 Google Sheets 命令来执行此操作,而不是 Spreadsheet 解决方案,因为使用 sheet.
时结果值必须自动更改
我已经尝试使用 COMBINE
和 JOIN
,但没有成功。
或者,如果您告诉我如何仅组合三列中的两列,那么我可以在第二步中组合第三列。
2 列:
=ARRAYFORMULA(TRANSPOSE(SPLIT(REPT(CONCATENATE(A1:A&CHAR(9)), COUNTA(B1:B)), CHAR(9)))
&" "&TRANSPOSE(SPLIT(CONCATENATE(REPT(B1:B&CHAR(9), COUNTA(A1:A))), CHAR(9))))
3 列:
=ARRAYFORMULA(
TRANSPOSE(SPLIT(REPT(CONCATENATE(
TRANSPOSE(SPLIT(REPT(CONCATENATE(A1:A&CHAR(9)), COUNTA(B1:B)), CHAR(9)))&" "&
TRANSPOSE(SPLIT(CONCATENATE(REPT(B1:B&CHAR(9), COUNTA(A1:A))), CHAR(9)))&CHAR(9)),
COUNTA(C1:C)),CHAR(9)))&" "&
TRANSPOSE(SPLIT(CONCATENATE(REPT(C1:C&CHAR(9), COUNTA(
TRANSPOSE(SPLIT(REPT(CONCATENATE(A1:A&CHAR(9)), COUNTA(B1:B)), CHAR(9)))&" "&
TRANSPOSE(SPLIT(CONCATENATE(REPT(B1:B&CHAR(9), COUNTA(A1:A))), CHAR(9)))))), CHAR(9))))
分两步 3 列:
=ARRAYFORMULA(TRANSPOSE(SPLIT(REPT(CONCATENATE(D1:D&CHAR(9)), COUNTA(C1:C)), CHAR(9)))
&" "&TRANSPOSE(SPLIT(CONCATENATE(REPT(C1:C&CHAR(9), COUNTA(D1:D))), CHAR(9))))
假设 A
在 A1 中,在 Row1 中并向下复制以适合:
=offset(A,int((row()-1)/4),)&" "&offset(B,abs(iseven(int((row()-1)/2))-1),)&" "&offset(C,mod((row()-1),2),)
旋转、连接、旋转、然后连接等。没有其他方法可以达到此目的。如果我有这样的任务,我会尝试将 N 个矩阵相乘 N-1 次。
=ARRAYFORMULA(TRANSPOSE(SPLIT(
TEXTJOIN("·",TRUE,SPLIT(
TEXTJOIN("·",TRUE,(A2:A3&" "&TRANSPOSE(B2:B3))),
"·")&" "&C2:C3),
"·"
)))
我想将三列的内容合并为一列,如本例所示:
Col1 Col2 Col3
A 1 x
B 2 Y
所以结果是一个包含 8 行的列,如下所示:
Result
A 1 X
A 1 Y
A 2 X
A 2 Y
B 1 X
B 1 Y
B 2 X
B 2 Y
我需要 Google Sheets 命令来执行此操作,而不是 Spreadsheet 解决方案,因为使用 sheet.
时结果值必须自动更改我已经尝试使用 COMBINE
和 JOIN
,但没有成功。
或者,如果您告诉我如何仅组合三列中的两列,那么我可以在第二步中组合第三列。
2 列:
=ARRAYFORMULA(TRANSPOSE(SPLIT(REPT(CONCATENATE(A1:A&CHAR(9)), COUNTA(B1:B)), CHAR(9)))
&" "&TRANSPOSE(SPLIT(CONCATENATE(REPT(B1:B&CHAR(9), COUNTA(A1:A))), CHAR(9))))
3 列:
=ARRAYFORMULA(
TRANSPOSE(SPLIT(REPT(CONCATENATE(
TRANSPOSE(SPLIT(REPT(CONCATENATE(A1:A&CHAR(9)), COUNTA(B1:B)), CHAR(9)))&" "&
TRANSPOSE(SPLIT(CONCATENATE(REPT(B1:B&CHAR(9), COUNTA(A1:A))), CHAR(9)))&CHAR(9)),
COUNTA(C1:C)),CHAR(9)))&" "&
TRANSPOSE(SPLIT(CONCATENATE(REPT(C1:C&CHAR(9), COUNTA(
TRANSPOSE(SPLIT(REPT(CONCATENATE(A1:A&CHAR(9)), COUNTA(B1:B)), CHAR(9)))&" "&
TRANSPOSE(SPLIT(CONCATENATE(REPT(B1:B&CHAR(9), COUNTA(A1:A))), CHAR(9)))))), CHAR(9))))
分两步 3 列:
=ARRAYFORMULA(TRANSPOSE(SPLIT(REPT(CONCATENATE(D1:D&CHAR(9)), COUNTA(C1:C)), CHAR(9)))
&" "&TRANSPOSE(SPLIT(CONCATENATE(REPT(C1:C&CHAR(9), COUNTA(D1:D))), CHAR(9))))
假设 A
在 A1 中,在 Row1 中并向下复制以适合:
=offset(A,int((row()-1)/4),)&" "&offset(B,abs(iseven(int((row()-1)/2))-1),)&" "&offset(C,mod((row()-1),2),)
旋转、连接、旋转、然后连接等。没有其他方法可以达到此目的。如果我有这样的任务,我会尝试将 N 个矩阵相乘 N-1 次。
=ARRAYFORMULA(TRANSPOSE(SPLIT(
TEXTJOIN("·",TRUE,SPLIT(
TEXTJOIN("·",TRUE,(A2:A3&" "&TRANSPOSE(B2:B3))),
"·")&" "&C2:C3),
"·"
)))