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

Power Pivot新手求助:如何实现月度效率计算(DAX公式优化)

解决Power Pivot中月度效率计算的DAX问题

嘿,我来帮你搞定这个度量值的问题!你的需求是计算月度日均效率——把每个唯一日期的日效率加总,再除以当月截至当前的唯一日期数,对吧?

问题分析

你当前的公式:

Actual Efficiency CL2:=CALCULATE(SUM(CL1[Day Wise Efficiency]),DISTINCT(CL1[Date (dd/mm/yy)]))

按日统计时没问题,因为每个日期就是一个唯一值,求和结果就是当天的效率;但按月分组时,它只会把当月所有日期的日效率直接加总,没有做除以天数的操作,所以才只显示总和。

修正后的DAX度量值

我给你调整一下公式,加入天数计算和除法逻辑:

Actual Efficiency CL2 :=
VAR DailyEfficiencyTotal =
    // 计算所有唯一日期的日效率总和
    CALCULATE ( SUM ( CL1[Day Wise Efficiency] ), DISTINCT ( CL1[Date (dd/mm/yy)] ) )
VAR UniqueDaysInMonth =
    // 计算当月截至当前的唯一日期数量
    CALCULATE (
        COUNTROWS ( DISTINCT ( CL1[Date (dd/mm/yy)] ) ),
        DATESMTD ( CL1[Date (dd/mm/yy)] )
    )
// 用DIVIDE函数安全做除法,避免除数为0的错误
RETURN
    DIVIDE ( DailyEfficiencyTotal, UniqueDaysInMonth, 0 )

公式详解

  • DailyEfficiencyTotal:保留你原来的逻辑,确保每个日期的日效率只被计算一次(就算同一天有多条记录,SUM也会正确累加)
  • UniqueDaysInMonth:DATESMTD会自动筛选出当前上下文里“当月截至当前日期”的所有日期,再用COUNTROWS(DISTINCT(...))统计其中的唯一日期数,完美匹配你“截至当前”的需求
  • DIVIDE函数:DAX里推荐用它做除法,第三个参数是除数为0时的默认返回值(这里设为0,你也可以改成BLANK()让空值显示为空)

额外提示

  • 如果你有单独的日期维度表(Power Pivot最佳实践),建议把公式里的CL1[Date (dd/mm/yy)]换成日期表的日期列,这样上下文筛选会更准确
  • 测试时可以分别按日、按月查看结果:按日时,UniqueDaysInMonth等于1,结果和你原来的公式一致;按月时,就是月度日均效率,符合你的需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 08:12:52