Power BI - 计算支付百分比与预期百分比?

Power BI - calculate % paid vs expected?

我的报告中有以下 2 个 table(它们都使用 contractID 加入 SSAS 模型)。

仍在学习 DAX,如果我将下面的内容过于复杂,请见谅..

时间表 table 告诉我们每个合同 ID,我们期望在任何时间点收到多少钱。所以我们可以看到,在 2016 年 1 月 28 日,我们预计会有 233.61 英镑,然后在 2019 年 2 月 1 日,我们预计还会有 58.4 英镑。这也需要是一个 运行 总数。所以在 2019 年 2 月 1 日,预计总数为 292.01。

下面支付的金额 table 是我们为合同支付的所有款项。我想在任何时间点计算付款与预期的百分比。

因此,如果我查看 2016 年 2 月 1 日,我会看到 57% 的百分比,因为我们当时预计会有 233.61,而我们只有 134.26(200 英镑减去 -65.74)

理想情况下,我每月只能看到这个,所以每年每月支付的百分比与预期的总数相比。

有谁知道实现此目标的最佳方法吗?我想我可能需要创建一个不相关的日期 table 来锚定我需要的措施。但真的不知道从哪里开始呢?

已更新

我已经将您的数据样本放入模型中,它看起来如下

计划table

付款table

ContractId 上添加两个 table 之间的关系。

然后添加措施如下(记得分别更改列名):

Payment Amount = SUM( AmountPaid[PaymentAmt] )
Expected Amount = SUM( Schedule[ExpAmnt] )
Expected Amount Running Total = 
VAR maxPD = MAX( AmountPaid[PaymentDate] )
VAR result = 
    CALCULATE(
        [Expected Amount],
        FILTER(
            Schedule,
            Schedule[ScheduleDate] <= maxPD
        )
    )
RETURN 
    result
Payment Amount Running Total = 
VAR maxPD = MAX( AmountPaid[PaymentDate] )
VAR minPD = 
    CALCULATE( 
        MIN( AmountPaid[PaymentDate] ),
        ALLSELECTED( AmountPaid )
    )
VAR result =
    CALCULATE(
        [Payment Amount],
        ALL( AmountPaid[PaymentDate] ),
        AmountPaid[PaymentDate] >= minPD,
        AmountPaid[PaymentDate] <= maxPD
    )
RETURN
    result

ALLALLSELECTED 函数允许您向报告添加 PaymentDate 切片器。 付款金额运行 总计 将根据该日期范围选择动态计算。

% of expected Payment 给你百分比。

% of expected Payment = 
    DIVIDE( [Payment Amount Running Total], [Expected Amount Running Total] )

最后的结果是:

请注意,我在报告中使用的是我的母语。所以 RokYearMiesiącMonth。月份如下十月、二月、五月、六月、八月、一月、七月

希望它对您有所帮助,并且对您有用。

编辑:

REMOVEFILTERS 添加到 预期金额 运行 总计 。在您的情况下,某些 ContractIdsSchedule table 中可能没有相关行。然后出现 BLANKS。为防止出现这种情况,您必须通过 CALCULATE 更改上下文,方法是从主 table.

中删除所有过滤器
Expected Amount Running Total = 
VAR maxPD = MAX( AmountPaid[PaymentDate] )
VAR result = 
    CALCULATE(
        [Expected Amount],
        REMOVEFILTERS(AmountPaid),
        Schedule[ScheduleDate] <= maxPD
    )
RETURN 
    result

我已将一些额外的行添加到我的示例数据集中,仅 AmountPaid table。请参阅下面的输出。第一个 table 没有 REMOVEFILTERS 部分。