Google Sheets QUERY函数WHERE子句多条件过滤使用问题求助
Google Sheets QUERY函数WHERE多条件使用说明
原公式错误原因
- 逻辑错误:
A='Blue' AND A='Green'为永假条件,同一行A列无法同时等于两个不同值,且需求为筛选Green、Red,不需要匹配Blue,此处应使用OR逻辑或IN语法 - 语法错误:
B<=Date'2021-09-30'AND中AND关键字前缺少空格,触发语法校验失败 - 需求匹配错误:仅用
ISDATE(D)无法满足D列开票日期为9月的要求,需要补充D列的日期范围判断
WHERE子句多条件通用规则
- 逻辑判断:同时满足的条件用
AND连接,满足任意一个即可的条件用OR连接,可通过括号调整判断优先级 - 字符串匹配:多个可选值可直接用
列名 IN ('值1','值2','值3')简化写法,不需要写多个OR - 日期格式:所有日期判断必须使用
DATE'YYYY-MM-DD'标准格式,大小写不敏感但建议统一写法 - 语法规范:条件、运算符、关键字之间必须保留空格,避免触发语法错误
- 条件数量:无明确上限,只要逻辑通顺、公式字符长度未超出Google Sheets限制即可正常使用,5个及以内条件完全无压力
对应场景的可用公式
场景1:筛选B列日期为9月的数据,求和C列
=QUERY(A:D, "SELECT SUM(C) WHERE B >= DATE'2021-09-01' AND B <= DATE'2021-09-30'", 1)
场景2:筛选A列取值为Green、Red + B列9月的数据,求和C列
=QUERY(A:D, "SELECT SUM(C) WHERE B >= DATE'2021-09-01' AND B <= DATE'2021-09-30' AND A IN ('Green','Red')", 1)
场景3:满足以上两个条件 + D列开票日期为9月,求和C列
=QUERY(A:D, "SELECT SUM(C) WHERE B >= DATE'2021-09-01' AND B <= DATE'2021-09-30' AND A IN ('Green','Red') AND D >= DATE'2021-09-01' AND D <= DATE'2021-09-30'", 1)
公式末尾的
1代表源数据包含1行表头,可根据实际数据情况调整为对应表头行数,无表头可省略该参数。
内容的提问来源于stack exchange,提问作者Chinbin
相关产品推荐
相关产品推荐

