Google Sheets中QUERY函数OR逻辑与CONTAINS用法求助
解决Google Sheets中QUERY/SUMIFS的OR包含条件求和问题
我完全懂你遇到的这个麻烦——SUMIFS里的OR逻辑不好直接用,QUERY里的CONTAINS和OR组合又摸不清门道对吧?咱们一步一步来解决:
方法1:用SUMIFS实现(更简洁)
你之前的SUMIFS写法有两个问题:一是包含匹配需要用通配符*,二是数组条件需要用SUM包裹来实现OR逻辑(SUMIFS默认是AND,数组会返回多个结果,SUM把它们加总)。正确公式应该是:
=SUM(SUMIFS(D:D, A:A, "cars/build-price/carselector.html", C:C, "footer", B:B, "*"&{"ateca";"ibiza"}&"*"))
- 解释:
"*"&{"ateca";"ibiza"}&"*"会生成两个通配符条件(匹配包含ateca或ibiza的B列内容),SUMIFS分别计算符合每个条件的D列和,最后SUM把两个结果相加,就实现了OR逻辑的包含匹配求和。
方法2:用QUERY函数实现(更灵活)
QUERY里要把CONTAINS和OR结合,需要把两个CONTAINS条件用OR()包裹起来,同时注意语法的括号嵌套。正确的公式是:
=SUM(QUERY(A:D, "SELECT D WHERE A = 'cars/build-price/carselector.html' AND C = 'footer' AND (CONTAINS('ateca', B) OR CONTAINS('ibiza', B))", 0))
- 解释:
CONTAINS('ateca', B)表示B列包含"ateca",CONTAINS('ibiza', B)同理;- 用
OR()把两个包含条件组合,外层加括号保证优先级(避免和其他AND条件冲突); SELECT D指定要求和的列是D列,最后用SUM把QUERY返回的结果加总;- 末尾的
0表示数据区域没有表头(如果你的A:D第一行是表头,改成1即可)。
这两种方法都能完美解决你的需求,选哪个看你习惯——SUMIFS更直接,QUERY适合后续要扩展复杂条件的场景。
内容的提问来源于stack exchange,提问作者Guillaume Hubert
相关产品推荐
相关产品推荐

