Excel公式求助:如何统计C/D列至少含一个TRUE的唯一行数
统计C3:D区域至少一列为TRUE的行数的正确公式
你之前公式的问题说明:
- 公式
=COUNTIF(FILTER(C3:D, C3:C=TRUE, D3:D=TRUE), TRUE):FILTER的多条件默认是且的关系,只会筛选出C、D列均为TRUE的行,后续COUNTIF会把每行的两个TRUE分别计数,导致重复统计,且范围不符合需求。 - 用
OR(C3:C=TRUE, D3:D=TRUE)作为FILTER条件:OR函数在数组场景下只会返回单个布尔值,无法生成对应每行的数组结果,导致FILTER的条件维度不匹配,触发报错。
三个可行的正确公式:
方法1:SUMPRODUCT数组计算
=SUMPRODUCT(--((C3:C=TRUE)+(D3:D=TRUE)>0))
原理:C3:C=TRUE和D3:D=TRUE生成对应每行的布尔数组,用+替代OR(OR不返回数组),只要其中一个为TRUE(数值1),相加结果就≥1,>0转化为每行是否符合条件的布尔值,--将布尔值转为1或0,SUMPRODUCT求和得到符合条件的总行数。
方法2:反向统计(总行数减不符合条件的行数)
=ROWS(C3:C)-COUNTIFS(C3:C,FALSE,D3:D,FALSE)
原理:ROWS(C3:C)获取C3开始的总行数,COUNTIFS(C3:C,FALSE,D3:D,FALSE)统计两列均为FALSE的行数,两者相减就是至少一列为TRUE的行数,逻辑直观。
方法3:FILTER+ROWS组合
=ROWS(FILTER(C3:C,(C3:C=TRUE)+(D3:D=TRUE)>0))
原理:用数组加法(C3:C=TRUE)+(D3:D=TRUE)>0作为FILTER的条件,筛选出至少一列为TRUE的行(选C列即可,仅需统计行数),最后用ROWS统计筛选结果的行数。
内容的提问来源于stack exchange,提问作者Unsapiensaurus
相关产品推荐
相关产品推荐

