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

如何让折线图中BaseExchangeRate不受日期字段影响保持恒定

问题说明

现有汇率表结构如下:

DATEFIRST CURRENCYSECOND CURRENCYEXCHANGE_RATE_VALUE
(数据行)(货币代码)(货币代码)(汇率值)

需求是绘制折线图,展示第二种货币的汇率指数变化,基准指数为100(以该货币的最早日期汇率为基准)。

原基准汇率计算DAX公式:

BaseExchangeRate = CALCULATE ( 
        AVERAGE ( 'Currency Table'[EXCHANGE_RATE_VALUE]), 
        FILTER('Currency Table', 'Currency Table'[DATE] = MIN('Currency Table'[DATE]))
)

该公式在表格中显示正常,但在折线图中无法呈现各货币对应的恒定基准值,而是显示每个时段的实际汇率,导致无法正确计算指数。

解决方案

问题出在原公式的上下文筛选:MIN('Currency Table'[DATE])会受当前折线图的日期上下文影响,导致每个日期切片下都取当前范围内的最小日期,而非该货币全局的最早日期。

需要修改DAX公式,强制忽略当前的日期筛选,针对每种SECOND CURRENCY获取其全局最早日期的汇率:

修正后的基准汇率公式

BaseExchangeRate = 
VAR CurrentSecondCurrency = SELECTEDVALUE('Currency Table'[SECOND CURRENCY])
VAR MinDateForCurrency = CALCULATE(
    MIN('Currency Table'[DATE]),
    ALL('Currency Table'[DATE]),
    'Currency Table'[SECOND CURRENCY] = CurrentSecondCurrency
)
RETURN
CALCULATE(
    AVERAGE('Currency Table'[EXCHANGE_RATE_VALUE]),
    'Currency Table'[DATE] = MinDateForCurrency,
    'Currency Table'[SECOND CURRENCY] = CurrentSecondCurrency
)

汇率指数计算(可选)

得到恒定的基准汇率后,指数计算可以用以下公式:

ExchangeRateIndex = 
DIVIDE(
    'Currency Table'[EXCHANGE_RATE_VALUE],
    [BaseExchangeRate],
    0
) * 100

公式说明

  1. CurrentSecondCurrency:获取当前上下文的第二种货币,确保计算针对单个货币
  2. MinDateForCurrency:使用ALL('Currency Table'[DATE])移除日期筛选,获取该货币的全局最早日期
  3. 最后返回该货币最早日期对应的平均汇率,确保在任何日期上下文下都保持恒定

将修正后的BaseExchangeRate或ExchangeRateIndex放入折线图,即可得到以最早日期为基准的指数变化曲线,基准值保持恒定。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 21:37:13