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

如何在Matrix Visual中获取筛选月份的账户最新余额?

问题描述

我有一张名为Reconciliation的表,包含Date ID、Account ID和Balance字段,数据如下:

Date IDAccount IDBalance
20240101A100
20240201A200
20240301B300

另有一张与Date ID关联的日期表Date。我需要创建一个度量值,返回筛选月份对应最后日期的账户余额,期望的Matrix Visual效果如下:

-------202401202402202403
A100200200
B300

我尝试了以下DAX公式,但账户A的3月余额显示空白:

LastBalance = CALCULATE(SUM(Reconciliation[Balance]), Reconciliation[Date ID] = MAX(Reconciliation[Date ID]))

实际得到的结果:

-------202401202402202403
A100200*
B300

求解决账户A最后月份余额为空的问题。

解决方案

原公式的问题在于:MAX(Reconciliation[Date ID])仅读取当前筛选上下文(如202403月份)中Reconciliation表的日期,而账户A在3月无数据,导致MAX返回空白,最终CALCULATE无匹配结果。

需要调整逻辑:针对每个账户,找到不晚于当前筛选月份最后一天的最大有效日期,再取该日期的余额。以下是修正后的DAX度量值:

LastBalance = 
VAR CurrentMonthEnd = EOMONTH(MAX('Date'[Date]), 0)
VAR LastValidDate = 
    CALCULATE(
        MAX(Reconciliation[Date ID]),
        FILTER(
            ALLSELECTED(Reconciliation),
            Reconciliation[Account ID] = MAX(Reconciliation[Account ID])
                && Reconciliation[Date ID] <= CurrentMonthEnd
        )
    )
RETURN
    CALCULATE(
        SUM(Reconciliation[Balance]),
        Reconciliation[Date ID] = LastValidDate
            && Reconciliation[Account ID] = MAX(Reconciliation[Account ID])
    )

逻辑说明

  1. CurrentMonthEnd:通过日期表获取当前筛选月份的最后一天,确保月份范围判断准确
  2. LastValidDate:针对当前账户,筛选出所有不晚于当前月末的最大日期——即使账户在当前月份无数据,也会取最近的历史日期
  3. 最后返回该有效日期对应的账户余额

如果你的Date ID是整数格式(如示例中的20240101),需要将EOMONTH的结果转换为整数匹配格式,调整后的代码如下:

LastBalance = 
VAR CurrentMonthEnd = FORMAT(EOMONTH(MAX('Date'[Date]), 0), "YYYYMMDD") + 0
VAR LastValidDate = 
    CALCULATE(
        MAX(Reconciliation[Date ID]),
        FILTER(
            ALLSELECTED(Reconciliation),
            Reconciliation[Account ID] = MAX(Reconciliation[Account ID])
                && Reconciliation[Date ID] <= CurrentMonthEnd
        )
    )
RETURN
    CALCULATE(
        SUM(Reconciliation[Balance]),
        Reconciliation[Date ID] = LastValidDate
            && Reconciliation[Account ID] = MAX(Reconciliation[Account ID])
    )

使用上述度量值后,即可实现期望效果:账户A在3月显示最近的2月余额,账户B显示3月余额。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 14:41:23