【问题标题】:Extending ARRAYFORMULA in a column using a COUNTIF with horizontal ranges as parameter使用具有水平范围作为参数的 COUNTIF 在列中扩展 ARRAYFORMULA
【发布时间】:2020-01-11 23:28:37
【问题描述】:

我有一张表,我想将列中列出的值(列 A)除以 1-6,具体取决于 6 个条件(列 B - G)中的任何一个对于给定行中的值。

Example screenshot here

我目前正在使用每行单独的公式来执行此操作,计算真实条件的数量,然后将其用作除数。所以对于第 2 行,公式为:

=A2/COUNTIF((B2:G2),TRUE)

但我想知道是否有可能使用一个可以向下扩展到行的数组公式来完成这项工作。比如:

=ARRAYFORMULA(A2:A27/COUNTIF((B2:G2),TRUE))

但是,在这种情况下,我找不到使 COUNTIF 公式起作用的方法......它总是只使用第一行或整个数组的值,而不是每行一次一行.

希望这是有道理的。 Here is an example sheet 以更好地可视化问题。

感谢任何意见!

【问题讨论】:

  • But I'm wondering if it's possible to get the job done with a single array formula that can be extended down through the rows 是什么意思?因为使用 =ARRAYFORMULA(A2/COUNTIF((B2:G2),TRUE)) 然后用鼠标通过行复制函数
  • 这是我想避免的“通过行复制函数”。目标是在列的第一行中只有一个公式,然后将其填充到各行中。

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


【解决方案1】:

灵感来自https://stackoverflow.com/a/21804838/5851272

→ 这似乎可行:

=ArrayFormula($A$2:$A$27/countifs(iF(COLUMN($B$2:$G$2),ROW($B$2:$B$27)),ROW($B$2:$B$27),$B$2:$G$27,TRUE))

【讨论】:

    【解决方案2】:

    这稍微简单一些,也应该可以工作。 =ARRAYFORMULA(IF(A2:A="",,A2:A/MMULT(N(B2:G),{1;1;1;1;1;1})))

    如果您有兴趣,这是我不久前制作的一个 mmult 演示。 https://docs.google.com/spreadsheets/d/145JG2rqYMe6HSPnluppc7kIezVyWw6CpmC5GjLgb_yE/edit#gid=0

    【讨论】:

      猜你喜欢
      • 2020-05-17
      • 1970-01-01
      • 2023-01-03
      • 2020-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多