LWW*_*LWW 7 count google-sheets array-formulas google-sheets-formula
我正在尝试计算给定类型的某些内容发生的次数,并且我需要此行为自动扩展到插入的行。就像是:
=Arrayformula(COUNTIFS(I:I,I:I,H:H,H:H,G:G,G:G))
Run Code Online (Sandbox Code Playgroud)
当在单行上使用时,嵌套的 countif 公式将产生正确的值,但目前数组公式一直向下输出 1。
我的数据类似于:
Column1 Column2 Column3 Result
--------------------------------------------
apple green eaten x
orange orange noteaten x
apple red eaten x
orange orange noteaten x
apple green eaten x
Run Code Online (Sandbox Code Playgroud)
...
x 列是数组公式的输出位置。
第 1 行的 X 应该查看所有数据并计算青苹果的数量eaten,下一行将计算noneaten橙子的数量,依此类推。我知道 arrayformula 不采用聚合函数,但我没有找到任何替代方案countif。
不幸的是,在 Google Sheets 中,COUNTIFS 不能像 COUNTIF 那样对数组进行迭代(无论如何,在撰写本文时)。
您需要求助于 MMULT,例如:
=ArrayFormula(IF(ROW(G:G)=1,"Result",MMULT((G:G=TRANSPOSE(G:G))*(H:H=TRANSPOSE(H:H))*(I:I=TRANSPOSE(I:I)),SIGN(ROW(G:G)))))
但请注意,Sheets 似乎存在限制,即由 G:G=TRANSPOSE(G:G) 等形成的 2D 数组不能超过 1000 万个元素。这对应于最多 3162 行。
另一种选择是使用字符串串联:
=ArrayFormula(COUNTIF(G:G&CHAR(9)&H:H&CHAR(9)&I:I,G:G&CHAR(9)&H:H&CHAR(9)&I:I))
这绕过了“3162”的限制。CHAR(9) 是制表符,但它可以是您确定不会出现在数据中的任何字符。
| 归档时间: |
|
| 查看次数: |
25913 次 |
| 最近记录: |