在 Google Sheets 中,我使用以下代码将三列数据返回到一列中:
=FILTER({A1:A7;B1:B8;C1:C8}, LEN({A1:A7;B1:B8;C1:C8}))
此测试代码有效。现在我想对 100 列做同样的事情。有没有办法做到这一点而不必写出最后一个范围?
将所有这些数据集中在一列中后,我希望在 A 列的新工作表中显示 41 行数据,然后继续在 B 列中显示接下来的 41 行数据,然后在 C 列中显示数据,依此类推。
原始数据是这样的:
A 栏 | B 上校 | C 上校 | D 上校 | ... 姓名1 |姓名2 |姓名3 |名称4 | ... 细胞1 |细胞2 |细胞3 |细胞4 | ... 等等...
所以我想我可以将它们拉入一列,然后希望在每 41 行之后将该列分布到多列中。我感谢您提供的任何帮助!
您可以使用 TOCOL 将所有范围堆叠在一列中。第二个参数可让您选择是否要跳过空单元格(如果需要,请选择 1),第三个参数可让您选择是否要按列或按行扫描。我知道这个参数中的 1 适合你:
=TOCOL(A1:CV20,1,1)
我使用 A1:CV20 这个范围作为示例,请根据您的情况进行调整。然后使用 WRAPROWS 或 WRAPCOLS 您将能够完成 41 行集。如果您使用 WRAPROWS 执行此操作,它将获取该列并将其扩展到列上
=WRAPROWS(TOCOL(A1:CV20,1,1),41)
或者您可以尝试使用 WRAPCOLS 并使用元素数量除以 41:
=WRAPCOLS(TOCOL(A1:CV20,1,1),ROUNDUP(COUNTA(TOCOL(A1:CV20,1,1))/41),)
或者,使用 LET 这样就不会重复范围:
=LET(d,TOCOL(A1:CV20,1,1),
WRAPCOLS(d,ROUNDUP(COUNTA(d,))
我想其中一个选项将满足您的预期场景!