[已解决] PQ中关于null或空值如何求和

  [复制链接]
查看102043 | 回复115 | 2021-2-19 00:04:16 | 显示全部楼层 |阅读模式
例如:有4个数值型的列,某条记录行的4个值为:A列为1,B列为5,C列为空(即“”),D列为null;而有的记录行,4个值均有数值。此种情况下,用[A]+[B]+[C]+[D]得不出结果6。
我想要的结果是:用通用的计算公式,使得空值或null不参与计算或者以0参与计算,从而得到和值。

若列数少,可以用if来判断区分,但列数多就不好写了,所以不用if方法。
请教各位,有什么办法能实现?比如,在sheet表中,A2=1,B2=“”,则=A2+B2 结果未#value,=sum(A2:B2)=1。我就是要类似 =sum(A2:B2)的写法。谢谢!
回复

使用道具 举报

马自达 | 2021-2-19 00:11:16 | 显示全部楼层
试了试Value.Add(),不行,显示error
回复

使用道具 举报

seawavey | 2021-2-19 00:17:16 | 显示全部楼层
List.Sum(List.RemoveNulls({[A],[B],[C],[D]}))
回复

使用道具 举报

wanghy2 | 2021-2-19 00:22:17 | 显示全部楼层
可否把NULL值替换成0呢?我遇到过。或者:(if [A]=null then 0 else [A])+(if [B]=null then 0 else [B])+(if [C]=null then 0 else [C])+(if [D]=null then 0 else [D])
回复

使用道具 举报

想退定的人 | 2021-2-19 00:24:17 | 显示全部楼层
List.Sum(List.RemoveNulls({[A],,[C],[D]}))


非常感谢,测试通过,这是我要的答案。只是一个sum函数就搞定的,在PQ中非要写一长串,不但麻烦,最怕影响速度,因为表格数据越来越庞大。再次感谢!
回复

使用道具 举报

文泰 | 2021-2-19 00:32:17 | 显示全部楼层
可否把NULL值替换成0呢?我遇到过。或者:(if [A]=null then 0 else [A])+(if =null then 0 else )+(if [C] ...


非常感谢解答。我只要是不想用if的方式。后来,我是用例如 = Table.ReplaceValue(添加供应商ASC列,0, null,Replacer.ReplaceValue, {"A", "B", "C"}), 将null替换为0的方式,再加减就可以了。再次感谢!
回复

使用道具 举报

d501 | 2021-6-17 16:53:31 | 显示全部楼层
这个不错,学习了
回复

使用道具 举报

融化冰河 | 2021-8-7 21:09:22 来自手机 | 显示全部楼层
努力,努力,再努力!!!!!!!!!!!
回复

使用道具 举报

louisking | 2021-10-8 18:58:57 | 显示全部楼层
支持一下云发教育!
回复

使用道具 举报

jaoye | 2021-10-12 07:45:02 来自手机 | 显示全部楼层
介是神马?!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则