Power Query M中统计每行P1-P12列非零值数量方法咨询
Power Query统计指定列中非零值的数量方法
方法一:可视化步骤操作(适合不熟悉M语言的用户)
- 选中表格里的
account和date列,右键选择「逆透视其他列」,这一步会把P1到P12的列转换为两列:Attribute(原列名)和Value(对应单元格的值) - 点击「添加列」→「条件列」,设置规则:当
Value不等于0时返回1,否则返回0,给这个新列起个名字比如「非零标记」 - 选中
account和date列,点击「转换」→「分组依据」,分组依据选择这两列,新列名称设为「非零列数」,操作选择「求和」,求和的列选刚才的「非零标记」 - 如果需要恢复原来的表格结构,可以选中分组后的
account、date和「非零列数」,再把之前逆透视的列重新透视回去(可选)
方法二:自定义列直接写M代码(更高效)
- 点击「添加列」→「自定义列」
- 在弹出的公式输入框中粘贴以下代码:
List.Count(List.Select({[P1],[P2],[P3],[P4],[P5],[P6],[P7],[P8],[P9],[P10],[P11],[P12]}, each _ <> 0))
- 代码解释:
{[P1],[P2],...,[P12]}:把当前行的P1到P12的值打包成一个列表List.Select(..., each _ <> 0):筛选出列表中不等于0的元素List.Count(...):统计筛选后列表的元素个数,也就是非零值的列数
补充说明
如果P1-P12列存在null值,且需要把null也排除在统计外,可以把代码里的条件改成:
each _ <> 0 and _ <> null
内容的提问来源于stack exchange,提问作者Marco Scavuzzo
相关产品推荐
相关产品推荐

