Power BI中按流程分组并将步骤时间转换为多列的可行性问询
在Power BI中实现长表转宽表(流程步骤耗时透视)
当然可以直接在Power BI里搞定这个需求,完全不需要依赖Python等外部工具!下面是两种最常用的实现方式,你可以根据自己的习惯选择:
方法一:使用Power Query编辑器的「透视列」功能(推荐,操作简单)
这是最直观高效的方式,适合在数据加载阶段完成转换:
- 打开Power BI,导入你的原始表格数据后,进入Power Query编辑器(点击「转换数据」按钮)
- 选中你的「流程名称或ID」列(列1)
- 在顶部菜单栏的「转换」选项卡中,找到并点击**「透视列」**
- 在弹出的设置窗口中:
- 「值列」选择你的「耗时」列(列3)
- 「高级选项」里选择「不要聚合」(因为每个流程+步骤的组合是唯一的,不需要聚合)
- 点击确定后,Power Query会自动将步骤编号(列2)转成列名,并且对应填充每个流程的步骤耗时,缺失的步骤会自动显示为
null(对应你示例里的Nan)
- 最后点击「关闭并应用」,就能得到你想要的宽表格式了
方法二:使用DAX创建计算列(适合在报表层灵活调整)
如果不想修改原始数据模型,也可以在报表视图中用DAX为每个步骤创建单独的计算列:
比如要创建「步骤1耗时」列,DAX公式如下:
步骤1耗时 = CALCULATE(MAX('你的表名'[耗时]), FILTER('你的表名', '你的表名'[流程名称或ID] = EARLIER('你的表名'[流程名称或ID]) && '你的表名'[步骤编号] = 1))
同理,「步骤2耗时」和「步骤3耗时」只需要把公式里的=1改成=2、=3即可。之后你可以把这些计算列和去重后的流程ID列放在同一个视觉对象里,就能得到目标格式。
两种方法都能实现你的需求,个人更推荐第一种Power Query透视的方式,操作更简洁,而且数据加载后就固定了格式,后续报表使用更方便。
内容的提问来源于stack exchange,提问作者Tam
相关产品推荐
相关产品推荐

