Google Sheets中如何将单元格区域作为COUNTIFS函数的条件
解决方案:在Google Sheets中统计匹配任意变体的记录数
以下是几种无需手动逐个添加变体的高效公式方案,自动同步B列变体的更新:
方法1:适配你最初的数组思路(SUM + COUNTIFS)
对B列非空变体去重后,批量统计每个变体的符合条件记录数再求和:=SUM(COUNTIFS(A:A,UNIQUE(FILTER(B:B,B:B<>"")),C:C,"small"))说明:
FILTER(B:B,B:B<>"")筛选出B列所有非空变体值UNIQUE(...)对变体去重,避免重复统计同一变体COUNTIFS对每个变体单独统计匹配A列且C列为"small"的记录数,返回结果数组SUM将数组结果相加得到总数量
方法2:直观筛选统计(FILTER + ROWS)
直接筛选符合条件的行后统计行数:=ROWS(FILTER(A:A,ISNUMBER(MATCH(A:A,FILTER(B:B,B:B<>""),0)),C:C="small"))说明:
MATCH检查A列值是否存在于B列非空变体中,存在返回位置,否则返回错误ISNUMBER将匹配结果转为布尔值,筛选出A列属于变体的行- 叠加
C:C="small"条件后,用ROWS统计筛选结果的行数
方法3:数组运算统计(SUMPRODUCT)
通过数组乘法直接计算符合条件的行数:=SUMPRODUCT(--(ISNUMBER(MATCH(A:A,FILTER(B:B,B:B<>""),0))),--(C:C="small"))说明:
--(...)将布尔值TRUE/FALSE转为数字1/0- 两个数组相乘后,仅同时满足两个条件的位置会得到
1 SUMPRODUCT对所有结果求和得到总数量
你之前遇到的问题说明
用数组形式的COUNTIFS只返回第一个变体结果,是因为COUNTIFS在条件为数组时会返回对应每个条件的结果数组,而非自动求和,只要用SUM包裹就能得到总数。手动相加多个COUNTIFS的方式变体更新时需手动修改公式,以上方案都会自动同步B列的变体变化,无需手动调整。
内容的提问来源于stack exchange,提问作者Heidi B.
相关产品推荐
相关产品推荐

