Google Sheets COLUMN TOP ArrayFormula 计算 ROW wise 这需要 ROW-wise ArrayFormula

Google Sheets COLUMN TOP ArrayFormula to calculate ROW wise which require ROW-wise ArrayFormula

参考下面 link。

本质上是为了得到一个几何级数,每一项重复X次。

sheet 的正确结果是使用跨行的 ArrayFormula 获得的。这需要按列复制公式。

我想要的是列顶部的单个 ArrayFormula,它按行计算结果(如所示)。我对 sheet 的尝试失败了。

sheet link

您的示例 sheet 上的新标签名为 MK.Help。这个公式在单元格 E1 中。

它使用了我(可能还有其他一些人)称之为查询的东西 header smush。它利用 query() 的内置能力来连接多个 header 行。它将转置数组提供给查询,然后通过将 QUERY() 的第三个参数设置为一个非常大的数字来假装整个事情都是 header 行。这个技巧很常见,使用 9^9 或 9^99,这只是写一个非常大的数字(9 的 99 次方)的一种非常简洁的方式。

=ARRAYFORMULA(
  IF(
    ROW(A:A) = 1,
      "Result",
      TRANSPOSE(
        SUBSTITUTE(TRIM(
          QUERY(TRANSPOSE(
            REPT(
              IF(
                SEQUENCE(1,MAX(C:C),0) > C:C,,
                  ROUND(A:A * B:B ^ SEQUENCE(1,MAX(C:C),0)) & CHAR(10)
              ),
              D:D
            )
          ),, 9^9)
        ), CHAR(10), ",")
      )
  )
)

与 Matt 的解决方案相同,唯一的区别是重复是使用正则表达式完成的。

试试这个(在 sheet kishkin):

=ARRAYFORMULA(
  IF(
    A2:A = "",,
      REGEXREPLACE(
        REGEXREPLACE(
          TRANSPOSE(QUERY(TRANSPOSE(
            IF(
              SEQUENCE(1, MAX(C2:C)) > C2:C,,
                ROUND(A2:A * B2:B ^ SEQUENCE(1, MAX(C2:C),)) & ","
            )
          ),, MAX(C2:C))),
          "[^,\s]+,?",
          REPT("[=10=]", D2:D)
        ),
        "\s+|,\s*$",
      )
  )
)