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

如何在DAX中获取单只共同基金的最新NAV日期及投资现值

DAX问题求解:基金投资模型中的最新净值日期与现值计算

数据模型说明

模型包含4张表:

  • All_MF:记录不同时间段内各基金产品的投资记录
  • ALL_NAV:记录各基金产品每日的NAV(净值)数据
  • MF_Details:记录投资的基金产品列表
  • Date:标准日期表

问题1:给All_MF表添加对应基金的最新NAV日期计算列

尝试过以下DAX公式,但因All_MF与ALL_NAV未建立关系,返回的是全局最大日期而非单只基金的最新日期:

LatestNAVDt = CALCULATE(MAXX(RELATEDTABLE(ALL_NAV),ALL_NAV[navDate]),ALL(ALL_NAV))

解决方案

由于无表间关系,需通过基金名称字段直接筛选匹配,使用以下公式作为计算列:

LatestNAVDt = 
CALCULATE(
    MAX(ALL_NAV[navDate]),
    ALL_NAV[基金名称] = All_MF[基金名称]
)

或使用MAXX配合筛选实现:

LatestNAVDt = 
MAXX(
    FILTER(ALL_NAV, ALL_NAV[基金名称] = All_MF[基金名称]),
    ALL_NAV[navDate]
)

问题2:基于最新NAV计算投资当前现值

现有度量值可获取所选年份最新日期的NAV值,但不知如何计算投资现值:

NAVValue =
    var MaxNavDt = MAXX(RELATEDTABLE(ALL_NAV),ALL_NAV[navDate])
    Return
        CALCULATE(MAXX(RELATEDTABLE(ALL_NAV),ALL_NAV[navValue]),
        FILTER(ALL_NAV,ALL_NAV[navDate] = MaxNavDt))

解决方案

投资现值为持有份额 × 最新NAV值,分两步实现:

  1. 先定义获取单只基金最新NAV的度量值:
最新NAV值 = 
VAR 当前基金 = SELECTEDVALUE(All_MF[基金名称])
VAR 基金最新日期 = CALCULATE(MAX(ALL_NAV[navDate]), ALL_NAV[基金名称] = 当前基金)
RETURN
CALCULATE(MAX(ALL_NAV[navValue]), ALL_NAV[基金名称] = 当前基金 && ALL_NAV[navDate] = 基金最新日期)
  1. 再定义计算总现值的度量值:
投资当前现值 = 
SUMX(
    All_MF,
    All_MF[持有份额] * [最新NAV值]
)

若All_MF表中无直接的持有份额字段,可通过投资金额除以投资当日NAV计算份额,调整公式为:

投资当前现值 = 
SUMX(
    All_MF,
    (All_MF[投资金额] / All_MF[投资当日NAV]) * [最新NAV值]
)

补充说明

Axis Midcap Fund - Direct Plan - Growth的NAV数据截止到10/19,另外两只基金截止到10/20。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 19:31:33