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)运算的的解决思路的更多相关文章

  1. 数据可视化之PowerQuery篇(二)这个方法帮你快速计算列

    https://zhuanlan.zhihu.com/p/81846862 PowerQuery中,对两列或者多列的计算一般通过添加自定义列来实现,以下表为例, 如果需要1月和2月数据的合计,可以添加 ...

  2. 数据可视化之PowerQuery篇(四)二维表转一维表,看这篇文章就够了

    https://zhuanlan.zhihu.com/p/69187094 数据分析的源数据应该是规范的,而规范的其中一个标准就是数据源应该是一维表,它会让之后的数据分析工作变得简单高效. 在之前的文 ...

  3. 数据可视化之PowerQuery篇(二十)如何计算在职员工数量?

    https://zhuanlan.zhihu.com/p/128652582 ​经常碰到的一类问题是,如何根据起止日期来计算某个时间点的数量,比如: 已知合同的生效日期和到期日期,特定日期的有效合同有 ...

  4. 数据可视化之PowerQuery篇(十三)Power BI总计行错误,这个技巧一定要掌握

    https://zhuanlan.zhihu.com/p/102567707 ​前一段介绍过一个客户购买频次统计的案例: Power BI 数据分析应用:客户购买频次分布. 我并没有在文章中显示总计行 ...

  5. 数据可视化之PowerQuery篇(十)如何将Excel的PowerQuery查询导入到Power BI中?

    https://zhuanlan.zhihu.com/p/78537828 最近碰到星友的一个问题,他是在Excel的PowerQuery中已经把数据处理好了,但是处理后的数据又想用PowerBI来分 ...

  6. 数据可视化之PowerQuery篇(八)利用PowerQuery,进行更加灵活的数据分列

    https://zhuanlan.zhihu.com/p/66540160 常规分列 我们最常见的就是有固定分隔符的规范数据,这种直接就按照分隔符拆分就可以了, 如果没有分割符怎么办?依然是上面的数据 ...

  7. 数据可视化之PowerQuery篇(七)Power Query应用技巧:批量更改列名

    https://zhuanlan.zhihu.com/p/130460772 ​今天分享一个PowerQuery的小技巧,导入到PowerBI中的数据,如果想要更改数据的列名,可以在PQ编辑器中直接双 ...

  8. 数据可视化之PowerQuery篇(六)PowerQuery技巧:批量合并Excel表的指定列

    本文来源于一个星友的问题,他有上百个Excel表格,格式并不完全一样,列的位置顺序也不同,但每个表都有几个共同列,这种情况下,能不能通过Power Query把这些表格共同的列批量合并呢? 当然是可以 ...

  9. 数据可视化之PowerQuery篇(五)PowerQuery文本处理技巧:移除和提取

    https://zhuanlan.zhihu.com/p/64419762 每当拿到原始数据,不如意十有八九,快速准确的清洗数据也是必备技能,数据清洗正好是 PowerQuery 的强项,本文就来介绍 ...

随机推荐

  1. Linux中GitLab的部署

    1.版本控制介绍 ​ 版本控制最主要的功能就是追踪文件的变更.它将什么时候.什么人更改了文件的什么内容等信息忠实地了记录下来.每一次文件的改变,文件的版本号都将增加.除了记录版本变更外,版本控制的另一 ...

  2. Redis的持久化设计

    Redis 持久化设计 持久化的功能:Redis是内存数据库,数据都是存储在内存中的,为了避免进程退出导致数据的永久丢失,要定期将Redis中的数据以某种形式从内存保存到硬盘,当下次Reids重启时, ...

  3. 图解KMP以及next数组的求法

    在计算机科学中,Knuth-Morris-Pratt字符串查找算法(简称为KMP算法)可在一个主文本字符串S内查找一个模式串P的出现位置.此算法通过运用对这个模式串在不匹配时本身就包含足够的信息来确定 ...

  4. VM virtualBox中文版 v6.0.12.133076官方版(64/-虚拟机

    virtualBox中文版 v6.0.12.133076官方版(64/-虚拟机 http://www.onlinedown.net/soft/82464.htm http://8dx.pc6.com/ ...

  5. RabbitMQ巩固学习一

    说起RabbitMQ大家第一时间应该想到的就是异步队列,关于异步队列的话题简直太多了,各位同学在园子里一搜便知.我第一次听异步队列这个名词感觉非常高大上

  6. MySQL语句的使用

    进入数据库  mysql -u root -pmysql    (u用户名,p密码)#如果不想让其他人看到就直接一个p然后回车再打密码 select version();   查看数据库版本 sele ...

  7. JavaWeb网上图书商城完整项目--day02-11.激活功能流程分析

    1.当用户注册成功之后,会给用户发送邮件,当用户点击邮件的激活按钮的时候,会调用UserServlet中的activation的方法,并且会把激活码传递到后台,后台业务层对业务进行操作

  8. 入门大数据---Hbase是什么?

    一.Hbase是什么? Hbase属于NoSql的一种. NoSql数据库分为如下几类: Key-Value类型数据库 这类数据库主要会使用到一个哈希表,这个表有一个特定的键和一个指针指向特定的数据. ...

  9. 在linux上安装jdk(转载)

    软件环境: 虚拟机:VMware Workstation 10 操作系统:Ubuntu-12.04-desktop-amd64 JAVA版本:jdk-7u55-linux-x64 软件下载地址: JD ...

  10. 每天一个Linux命令(mkdir)

    每天一个Linux命令(mkdir) mkdir: /bin/mkdir,创建目录( make directories)语法:mkdir [选项]... 不存在的目录...目录:默认时必须该目录不存在 ...