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

DAX计算前一非空白日期基金投资值问题求助

解决DAX计算基金前一日期投资值的问题

原DAX代码的问题分析

你之前的代码报错核心原因有两个:

  • DISTINCT(ALL_MF[Scheme_Name])返回的是表对象,无法直接与ALL_NAV[SchemeName](标量值)做比较
  • LASTDATE('ALL_NAV'[navDate]) -1逻辑不合理,基金NAV数据通常仅在交易日更新,直接减1天可能指向无数据的非交易日

步骤1:获取前一有效日期的NAV值

以下是修正后的DAX度量值,可直接用于计算单只基金前一非空白日期的NAV:

PrevNAV = 
VAR CurrentScheme = MAX(ALL_MF[Scheme_Name])
VAR CurrentDate = MAX(ALL_NAV[navDate])
-- 定位当前基金、当前日期之前的最后一个有有效NAV的日期
VAR PrevValidDate = 
    CALCULATE(
        MAX(ALL_NAV[navDate]),
        ALL_NAV[SchemeName] = CurrentScheme,
        ALL_NAV[navDate] < CurrentDate,
        NOT ISBLANK(ALL_NAV[navValue])
    )
-- 提取该日期的NAV总和
VAR PrevNAVValue = 
    CALCULATE(
        SUM(ALL_NAV[navValue]),
        ALL_NAV[SchemeName] = CurrentScheme,
        ALL_NAV[navDate] = PrevValidDate
    )
RETURN PrevNAVValue

步骤2:计算前一日期的投资值

假设ALL_MF表中存储投资额的字段名为InvestmentAmount,创建如下度量值即可完成计算:

PrevInvestmentValue = 
VAR NavValue = [PrevNAV]
VAR FundInvestment = MAX(ALL_MF[InvestmentAmount])
RETURN NavValue * FundInvestment

关键说明

  • 所有度量值依赖当前上下文(比如报表中已筛选单只基金、单个日期),确保计算逻辑精准对应目标基金
  • 若需在计算列中实现,只需将MAX()替换为EARLIER()或直接引用当前行的字段值即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 23:30:09