You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Power BI中用DAX/M CODE处理宽格式数据:汇总与比例计算

Power BI宽格式数据分组汇总解决方案

方法一:Power Query 数据转换实现

1. 过滤数据

  • 进入Power Query编辑器,选中目标数据集
  • 点击「开始」→「行」→「筛选行」,设置条件:critical_level > 0

2. 分组聚合

  • 点击「转换」→「分组依据」,选择「高级」模式:
    • 分组列:添加agent、period
    • 聚合列:
      • 名称:type_a_sum,操作「求和」,列选type_a
      • 名称:type_b_sum,操作「求和」,列选type_b
      • 名称:type_c_sum,操作「求和」,列选type_c
      • 名称:subtotal,操作「计数行」,列选id_trans
  • 点击「确定」完成分组

3. 计算比例并整理

  • 添加自定义列计算type_a比例:
    = [type_a_sum] / [subtotal]
    
    重命名列名为type_a
  • 同理创建type_b、type_c比例列,公式分别为[type_b_sum]/[subtotal]、[type_c_sum]/[subtotal]
  • 选中比例列,点击「转换」→「格式化」→「保留两位小数」
  • 删除临时的type_a_sum、type_b_sum、type_c_sum列

方法二:DAX 创建汇总计算表

1. 创建筛选表(可选)

若需单独存储过滤后的数据,新建计算表:

FilteredTable = FILTER(原始表名, 原始表名[critical_level] > 0)

2. 生成汇总表

新建计算表,直接输出分组后的汇总结果:

SummaryTable = 
SUMMARIZE(
    FilteredTable,
    FilteredTable[agent],
    FilteredTable[period],
    "type_a", DIVIDE(SUM(FilteredTable[type_a]), COUNT(FilteredTable[id_trans])),
    "type_b", DIVIDE(SUM(FilteredTable[type_b]), COUNT(FilteredTable[id_trans])),
    "subtotal", COUNT(FilteredTable[id_trans]),
    "type_c", DIVIDE(SUM(FilteredTable[type_c]), COUNT(FilteredTable[id_trans]))
)

注:DIVIDE函数可自动处理除数为0的异常情况

3. 格式化比例值

  • 选中SummaryTable中的type_a、type_b、type_c列
  • 在「建模」选项卡的「格式」组,设置格式为「百分比」并保留两位小数

两种方法最终均可得到符合需求的汇总表:

agentperiodtype_atype_btype_csubtotal
markmay0.670.330.673
sammay1.000.000.502

内容的提问来源于stack exchange,提问作者R_Student

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 09:51:11