Google Sheets中SELECT A,SUM(B)+SUM(C) GROUP BY A查询结果异常求助
Google Sheets Query空值求和问题解决思路
问题场景
原始数据表格:
| A | B | C |
|---|---|---|
| Jack | 150 | |
| Jill | 10 | 33 |
| Jill | 205 |
使用的Query函数:=query(A1:C3, "select A, sum(B) + sum(C) group by A", 0)
实际返回结果:
| sum(sum sum ) | |
|---|---|
| Jack | |
| Jill | 248 |
预期结果:
| sum(sum sum ) | |
|---|---|
| Jack | 150 |
| Jill | 248 |
注:C1和B3为空单元格,手动给C1填0结果正常,但给B3填0无效,不想批量填充空单元格为0。
问题原因
Google Sheets的sum()函数对分组内全为空的列会返回空值而非0。Jack的C列对应行全空,导致sum(C)为空,空值与数值相加结果仍为空,最终Jack的求和结果显示空白;而Jill的B列存在非空值,sum(B)和sum(C)均为有效数值,相加结果正常。
解决方法
在Query语句中用ifnull()(或coalesce())将空的求和结果替换为0,确保数值运算不受空值影响。
修改后的公式
方法1:使用ifnull()
=query(A1:C3, "select A, ifnull(sum(B),0) + ifnull(sum(C),0) group by A", 0)
方法2:使用coalesce()
=query(A1:C3, "select A, coalesce(sum(B),0) + coalesce(sum(C),0) group by A", 0)
两种方法都能让Jack的sum(C)被替换为0,计算结果为150+0=150,同时保留Jill的248结果,无需手动填充表格空值。
内容的提问来源于stack exchange,提问作者P.Dow
相关产品推荐
相关产品推荐

