ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

数据可视化之PowerQuery篇(一)空值(null)运算的的解决思路

2020-05-07 14:56:06  阅读:1111  来源: 互联网

标签:运算 结果 List 空值 PowerQuery null 数字


https://zhuanlan.zhihu.com/p/81535007

星友们在知识星球(PowerBI星球)提出的问题中,关于空值的运算经常被提及。平时接触到的源数据常常有空值,比如Excel数据中的空白单元格,powerquery中会显示为null,大多数时候,我们并不能简单粗暴的删除其中的空值,而是需要在PQ中对数据进一步运算整理。

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


 

假设数据如下,

 

 

首先测试一下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,直接使用运算符号"+";

如果你想要的结果是null+数字=数字,使用List.Sum函数;

 

最后友情提醒,List运算的结果上载到数据模型后默认为文本型,所以上载前请先在PowerQuery中将其更改为数值型哦。

标签:运算,结果,List,空值,PowerQuery,null,数字
来源: https://www.cnblogs.com/qiu-hua/p/12842990.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有