检查范围内的所有可见单元格是否等于“是”?

时间:2015-02-16 06:52:53

标签: excel

如果我想检查B2:B30中的所有单元格(可见和隐藏)是否等于"Yes"我知道我可以使用:

=COUNTIF(B2:B30;"Yes")/(COUNTA(B2:B30)+COUNTBLANK(B2:B30))

但是,如果我想检查该范围内的所有可见单元格是否等于是,我可以使用什么公式。

2 个答案:

答案 0 :(得分:0)

这样的事情可以解决问题:

=IF(SUMPRODUCT(SUBTOTAL(3,OFFSET(B2,ROW(B2:B30)-ROW(B2),0)),(B2:B30="Yes")+0)=SUBTOTAL(3,B2:B30),"TRUE","FALSE")

编辑1

刚刚意识到这只适用于由于过滤器而隐藏的行。我认为这就是为什么它不适合你。

试试这个,现在应该忽略隐藏的行:

=IF(SUMPRODUCT(SUBTOTAL(103,OFFSET(B2,ROW(B2:B30)-ROW(B2),0)),(B2:B30="Yes")+0)=SUBTOTAL(103,B2:B30),"TRUE","FALSE")

编辑2

如果范围中存在任何空白单元格,则此公式应显示为false:

=IF(SUMPRODUCT(SUBTOTAL(103,OFFSET(B2,ROW(B2:B30)-ROW(B2),0)),(B2:B30="Yes")+0)=SUBTOTAL(103,B2:B30), IF(SUMPRODUCT(((SUBTOTAL(103,OFFSET($C1,ROW($C$2:$C$30)-ROW($C$1),)))=1)*((SUBTOTAL(103,OFFSET(B1,ROW(B$2:B$30)-ROW(B$1),)))=0))=0,"TRUE"),"FALSE")

答案 1 :(得分:0)

这是一种肮脏的伎俩,但它应该有用。

首先,将X2(或类似的远处单元格)设置为=IF(B2="Yes",0,""),然后将此公式复制到列X30。接下来,将Y2:Y30中的所有单元格设置为0

=IF(=AGGREGATE(2,5,X2:X30)=AGGREGATE(2,5,Y2:Y30),TRUE,FALSE)范围内的所有单元格等于TRUE时,公式B2:B30将评估为"Yes",而FALSE时至少有"Yes"不等于{{1}}。