如何在Power BI报表中计算准时交付KPI?
准时交付KPI计算方案(Power BI)
核心思路
必须使用DAX度量值实现动态计算(计算列是静态的,无法响应切片器筛选),以下提供两种实用实现方式:
方式一:基于已有的Diff Days列
拆分创建三个度量值(便于调试和复用):
- 准时交付记录数
准时交付记录数 = CALCULATE( COUNTROWS('你的表名'), NOT(ISBLANK('你的表名'[Diff Days])), '你的表名'[Diff Days] >= 0 )
- 有效总记录数
有效总记录数 = CALCULATE( COUNTROWS('你的表名'), NOT(ISBLANK('你的表名'[Diff Days])) )
- 准时交付率KPI
准时交付率KPI = DIVIDE( [准时交付记录数], [有效总记录数], 0 // 无有效记录时返回0,可根据需求改为BLANK() ) * 100
方式二:直接基于原始日期列(无需预先创建Diff Days)
该版本更灵活,避免计算列的静态限制:
准时交付率KPI = VAR 有效记录集 = FILTER( '你的表名', NOT(ISBLANK('你的表名'[Cust Promised Date])), NOT(ISBLANK('你的表名'[Act Delivery Date])) ) VAR 准时记录数 = COUNTROWS( FILTER( 有效记录集, DATEDIFF('你的表名'[Act Delivery Date], '你的表名'[Cust Promised Date], DAY) >= 0 ) ) VAR 总有效记录数 = COUNTROWS(有效记录集) RETURN DIVIDE(准时记录数, 总有效记录数, 0) * 100
使用步骤
- 将上述
准时交付率KPI度量值拖入记分卡或KPI视觉对象 - 配置切片器(如按区域、时间范围筛选),KPI会自动动态更新
- 可在KPI视觉对象中设置目标值(如95%),直观展示达标情况
注意事项
- 确保
Cust Promised Date和Act Delivery Date列的数据类型为日期/时间,避免计算错误 - DIVIDE函数的第三个参数用于处理除数为0的场景,可按需调整返回值
内容的提问来源于stack exchange,提问作者Rock
相关产品推荐
相关产品推荐

