Google Sheets QUERY函数Count可用但Sum/Avg等函数失效求助
问题分析与解决
你的公式在替换成Sum/Avg后失效,核心有两个问题:
Label语句未同步修改
你把count(B)换成sum(B)后,末尾的label count(B) ''没改成对应的label sum(B) '',QUERY会找不到要隐藏标签的统计列,直接报错。逻辑运算符优先级错误
原公式里B<5 AND (日期条件1) OR (日期条件2)...的逻辑会被解析为(B<5且日期条件1) 或者 日期条件2 或者...,这和你要的“B<5且任意一个接触点在日期范围内”的逻辑不符,必须把所有日期条件用括号整体包裹,再和B<5用AND连接。
修正后的Sum公式
=QUERY(B10:G,"Select Sum(B) where B<5 AND ( (C >= date '"&TEXT(C9, "e-m-d")&"' AND C <= date '"&TEXT(D9, "e-m-d")&"') OR (D >= date '"&TEXT(C9, "e-m-d")&"' AND D <= date '"&TEXT(D9, "e-m-d")&"') OR (E >= date '"&TEXT(C9, "e-m-d")&"' AND E <= date '"&TEXT(D9, "e-m-d")&"') OR (F >= date '"&TEXT(C9, "e-m-d")&"' AND F <= date '"&TEXT(D9, "e-m-d")&"') OR (G >= date '"&TEXT(C9, "e-m-d")&"' AND G <= date '"&TEXT(D9, "e-m-d")&"') ) label Sum(B) ''", 0)
修正后的Avg公式
=QUERY(B10:G,"Select Avg(B) where B<5 AND ( (C >= date '"&TEXT(C9, "e-m-d")&"' AND C <= date '"&TEXT(D9, "e-m-d")&"') OR (D >= date '"&TEXT(C9, "e-m-d")&"' AND D <= date '"&TEXT(D9, "e-m-d")&"') OR (E >= date '"&TEXT(C9, "e-m-d")&"' AND E <= date '"&TEXT(D9, "e-m-d")&"') OR (F >= date '"&TEXT(C9, "e-m-d")&"' AND F <= date '"&TEXT(D9, "e-m-d")&"') OR (G >= date '"&TEXT(C9, "e-m-d")&"' AND G <= date '"&TEXT(D9, "e-m-d")&"') ) label Avg(B) ''", 0)
额外优化建议
如果接触点列是连续的(C到G),可以用REGEXMATCH简化日期条件,避免重复写多个OR:
=QUERY(B10:G,"Select Sum(B) where B<5 AND ( REGEXMATCH(TEXT(C, 'e-m-d') & ',' & TEXT(D, 'e-m-d') & ',' & TEXT(E, 'e-m-d') & ',' & TEXT(F, 'e-m-d') & ',' & TEXT(G, 'e-m-d'), '^.*("&TEXT(C9, "e-m-d")&"|"&TEXT(D9, "e-m-d")&"|.*"&TEXT(C9, "e-m-d")&"-.*"&TEXT(D9, "e-m-d")&").*$') ) label Sum(B) ''", 0)
不过这个简化版需要确保日期格式完全匹配,适合列数较多的场景。
内容的提问来源于stack exchange,提问作者Michelle Molina
相关产品推荐
相关产品推荐

