【发布时间】:2019-11-24 10:15:40
【问题描述】:
我想对每一行中的列应用聚合函数,然后对结果应用另一个聚合,而不向表中添加仅计算列。有可能吗?
例如,考虑下表:
A B C D
1 Items Property1 Property2 Property3
2 Item1 Y Y
3 Item2 Y
4 Item3 Y
5 Item4 Y Y Y
这里的 Y(yes) 表示该项目具有给定的属性。
我想计算至少有 2 个属性的项目数。在这种情况下,它应该是 2(Item1 和 Item4)。我可以将列 E 添加到表中,例如:
Number of properties
COUNTIF(B2:D2, "Y")
COUNTIF(B3:D3, "Y")
COUNTIF(B4:D4, "Y")
COUNTIF(B5:D5, "Y")
然后将COUNTIF(E2:E5, ">2") 应用到它。但这需要在我想要避免的表中添加一列。
当我破解时,我最终使用了 MMULT,例如:
=ARRAYFORMULA(COUNTIF(MMULT({if(B2:D5<>"", 1, 0)}, {1;1;1}), ">=2"))
这里的公式将 Y 和空格替换为 1 和 0,然后使用矩阵乘法计算每行中 1 的数量,然后计算结果行中至少具有 2 个属性的单元格数。但这感觉就像一个丑陋的黑客,恰好在我的情况下起作用。
有没有一种通用的方法可以按列进行双重聚合,然后通过具有独立聚合函数的行进行双重聚合?
【问题讨论】:
-
你想要的输出是什么?
-
一个带有数字的单元格。
标签: google-sheets sum google-sheets-formula array-formulas google-sheets-query