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

DAX PowerPivot:按唯一缺勤ID求和Approved列的度量值报错求助

DAX度量值错误分析与修正方案

错误原因分析

你的公式报错且无法实现需求,核心问题有两点:

  1. EARLIER上下文失效:ALL('Master Absence Dates')清除了所有筛选上下文,此时外部没有Unique ID的上下文值,EARLIER('Master Absence Dates'[Unique ID],1)找不到可引用的层级,直接触发错误。
  2. 逻辑偏离需求:原公式是筛选当前ID的所有行再求和,这会把同一个ID下重复的Approved值累加(比如同一个ID出现3次、Approved=2,会算出6),完全违背了"每个唯一ID仅计算一次"的要求。

正确度量值写法

要实现按唯一ID对Approved值去重求和,本质是先提取每个Unique ID对应的Approved值(因同一ID的Approved是重复的总天数,取任意单次值即可),再对这些唯一值求和。推荐两种写法:

写法1:SUMX + SUMMARIZE(直观清晰)

Approved总天数(去重ID):=
SUMX(
    SUMMARIZE(
        'Master Absence Dates',
        'Master Absence Dates'[Unique ID Occurrence],
        "单次Approved值", MAX('Master Absence Dates'[Approved])
    ),
    [单次Approved值]
)
  • SUMMARIZE按Unique ID分组,每组取一个Approved值(用MAX/MIN均可,因为同一ID的Approved值一致)
  • SUMX遍历每个分组,对提取的单次值求和

写法2:DISTINCT + SUMX(简洁高效)

Approved总天数(去重ID):=
SUMX(
    DISTINCT('Master Absence Dates'[Unique ID Occurrence]),
    CALCULATE(MAX('Master Absence Dates'[Approved]))
)
  • DISTINCT获取所有唯一的Unique ID列表
  • 对每个唯一ID,用CALCULATE提取对应的Approved值,再求和

验证说明

用你提供的示例数据测试:
三个唯一ID对应的Approved分别是2、4、4,求和结果应为2+4+4=10,上述两种写法都能得到正确结果,不会因同一ID重复出现而重复累加。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 10:25:23