检查范围内的所有可见单元格是否等于“是”?
如果我想检查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")