我有一个按多个条件过滤工作表的查询:
=query(A2:H,"select A,B,C,D,E,F,G "&IF(K3="where","","where A >= date '"&TEXT(K3,"yyyy-mm-dd")&"'")&"
"&IF(K4="","","and A <= date '"&TEXT(K4,"yyyy-mm-dd")&"'")&"
"&IF(K5="","","and B matches '"&UPPER(K5)&"'")&"
"&IF(K6="","","and C matches '"&UPPER(K6)&"'")&"
",1)
它工作正常,但是当所有参数都返回 false 时,我得到了整个范围,大概是因为查询变成了 select A,B,C,D,E,F,G
。
有什么办法可以强制它不返回任何内容,甚至是错误。我试过在最后放一个随机的 OR C matches 'nothing'
但它仍然返回了所有内容。
答案 0 :(得分:2)
Chris,你可以在整个 QUERY 周围放置一个 IF 语句。类似的东西:
=IF(AND(K3="where",K4="",K5="",K6=""),"",QUERY(....))
这对你有用吗?