PowerBI中PowerQuery替代Countifs的实现方案咨询
在PowerQuery中实现团队+日期维度的Pass/总数量统计
方法一:添加自定义列实现类似COUNTIFS逻辑
适合需要保留原有列的场景,无需提前分组:
- 进入PowerQuery编辑器,确保数据源已加载(假设表名为
原始数据) - 点击添加列 → 自定义列,输入以下公式统计Pass数量:
= List.Count(Table.SelectRows(原始数据, (当前行)=> 当前行[团队] = [团队] and 当前行[日期] = [日期] and 当前行[结果] = "Pass")[结果])
将列名重命名为当日团队Pass数
- 再次添加自定义列,输入公式统计总数量:
= List.Count(Table.SelectRows(原始数据, (当前行)=> 当前行[团队] = [团队] and 当前行[日期] = [日期])[结果])
将列名重命名为当日团队总数量
- 此时每一行都会带上对应团队+日期维度的统计值,后续可直接基于这两列做平均等计算;如果需要去重的唯一统计结果,可按
团队和日期分组,保留这两个统计列的任意值(同一分组下值完全相同)。
方法二:分组后直接生成聚合统计
如果不需要保留原有大量列,优先用此方法,性能更优:
- 在PowerQuery编辑器中选中
原始数据,点击转换 → 分组依据 - 分组设置:
- 勾选高级选项
- 添加分组列:
团队(文本类型)、日期(日期类型) - 添加聚合列:
- 名称:
Pass数量,操作选择自定义,输入公式:List.Count(List.Select([结果], each _ = "Pass")) - 名称:
总数量,操作选择行计数(或自定义公式List.Count([结果]))
- 名称:
- 确认后直接得到按团队+日期聚合的统计表,可直接用于后续平均等计算。
注意事项
- 数据量较大时,方法一的全表遍历逻辑会影响性能,优先用方法二的分组聚合
- 确保
日期列是标准日期类型,避免因格式不一致导致统计偏差
内容的提问来源于stack exchange,提问作者egflame
相关产品推荐
相关产品推荐

