如何编写Google Sheets中可自动填充的数组COUNTIFS公式?
解决方案
针对你遇到的ARRAYFORMULA结合COUNTIFS出现重复值的问题,以下两种方法适配2万行数据的场景,可直接使用:
方法1:BYROW + LAMBDA(Google Sheets 原生支持)
通过逐行遍历C列单元格,为每个单元格单独计算统计结果,彻底避免固定引用导致的重复填充:
=ARRAYFORMULA({"2022"; BYROW(C6:C, LAMBDA(x, IF(x="", "", COUNTIFS(data!$K$2:$K, x, data!$W$2:$W, "2022", data!$H$2:$H, $C$4))))})
方法2:SUMPRODUCT数组运算
利用SUMPRODUCT的数组特性,直接对三个条件的布尔数组做乘积求和,实现批量统计:
=ARRAYFORMULA({"2022"; IF(C6:C="", "", SUMPRODUCT((data!$K$2:$K=C6:C)*(data!$W$2:$W="2022")*(data!$H$2:$H=$C$4)))})
问题根源说明
你原公式中COUNTIFS里用了固定引用$C6,在ARRAYFORMULA中这会被识别为单一值,只会计算C6对应的统计结果并重复填充到所有行。上述两种方法均将C列作为数组(C6:C)传入,让每一行对应自身C列单元格的值完成统计。
内容的提问来源于stack exchange,提问作者Borrris
相关产品推荐
相关产品推荐

