首页 文章

DAX公式 - 基于最后非空白非日期列的结算余额

提问于
浏览
1

我正在尝试按月显示以下数据集的总结算余额:

[Tranche]   [Maturity Date] [Balance]

T1  1-Jan-16    1000
T2  2-Jan-16    200
T3  1-Jan-16    3000
T3  3-Jan-16    2900
T1  31-Jan-16   1000
T2  1-Feb-16    200
T3  31-Jan-16   3000
T3  2-Feb-16    2900

我已经使用日期查找表(日期)加入了数据集(表LoanSched) .

这是DAX计算字段公式:

=CALCULATE ( 
SUM(LoanSched[Balance]),
FILTER ( Dates, Dates[FullDate] = MAX(LoanSched[Maturity Date]) )
)

但是,我得到的结果不正确 . 由于Tranche T2的余额在早于T3的日期结束,因此余额不包括在月度总额中 . 数据集的工作方式是总余额应包括每月最后一天出现的余额和付款 . 我错过了部分条件 .

enter image description here

我需要计算下面的正确余额(以黄色突出显示):

enter image description here

1 回答

  • 2

    所以你在这里有一个半加法测量的形式,虽然我不太明白,总算与小计有关 - 它对我说的是每个“部分到期日”组合是独立的因此,使用传统的时间智能并不完全有意义 - 而不是几个月可能只是其他任意的等级 . 那是对的吗?

    无论如何,根据你的标准,你想要的基本上是

    • 一个计算的度量,它返回给定档次的一个月内的最后一个非空白余额;

    • 另一项措施,它将每个部分的计量加起来得到"maturity month balance";

    • 然后是一个最终度量,它将每个到期月份的度量加起来得到"total balance" .

    对于#1,这是传统的公式:

    TrancheEndingBalance := CALCULATE (
            SUM ( ClosingBalance[Balance]), 
            LASTNONBLANK (
                Dates[FullDate],
                CALCULATE ( SUM ( ClosingBalance[Balance] ) )
            )
        )
    

    然后#2只是跨档次的SUMX:

    MaturityMonthEndingBalance :=
    SUMX ( VALUES ( ClosingBalance[Tranche] ), [TrancheEndingBalance] )
    

    并且#3成熟月份的SUMX:

    TotalEndingBalance :=
    SUMX ( VALUES ( Dates[MonthYear] ), [MaturityMonthEndingBalance] )
    

    请注意,这些度量基本上只适用于您所描述的布局,但听起来这是获得给定的一组转换和成熟日期的正确 balancer 的唯一方法,因此形式遵循功能,就像它一样 .

相关问题