Power BI预测:基于部分数据按开始日期预测完成率
项目完成率预测解决方案(Power BI)
核心问题针对性解决
1. 修正“近期低完成率干扰预测”问题
多数参与者4年内完成项目,近期(1-3年)启动的项目未到完整周期,自然完成率偏低,直接全局预测会拉低结果。解决方案:
- 划分时间分段处理:
- 对启动时间超过4年的项目组:直接使用实际完成率(已完成人数/总参与人数)
- 对启动时间不足4年的项目组:匹配历史上同启动时长的项目完成率作为预测值(比如2023年启动的项目,参考2019年启动、同样运行1年的项目完成率)
- 实现度量值示例:
分段完成率 = VAR 当前启动时长 = DATEDIFF(MAX('项目表'[开始日期]), TODAY(), YEAR) VAR 历史同周期完成率 = CALCULATE( DIVIDE(COUNT('项目表'[已完成]), COUNT('项目表'[总参与])), FILTER( ALL('项目表'), DATEDIFF('项目表'[开始日期], TODAY(), YEAR) = 当前启动时长 && DATEDIFF('项目表'[开始日期], '项目表'[完成日期], YEAR) <=4 ) ) RETURN IF(当前启动时长 >=4, DIVIDE(COUNT('项目表'[已完成]), COUNT('项目表'[总参与])), 历史同周期完成率 )
2. 解决“无法基于未来完成者回溯计算过往完成率”问题
过往启动的项目中,部分参与者在后续时间完成,默认时间筛选仅统计当时状态会导致偏差。解决方案:
- 使用无时间限制的回溯计算,忽略页面时间筛选,计算每个启动日期组的所有参与者到当前的最终状态:
该度量值会统计每个开始日期组截至当前的实际完成情况,无论完成时间是在开始日期的过去还是未来。回溯完成率 = CALCULATE( DIVIDE(COUNT('项目表'[已完成]), COUNT('项目表'[总参与])), ALLEXCEPT('项目表', '项目表'[开始日期]), '项目表'[状态] IN {"已完成", "已退出"} )
合并“实际完成”与“潜在预测”的展示方案
针对你提到的两个度量值,可通过以下方式合并展示:
- 创建组合度量值:根据项目周期自动切换实际值与预测值,示例:
合并完成率 = VAR 已完成人数 = CALCULATE(COUNT('项目表'[参与者ID]), '项目表'[状态]="已完成") VAR 剩余人数 = CALCULATE(COUNT('项目表'[参与者ID]), '项目表'[状态]<>"已完成") VAR 历史同周期转化概率 = [历史同周期完成率] -- 复用前面的度量值 RETURN DIVIDE(已完成人数 + 剩余人数 * 历史同周期转化概率, COUNT('项目表'[参与者ID])) - 可视化层合并展示:
- 用折线图同时添加“实际完成率”和“预测完成率”系列,通过图例区分
- 用卡片图显示合并后的完成率,在工具提示中展示实际完成人数、剩余预测人数明细
- 利用Power BI动态格式,设置项目周期≥4年时显示实际值,否则显示预测值并标注“预测”
内容的提问来源于stack exchange,提问作者Matt Drake
相关产品推荐
相关产品推荐

