我正在编写一个溢出公式,我想按部门和/或名称过滤范围,如果未进行任何选择,则溢出整个范围。
目前,我已经将其写在能够过滤其中之一或两者或两者的地方;但是,如果它们都是空白,我会收到
#Value!
错误。
=FILTER(A2:C6, IF( ISBLANK(A8),1,(A2:A6=A8) ) * IF( ISBLANK(B8),1,(B2:B6=B8) ) ,"")
部门 | 人 | 价值 |
---|---|---|
销售 | 马克 | 100 |
销售 | 史蒂夫 | 100 |
销售 | 凯西 | 100 |
MGMT | 米歇尔 | 100 |
MGMT | 约翰 | 100 |
(遵循公式的图片,用于测试的Markdown表格)
网上有很多关于同时使用两个过滤器并在空白时忽略一个过滤器的解决方案,但是这个问题需要能够在所有条件都为空白时完全忽略过滤器。
我能够确定的解决方案是我可以简单地将整个范围作为公式输入来引用,以将其未经编辑地溢出。将其与将整个公式包装在 IF 语句中相结合,得到了我想要的结果。
=IF( AND(M8="",N8=""),M2:O6, FILTER(M2:O6, IF( ISBLANK(M8),1,(M2:M6=M8) ) * IF( ISBLANK(N8),1,(N2:N6=N8) ),""))
我能够成功获得所需结果的另一种方法是将其分解为
Let()
公式:
=LET(raw,M2:O6,filtered,FILTER(M2:O6,IF(ISBLANK(M8),1,(M2:M6=M8))*IF(ISBLANK(N8),1,(N2:N6=N8))), IF(AND(M8="",N8=""), raw,filtered))