【问题标题】:Is there a better way to replicate a column array n times in Google Sheets有没有更好的方法在 Google 表格中复制列数组 n 次
【发布时间】:2020-11-28 03:17:49
【问题描述】:

我需要公式化的解决方案来复制在其自身之上堆叠的列范围给定次数。我找到了一个丑陋的解决方案,将一个序列函数(获取 1,2,3...n)合并到一个用于文本操作的数组公式中(左)。 Left 操作只返回原始值,但让我有机会包含序列数组。

必须有更好的方法来做到这一点。

问题:编写一个公式来创建一个列,其中命名的列范围可以任意次数堆叠在一起。必须是一个公式,因为其他用户需要它来自动调整到新的长度。

=flatten( transpose( arrayformula( left( Column_Range,len( Column_Range ) + 0 * 
 sign( sequence( 1,Number_of_Times_To_Repeat ) ) ) ) ) )

【问题讨论】:

  • 分享您的工作表副本以及所需结果的示例

标签: google-sheets google-sheets-formula array-formulas transpose google-sheets-query


【解决方案1】:

可以写成:

=ARRAYFORMULA(FLATTEN(TRANSPOSE(LEFT(A1:A5, LEN(A1:A5)*SIGN(SEQUENCE(1, C1))))))


或:

=INDEX(FLATTEN(TRANSPOSE(LEFT(A1:A5, LEN(A1:A5)*SIGN(SEQUENCE(1, C1))))))

或:

=INDEX(FLATTEN(TRANSPOSE(LEFT(A1:A5, LEN(A1:A5)*TRANSPOSE(ROW(INDIRECT("A1:A"&C1))^0)))))

或:

=INDEX(FLATTEN(TRANSPOSE(LEFT(A1:A5, LEN(A1:A5)*TRANSPOSE(SIGN(ROW(INDIRECT("A1:A"&C1))))))))

或:

=INDEX(FLATTEN(TRANSPOSE(LEFT(A1:A5, LEN(A1:A5)*SPLIT(REPT(1&"♀", C1), "♀")))))

或:

=INDEX(FLATTEN(TRANSPOSE(LEFT(A1:A5, LEN(A1:A5)*COLUMN(INDIRECT("A1:"&ADDRESS(1, C1)))^0))))

或:

=QUERY(FLATTEN(SPLIT(REPT("♀"&JOIN("♀", A1:A5), C1), "♀",,)), "offset 1")

或:

=FLATTEN(SPLIT(REPT(QUERY(A1:A5,,9^9)&" ", C1), " ",,))

【讨论】:

    【解决方案2】:

    解决方案 1

    这里是没有FLATTEN的方法:

    =ARRAYFORMULA(
      VLOOKUP(
        1 + MOD(
              SEQUENCE(C1 * MAX(ROW(A:A) * (A:A <> ""))) - 1,
              MAX(ROW(A:A) * (A:A <> ""))
            ),
        {ROW(A:A), A:A},
        2,
        0
      )
    )
    

    MAX(ROW(A:A) * (A:A &lt;&gt; "") 内的ARRAYFORMULA 只是为您提供最后一个非空单元格的行号。其余的都很简单。


    解决方案 2

    这是一个没有LEFTFLATTEN 解决方案:

    =FLATTEN(
      ARRAYFORMULA(
        ARRAY_CONSTRAIN(
          TRANSPOSE(A:A),
          1,
          MAX(ROW(A:A) * (A:A <> ""))
        ) & IF(SEQUENCE(C1), "")
      )
    )
    

    【讨论】:

      猜你喜欢
      • 2011-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-28
      • 2019-12-08
      • 1970-01-01
      • 2020-01-05
      • 1970-01-01
      相关资源
      最近更新 更多