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

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

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

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

这是一个肮脏的伎俩,但它应该工作。

首先,将X2 (或者一些类似的远处的单元格)设置为=IF(B2="Yes",0,"") ,并将该公式向下复制到X30 。 接下来,将Y2:Y30所有单元格设置为0

当范围B2:B30中的所有单元格都等于"Yes"时,公式=IF(=AGGREGATE(2,5,X2:X30)=AGGREGATE(2,5,Y2:Y30),TRUE,FALSE) "Yes" ,如果至less有一个不等于"Yes"则为"Yes"

像这样的事情应该做的伎俩:

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

编辑1

只是意识到这只适用于由于filter而隐藏的行。 我想这是为什么它不会为你工作。

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

 =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")