知足知不足,有为有不为
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天不限次数答疑;
持续更新的杂志级图表制作方法及源文件;
历次分享的优秀可视化仪表板模板。
…………
领取专属 10元无门槛券
私享最新 技术干货