Google Sheets中COUNTIFS如何实现指定值匹配的多条件计数
解决Google Sheets的统计需求
这个需求在Google Sheets里完全可以实现,以下是两种可行的公式方案,都能得到预期的3行结果:
方案1:直接匹配D列的所有值
适合直接用D列作为匹配范围的场景,公式如下:
=SUMPRODUCT((A:A="ATL")*ISNUMBER(MATCH(B:B,D:D,0)))
公式说明:
(A:A="ATL"):生成布尔数组,A列值为"ATL"的行返回TRUE(等价于1),否则返回FALSE(等价于0)。ISNUMBER(MATCH(B:B,D:D,0)):判断B列每个值是否在D列中存在,存在则返回TRUE(1),不存在返回FALSE(0)。SUMPRODUCT:将两个数组对应位置的值相乘后求和,最终得到同时满足两个条件的行数。
方案2:利用E1单元格的串联字符串匹配
如果要基于E1单元格的逗号分隔字符串(如BOS, NYK)来匹配,公式如下:
=SUMPRODUCT((A:A="ATL")*REGEXMATCH(B:B, SUBSTITUTE(E1, ", ", "|")))
公式说明:
SUBSTITUTE(E1, ", ", "|"):把E1里的逗号分隔符替换成正则表达式的"或"符号|,将BOS, NYK转换为BOS|NYK。REGEXMATCH(B:B, ...):判断B列的值是否匹配转换后的正则规则,匹配成功返回TRUE(1),否则FALSE(0)。- 后续的
SUMPRODUCT逻辑和方案1一致,统计同时满足条件的行数。
关于原COUNTIFS雏形的说明
原COUNTIFS的写法无法直接实现需求,因为COUNTIFS的第二个条件需要是固定的匹配规则,而这里需要对每一行的B列值动态判断是否在D列/E1中存在,因此SUMPRODUCT或结合ARRAYFORMULA的方案更适合这类动态条件统计。
内容的提问来源于stack exchange,提问作者Canovice
相关产品推荐
相关产品推荐

