首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

原来Power Query是这样处理null值

知足知不足,有为有不为

Power Query中直接与计算相关的功能有「统计信息」和「标准」

统计信息

选中一列时,「统计信息」的功能是使用相应的List类函数对该列所有值组成的列表进行聚合,当选中的列包含文本时,只有最后两个选项可用。

标准

选中一列时,「标准」的功能类似于Excel中的「选择性粘贴」的运算功能,对所选列的每一个值上运行所选操作,比如将所选列的每一个值乘以2等。

统计信息对应的聚合方式及M函数

关于Null值的运算规则

选中两列及以上时,「统计信息」也会使用List类函数进行聚合,但是聚合的对象不是某列的所有值组成的列表,而是不同列组成的列表。

我们可以对比一下标准的「添加」和统计信息的「求和」。可以看到它们都是将1月和2月的数据相加。不同的是在标准-添加的列中,有两个null值。这是因为2月份的数据缺失导致。

在来看看两个步骤生成的M公式

在 Power Query 中进行四则运算时,如果其中的一个值为Null,结果将会是 Null。而List 类的函数在处理 Null 值时,通常会将其视为列表中的一个有效值,并将其包含在计算中。因为是空值,计算时又不算具体数据,因此返回的往往是参与运算的数字本身。

这种特性通常更符合计算需求。当2月数据缺失时,计算两个月的合计返回1月份的数据,比返回null更合理。因此统计信息的求和的计算结果相对安全一些。

List类函数与null值

在List函数中,如果列表中有 Null 值,这些Null值将被视为有效值。它们包括 List.Sum、List.Average、List.Max、List.Min、List.Count 等函数。可以使用 List.RemoveNulls剔除列表中的Null值。

下面我们以一个更准确的示例,来说明 Null 如何影响List类函数的计算结果:

以上M公式返回的结果如下图。可以看到除了计数以外,包含null值的计算结果与不包含的计算结果是一致的。null值在计算过程中被视为有效值,不会导致最终返回的结果为null。使用运算符则会返回null。

需要注意的是计数时,null值有效,返回计数是5;在计算平均值时,null却不算个数,返回平均值与剔除null值后一样,都是3。

Power Query的这种设计应该为了让空值成为真正的空值,不参与实际的数字运算。防止带来不必要的干扰吧。

百余篇优质原创文章练习文件;

365天不限次数答疑;

持续更新的杂志级图表制作方法及源文件;

历次分享的优秀可视化仪表板模板。

…………

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230405A04JDE00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券