将1列拆分为多列,每列最多500个单元格

时间:2017-12-12 22:12:59

标签: google-sheets

在Google表格中,我有一个任意长的专栏。

我想将此列拆分为长度为500的单独列。

我该怎么做?

我一直在考虑的一些事情可能会涉及解决方案:

3 个答案:

答案 0 :(得分:1)

Arrayformula,数字5的示例,更改为500。

=ArrayFormula(IFERROR( vlookup( (TRANSPOSE(ROW(INDIRECT("a1:a"&ROUNDUP(COUNTA(A:A)/5))))-1)*5 + ROW(INDIRECT("a1:a"&5)), {ROW(A:A),A:A},2,) ))

enter image description here

  • ROUNDUP(COUNTA(A:A)/5列数。 Up因为最后一列可能包含少于N行。
  • TRANSPOSE(...)*5 + ROW(INDIRECT("a1:a"&5))获取数字矩阵。

矩阵:

1   6   11  16
2   7   12  17
3   8   13  18
4   9   14  19
5   10  15  20
  • {ROW(A:A),A:A}获取要返回的行数和值

  • vlookup返回值

  • IFERROR显示“”是否错误。

答案 1 :(得分:0)

具有任意长的列意味着您需要任意多列用于拆分,并且电子表格公式无法创建新列。所以我们最好的办法就是使用所有可用的列。

假设数据列以单元格A1开头,并且应该拆分的范围的左上角是B1,如果用它填充工作表的前500行,则以下公式将起作用:

ACTION_TECH_DISCOVERED

否则,将A1和B1更改为目标的顶部源和左上角。

说明:偏移量从A1向下移动指定的量,每行增加1,每列增加500.

答案 2 :(得分:0)

您还可以使用以下公式:

=ARRAYFORMULA(
    TRIM(
        SPLIT(
            TRANSPOSE(
                SPLIT(
                    QUERY(
                        <long_column_range> & "," & IF(
                            MOD(1, <columns>) = 0, "|", ""
                        ),, 9^9
                    ), "|"
                )
            ), ","
        )
    )
)

其中:

  1. <long_column_range>是要拆分的长列的范围(例如A1:A)和
  2. <columns>是您想要将长列拆分为的列数。

来自this article