专栏名称: PowerBI星球
海量干货,帮你轻松上手 Power BI
目录
相关文章推荐
InfoQ架构头条  ·  DeepSeek 爆火真相:不靠“人盯”, ... ·  3 天前  
51好读  ›  专栏  ›  PowerBI星球

null+1=?这么简单的公式,PowerQuery为什么会“出错”

PowerBI星球  · 公众号  ·  · 2024-10-25 11:48

正文

我们 平时接触到的源数据中,空值是很常见的,所以 经常碰到星友问到涉及空值的运算问题。比如Excel数据中的空白单元格,powerquery中会显示为null,大多数时候,我们并不能简单粗暴的删除其中的空值,而是需要在PQ中对数据进一步运算整理。

如果对空值直接进行运算,比如null+1,得到的结果竟然还是null,这可能并不是我们期望的结果,那么本文就提供一个空值运算的思路。



假设数据如下,


首先测试一下PowerQuery中null的运算结果,比如两列相加,直接用“+”,新建列,


结果如下:

null+数字=null

null参与运算的结果也都成了null。

这是因为在PowerQuery运算中: null+数字=null

那么如何能让null+数字=数字呢,可能大家想到的一个办法是null使用0来替换,这样确实能得到正确的结果。
但是null毕竟和0是有差别的,假设都替换为0,然后又出现两列相乘的需求,是不是又悲剧了:(

下面就说一个不用替换的方法: 使用List类函数

依然以两列相加为例,相加用List.Sum函数,



结果如下,

null+数字=数字

这样的结果是不是就和你期望的一样了!

这样就做到了: null+数字=数字 ,从这个运算结果来看,null在List.Sum运算中默认为0。

那如果相乘呢,可以使用List.Product函数,

null*数字=数字

在这个乘法运算中,null*数字=数字,null在其中又相当于是1啦。

我们还可以进一步测试最大值和最小值,其结果如下:

List.Max(null,数字)=数字
List.Min(null,数字)=数字

是不是感觉很奇怪?
其实无论null和数字进行何种运算,其结果都是数字,null就像压根不存在一样,不参与数字运算,把它当成真空就好。

所以在List类函数的运算中,null才是真正实现了做自己,无论与数字怎么运算,最终的结果都是数字。

总结

以加法为例(其他类型的运算与加法类似):

如果你想要的结果是null+数字=null,直接使用运算符号"+";






请到「今天看啥」查看全文