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

Power BI DAX实现未晋升员工数逐年动态累加的方法

DAX实现动态累加未晋升员工数解决方案

问题背景

现有Excel员工数据,包含姓名、父亲姓名、职位、部门,以及LastPromotionDate(最后晋升日期)和EligibilityDates(晋升资格生效日期)两列。已通过DAX度量值TotalNotPromotedTill2023算出2023年底未晋升员工数为100(这类员工的EligibilityDates在2023年及之前,具备晋升资格但未获得晋升)。

需求:将100这个基数动态累加到2024年及后续年份的新增符合晋升条件且未晋升员工数中,形成逐年累计的总数:

  • 2024年新增20名符合条件员工,显示总数120
  • 2025年新增30名,显示总数150
  • 以此类推逐年累加

此前直接将TotalNotPromotedTill2023与各年份新增数相加,会导致每一年都重复加100,不符合需求。

问题分析

之前的代码错误在于未正确控制基准值的应用范围:基准值仅应作为2024年的初始值,之后每年累加当年新增数,而非每一年都重复叠加基准值。需要通过时间上下文判断当前年份,计算从2024年到当前年份的累计新增数,再与基准值相加。

解决方案DAX代码

TotalNotPromotedAccumulated = 
VAR CurrentYear = YEAR(SELECTEDVALUE('Date'[Year])) -- 优先使用独立日期表的年份字段
VAR BaseCount = [TotalNotPromotedTill2023]
-- 计算单一年份内新增的符合资格但未晋升员工数(逻辑需与TotalNotPromotedTill2023对齐)
VAR NewEligibleCount = 
    CALCULATE(
        COUNTROWS('YourTable'),
        YEAR('YourTable'[EligibilityDates]) = CurrentYear,
        -- 未晋升判断:无晋升记录 或 晋升日期晚于资格生效日期
        ISBLANK('YourTable'[LastPromotionDate]) || 'YourTable'[LastPromotionDate] > 'YourTable'[EligibilityDates]
    )
-- 计算2024年至当前年份的累计新增数
VAR CumulativeNew = 
    CALCULATE(
        SUMX(
            FILTER(
                ALL('Date'[Year]),
                'Date'[Year] >= 2024 && 'Date'[Year] <= CurrentYear
            ),
            NewEligibleCount
        )
    )
RETURN
-- 仅在2024年及以后返回累加值,2023及以前可返回空值或原基数
IF(
    CurrentYear < 2024,
    BLANK(),
    BaseCount + CumulativeNew
)

代码说明

  1. CurrentYear:获取图表当前上下文选中的年份,推荐使用独立的日期表(Date Table)管理时间维度,这是Power BI/DAX中处理时间智能的标准做法,能避免时间上下文混乱。若未使用日期表,可改为YEAR(SELECTEDVALUE('YourTable'[EligibilityDates]))。
  2. BaseCount:直接复用已有的2023年底未晋升员工基数度量值。
  3. NewEligibleCount:计算单一年份内新增的符合晋升资格但未晋升的员工数,这里的未晋升判断逻辑需与TotalNotPromotedTill2023完全对齐,确保统计口径一致。
  4. CumulativeNew:通过SUMX和筛选逻辑,计算从2024年到当前选中年份的所有新增员工数的累计值,实现逐年累加的效果。
  5. 返回逻辑:仅在2024年及以后的年份返回基数+累计新增数,2023及以前返回空值(可根据可视化需求改为返回BaseCount)。

注意事项

  • 若未使用独立日期表,需确保YourTable中的EligibilityDates无空值,且年份提取逻辑准确。
  • 务必保证NewEligibleCount中的未晋升判断逻辑与TotalNotPromotedTill2023一致,否则会出现统计口径不一致的问题。

内容的提问来源于stack exchange,提问作者Uzair Qaiser

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 04:43:39