数据可视化之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中将其更改为数值型哦。
数据可视化之PowerQuery篇(一)空值(null)运算的的解决思路的更多相关文章
- 数据可视化之PowerQuery篇(二)这个方法帮你快速计算列
https://zhuanlan.zhihu.com/p/81846862 PowerQuery中,对两列或者多列的计算一般通过添加自定义列来实现,以下表为例, 如果需要1月和2月数据的合计,可以添加 ...
- 数据可视化之PowerQuery篇(四)二维表转一维表,看这篇文章就够了
https://zhuanlan.zhihu.com/p/69187094 数据分析的源数据应该是规范的,而规范的其中一个标准就是数据源应该是一维表,它会让之后的数据分析工作变得简单高效. 在之前的文 ...
- 数据可视化之PowerQuery篇(二十)如何计算在职员工数量?
https://zhuanlan.zhihu.com/p/128652582 经常碰到的一类问题是,如何根据起止日期来计算某个时间点的数量,比如: 已知合同的生效日期和到期日期,特定日期的有效合同有 ...
- 数据可视化之PowerQuery篇(十三)Power BI总计行错误,这个技巧一定要掌握
https://zhuanlan.zhihu.com/p/102567707 前一段介绍过一个客户购买频次统计的案例: Power BI 数据分析应用:客户购买频次分布. 我并没有在文章中显示总计行 ...
- 数据可视化之PowerQuery篇(十)如何将Excel的PowerQuery查询导入到Power BI中?
https://zhuanlan.zhihu.com/p/78537828 最近碰到星友的一个问题,他是在Excel的PowerQuery中已经把数据处理好了,但是处理后的数据又想用PowerBI来分 ...
- 数据可视化之PowerQuery篇(八)利用PowerQuery,进行更加灵活的数据分列
https://zhuanlan.zhihu.com/p/66540160 常规分列 我们最常见的就是有固定分隔符的规范数据,这种直接就按照分隔符拆分就可以了, 如果没有分割符怎么办?依然是上面的数据 ...
- 数据可视化之PowerQuery篇(七)Power Query应用技巧:批量更改列名
https://zhuanlan.zhihu.com/p/130460772 今天分享一个PowerQuery的小技巧,导入到PowerBI中的数据,如果想要更改数据的列名,可以在PQ编辑器中直接双 ...
- 数据可视化之PowerQuery篇(六)PowerQuery技巧:批量合并Excel表的指定列
本文来源于一个星友的问题,他有上百个Excel表格,格式并不完全一样,列的位置顺序也不同,但每个表都有几个共同列,这种情况下,能不能通过Power Query把这些表格共同的列批量合并呢? 当然是可以 ...
- 数据可视化之PowerQuery篇(五)PowerQuery文本处理技巧:移除和提取
https://zhuanlan.zhihu.com/p/64419762 每当拿到原始数据,不如意十有八九,快速准确的清洗数据也是必备技能,数据清洗正好是 PowerQuery 的强项,本文就来介绍 ...
随机推荐
- tomcat的安装部署(windows10)
一.Tomact下载 地址:https://tomcat.apache.org/
- (六)TestNg中的软断言和硬断言
原文链接:https://cloud.tencent.com/developer/article/1479172 前言 在执行自动化测试脚本的时候,我们需要自动判断测试脚本执行完成后的实际结果是否与预 ...
- log报错的原因解决
idea未装lombok的插件: 1.用快捷键Ctrl+Alt+S打开:Settings→Plugins→Browse repositories 2.输入lom后选择Install,安装插件 3.按照 ...
- loadRunnner中90%的响应时间
参考博客https://blog.csdn.net/lengyue_112/article/details/1095320?utm_source=blogxgwz4 LR在场景执行完了会出个报告,其中 ...
- android屏幕适配的全攻略3-动态获取手机屏幕宽高及动态设置控件宽高
1.获取手机屏幕宽高: DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetr ...
- 设计模式:JDK和Spring中常见的设计模式
设计模式 总结 类 工厂模式 封装创建过程,只对结果负责 BeanFactory.Calender 单例模式 全局唯一 ApplicationContext.Calender 原型模式 多重影分身之术 ...
- RabbitMQ:五、高阶
存储机制 持久化的消息和非持久化的消息都可以被写入到磁盘. 持久化的消息一开始就会写入磁盘,如果可以,也会在内存中保存一部分以提高性能,当内存吃紧时会从内存中清楚. 非持久化的消息一般存储在内存中,内 ...
- 深入理解JVM(③)虚拟机的类加载时机
前言 Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程被称为虚拟机的类加载机制. 类加载的时机 一个类型 ...
- Swoole 绑定域名 80 端口 (Nginx 反向代理)
启动 Swoole 的 http server,可以使用 IP + 端口 进行访问 创建 Nginx 虚拟域名 vim swotp.liuguofeng.com.conf server { liste ...
- 解Bug之路-中间件"SQL重复执行"
前言 我们的分库分表中间件在线上运行了两年多,到目前为止还算稳定.在笔者将精力放在处理各种灾难性事件(例如中间件物理机宕机/数据库宕机/网络隔离等突发事件)时.竟然发现还有一些奇怪的corner ca ...