在谷歌表格Query函数中处理空值的算术运算问题
谷歌表格Query透视空值转0解决总计为空问题
当使用Query函数透视数据后,若Col2、Col3存在空值,直接计算Col2+Col3或比率会得到空值——因为空值参与算术运算会导致结果为空。谷歌表格Query采用简化版SQL语法,不支持标准SQL的COALESCE、ISNULL函数,需用内置IF逻辑处理空值。
解决方案
修改外层Query的SELECT子句,通过IF(列名 IS NULL, 0, 列名)将空值替换为0,并给处理后的列起别名,后续计算直接引用别名即可。
修改后的完整公式
=Query(QUERY(sampledata,"select D, COUNT(C) where A = 'Supplied' AND M = 'Recommended' group by D pivot B order by D"),"Select Col1,IF(Col2 IS NULL,0,Col2) as Col2,IF(Col3 IS NULL,0,Col3) as Col3,Col2+Col3,Col2/(Col2+Col3) label Col2 'Col2', Col3 'Col3', Col2+Col3 'Total', Col2/(Col2+Col3) 'Rate' format Col1 'dd-mmm-yyyy', Col2 '#,##0', Col3 '#,##0', Col2+Col3 '#,##0', Col2/(Col2+Col3) '#,##0.0%'")
关键修改说明
- 用
IF(Col2 IS NULL, 0, Col2) as Col2将Col2的空值替换为0,并保留原列名作为别名 - 同理处理Col3:
IF(Col3 IS NULL, 0, Col3) as Col3 - 后续计算
Col2+Col3和Col2/(Col2+Col3)时,直接使用处理后的别名,确保空值被转为0参与运算,得到正确的总计和比率
内容的提问来源于stack exchange,提问作者Content_Type6
相关产品推荐
相关产品推荐

