Google Sheets QUERY函数SUM聚合无法正确累加数值的问题求助
QUERY函数对数值求和失败基本都是以下几类问题,按顺序排查即可:
数据列混合文本/数字类型(占这类问题的80%以上)
QUERY会按列内占比最高的数据类型识别整列格式,如果你把单位(比如g、个、片)和数值写在同一个单元格,或者部分数字是文本格式(单元格左上角有绿色小三角),这部分内容会被直接判定为文本,完全不参与求和计算。
修复方式:把单位单独拆分到独立列,选中用量整列,将格式统一设置为「数字」;如果是复制来的内容带不可见字符,可以加临时列用=TO_PURE_NUMBER(原用量单元格)强制转成纯数字,再引用临时列计算。聚合语法缺失分组规则
写分类求和公式时,所有select后没有套聚合函数(sum/avg/count)的列,都必须写在group by子句里,否则要么返回整列总和,要么直接报错。
错误写法:=QUERY(A:C,"select 食材名, sum(用量)")
正确写法:=QUERY(A:C,"select 食材名, sum(用量) where 食材名 is not null group by 食材名 label sum(用量) '总用量'")表头参数设置错误
QUERY第三个参数是手动指定的表头行数,如果不填会自动识别,很容易把上方的空行、合并单元格、大标题识别成表头,导致下方的数值行被跳过不计算。
修复方式:如果你的数据第一行是列名(食材名、用量、所属餐食),引用范围从数据列名行开始,第三个参数明确填1即可,示例:=QUERY(A2:C200,"select A, sum(B) group by A",1)
内容的提问来源于stack exchange,提问作者user3290356

