【发布时间】:2021-01-07 06:14:05
【问题描述】:
尝试转置数据,以使行转置成单列堆叠在一起。
=ARRAYFORMULA({TRANSPOSE(A1:C1);TRANSPOSE(A2:C2);TRANSPOSE(A3:C3)})
这个公式基本上可以满足我的要求,但是如果我有更多行怎么办?我需要进入吗? TRANSPOSE(Col(x):Col(y)) 每一行?
感谢任何帮助。
【问题讨论】:
标签: google-sheets
尝试转置数据,以使行转置成单列堆叠在一起。
=ARRAYFORMULA({TRANSPOSE(A1:C1);TRANSPOSE(A2:C2);TRANSPOSE(A3:C3)})
这个公式基本上可以满足我的要求,但是如果我有更多行怎么办?我需要进入吗? TRANSPOSE(Col(x):Col(y)) 每一行?
感谢任何帮助。
【问题讨论】:
标签: google-sheets
请尝试:
=TRANSPOSE(SPLIT(TEXTJOIN(",",1,A:C),","))
注意事项:
textjoin 将加入文本并跳过空白。在 C 列中添加空格以获得空行。【讨论】:
Max Makhrov 的回答很好,但确实受制于 50k 的限制。为了解决这个问题,我最近发现了另一种方法,在我的 interlacing answer另一个问题
在您的情况下,这看起来像这样(最多任意 9 行):
=query(
sort(
{arrayformula({row(A1:A9)*3, A1:A9});
arrayformula({row(B1:B9)*3+1, B1:B9});
arrayformula({row(C1:C9)*3+2, C1:C9})}
),
"select Col2")
【讨论】:
我是否遗漏了什么,或者为什么没有人建议Flatten?
FLATTEN(A1:C3)
您可以像往常一样使用Filter 来过滤掉空白单元格,例如
=FILTER(FLATTEN(A1:C3);FLATTEN(A1:C3)<>"")
【讨论】: