如何在Power BI中创建展示业务提案时长与阶段的Gantt Chart?
实现Power BI提案时长与阶段可视化方案
核心思路
这种图表本质是带阶段标记的时长条形图,用Power BI原生组件就能实现,无需第三方视觉对象。
步骤分解
1. 数据准备
确保数据集包含以下字段:
- 提案ID/名称(用于横轴分类)
- 提案创建日期(计算时长的起始点)
- 当前阶段(固定值:谈判/成交)
先创建计算列生成持续时长:
提案持续天数 = DATEDIFF('表'[创建日期], TODAY(), DAY)
若需展示小时/周,将DAY替换为HOUR/WEEK即可。
2. 构建基础条形图
- 拖拽「提案名称」到Y轴
- 拖拽「提案持续天数」到X轴,选择「簇状条形图」类型
- 把「当前阶段」拖入图例,不同阶段的条形会自动区分颜色
3. 视觉效果优化
- 自定义颜色:在「格式」面板的「数据颜色」中,给「谈判」「成交」设置高辨识度颜色(比如谈判用橙色,成交用绿色)
- 添加数据标签:开启「数据标签」,选择显示「值」,直接展示时长数值
- 调整轴范围:若时长差异较大,设置X轴最小值为0,避免短条形难以辨识
- 合并名称与阶段(可选):创建计算列拼接信息,替代Y轴的提案名称,更直观:
提案名称+阶段 = '表'[提案名称] & " (" & '表'[当前阶段] & ")"
4. 实时更新时长
如果需要每日自动更新时长,将计算列替换为度量值:
实时持续天数 = DATEDIFF(MAX('表'[创建日期]), TODAY(), DAY)
将该度量值拖入X轴即可实现动态更新。
进阶方案(多阶段时长分布)
若要展示提案在不同阶段的时长拆分(比如创建到谈判、谈判到成交的各段时长),可用「堆积条形图」:
- 创建计算列:
谈判阶段天数 = DATEDIFF('表'[创建日期], '表'[进入谈判日期], DAY) - 创建计算列:
成交阶段天数 = DATEDIFF('表'[进入谈判日期], '表'[成交日期], DAY) - 将这两个字段拖入X轴,选择「堆积条形图」,通过图例区分不同阶段。
内容的提问来源于stack exchange,提问作者Jj Encrypt
相关产品推荐
相关产品推荐

