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

基于Reporting date切片器获取Bgt Avg YTD的DAX技术问题

DAX度量值修正方案

问题核心

原度量使用SUM会将符合筛选条件的所有汇率值汇总,而你需要的是对应Currency和Reporting date的单一汇率值,这是返回错误结果的根本原因。

正确度量方案

根据你的数据模型,以下两种方案均可实现需求:

方案1:使用LOOKUPVALUE精准匹配

该函数直接根据物料对应的Currency和切片器选择的Reporting date,从FX Rates表中提取唯一汇率:

Bgt Avg YTD = 
LOOKUPVALUE(
    'FX Rates'[Bgt Avg YTD],
    'FX Rates'[Currency], SELECTEDVALUE('GRIP'[Currency]),
    'FX Rates'[Reporting date], SELECTEDVALUE('Reporting date'[Reporting date])
)

方案2:修正CALCULATE逻辑(用MAX替代SUM)

如果每个Currency + Reporting date组合在FX Rates表中仅有一条记录,用MAX可以安全返回唯一汇率值,避免SUM的汇总问题:

Bgt Avg YTD = 
CALCULATE(
    MAX('FX Rates'[Bgt Avg YTD]),
    TREATAS(VALUES('GRIP'[Currency]), 'FX Rates'[Currency]),
    TREATAS(VALUES('Reporting date'[Reporting date]), 'FX Rates'[Reporting date])
)

注:使用TREATAS可以确保筛选上下文正确传递,避免关联关系可能导致的筛选失效。

后续计算

拿到正确汇率后,直接关联GRIP表的Value字段计算即可:

Calculated Value = [Bgt Avg YTD] * SUM('GRIP'[Value])

关键检查项

  • 确认表间关联:GRIP表需通过Currency字段关联到Currency表,Currency表关联FX Rates的Currency字段;Reporting date表需同时关联GRIP和FX Rates的Reporting date字段。
  • 清理冗余数据:如果FX Rates表中存在同一Currency + Reporting date的多条记录,需先去重或添加额外筛选条件(如汇率类型)确保唯一匹配。

内容的提问来源于stack exchange,提问作者Jakub Jabłoński

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 10:37:08