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

Power BI DAX实现员工最近4季度信用总额计算(去重季度取最新月索引)

正确DAX解决方案:计算员工最近4个季度的信用总额(保留最新季度记录)

需求说明

  • 针对每个唯一EMP Number,计算最近4个季度的credit总和
  • 若同一credit _ Quarter存在多条记录,仅保留该季度中month_Index最大的最新记录
  • 示例员工1104282的目标计算结果为€1575

示例数据

creditEMP Numbercredit _ QuarterQuarter_Indexmonth_Index
€300.1104282Q2 Y127
€525.1104282Q4 Y147
€375.1104282Q1 Y257
€375.1104282Q3 Y137
€0.1104282Q1 Y117
€300.1104282Q2 Y124
€375.1104282Q4 Y144
€375.1104282Q3 Y134
€0.1104282Q1 Y114

原公式问题分析

你提供的DAX公式存在以下问题:

  1. 语法错误:ALL('osds'Quarter_Index])缺少方括号分隔,应为ALL('osds'[Quarter_Index])
  2. 逻辑错误:未正确筛选每个季度的最新记录,也未按Quarter_Index降序获取最近4个季度
  3. 计算逻辑偏差:SUMX的嵌套CALCULATE未正确关联去重后的记录

正确DAX公式

credit_sum = 
VAR CurrentEMP = SELECTEDVALUE('osds'[EMP Number])
-- 筛选每个员工每个季度的最新记录(取month_Index最大的那条)
VAR LatestQuarterRecords = 
    FILTER(
        'osds',
        'osds'[EMP Number] = CurrentEMP &&
        'osds'[month_Index] = CALCULATE(
            MAX('osds'[month_Index]),
            ALLEXCEPT('osds', 'osds'[EMP Number], 'osds'[credit _ Quarter])
        )
    )
-- 获取去重后最近的4个季度(按Quarter_Index降序取TOP4)
VAR Top4LatestQuarters = 
    TOPN(
        4,
        LatestQuarterRecords,
        'osds'[Quarter_Index], DESC
    )
-- 计算4个季度的credit总和
RETURN
    SUMX(Top4LatestQuarters, 'osds'[credit])

公式说明

  1. CurrentEMP:锁定当前上下文的员工编号,确保计算仅针对单个员工生效
  2. LatestQuarterRecords:通过ALLEXCEPT保留员工和季度维度,筛选出每个季度中month_Index最大的记录,完成重复季度数据的去重
  3. Top4LatestQuarters:对去重后的记录按Quarter_Index降序取前4条,即时间最近的4个季度
  4. SUMX:遍历筛选后的4条记录,计算credit总和

验证示例员工1104282:去重后的有效季度为Q1 Y2(375)、Q4 Y1(525)、Q3 Y1(375)、Q2 Y1(300),总和为375+525+375+300=1575,符合目标结果

内容的提问来源于stack exchange,提问作者Sufiyan Shaikh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 21:30:07