Excel配对列(含0/1/空白)的有效ID计数公式求助
解决Excel配对列有效ID统计问题
需求说明
统计每对列(如col1与col2、col3与col4)中,至少有一个单元格值为0或1的ID数量——仅统计对应行里目标列对存在0/1的ID,空白单元格不纳入判定。
示例数据
| id | col1 | col2 | col3 | col4 |
|---|---|---|---|---|
| id1 | 0 | 1 | ||
| id2 | 1 | 1 | 0 | |
| id3 | 0 | 1 | 1 | |
| id4 | ||||
| id5 | 0 |
问题分析
COUNTA(B2:C4)会统计非空单元格总数(结果为4),但我们需要的是符合条件的ID行数(应为3),无法满足需求。- 尝试的
SUMPRODUCT(--(B$2:B$7+C$2:C$7=0))失效,原因是Excel会将空白单元格默认当作0计算,导致统计逻辑出错。
正确公式
方法1:兼容所有Excel版本(SUMPRODUCT)
针对col1与col2的统计:
=SUMPRODUCT(--((B2:B6<>"")+(C2:C6<>"")>0))
逻辑解释:
(B2:B6<>"")判断col1单元格是否非空,运算时TRUE/FALSE自动转为1/0+(C2:C6<>"")同理判断col2,两者相加后若结果>0,说明该行至少有一个非空值(符合0/1的数据规则)--将最终逻辑值转为1/0,SUMPRODUCT求和得到有效ID数量
针对col3与col4的统计:
=SUMPRODUCT(--((D2:D6<>"")+(E2:E6<>"")>0))
方法2:适用于Excel 365/2021及以上(动态数组)
用更直观的FILTER+ROWS组合:
=ROWS(FILTER(A2:A6,(B2:B6<>"")+(C2:C6<>"")>0))
逻辑解释:
FILTER(A2:A6,条件)筛选出符合要求的IDROWS()统计筛选结果的行数,即有效ID数量
验证结果
- col1&col2统计结果:3(对应id1、id2、id3)
- col3&col4统计结果:3(对应id2、id3、id5)
内容的提问来源于stack exchange,提问作者viji
相关产品推荐
相关产品推荐

