如何在 运行 Total matrix Power BI 中填空

How to fill out blanks in Running Total matrix Power BI

我正在 Power BI 中处理损失三角,其中 AccidentYear 是行,DevYear 是列。

table 中的值 Running Total 由度量创建:

Running Total Loss = 
    CALCULATE( 
    SUM(fact_Losses[PaymentAmount]),
    FILTER(ALL(fact_Losses[DevYear]),fact_Losses[DevYear]<=MAX(fact_Losses[DevYear]))
    )

Link获取原始数据:

https://www.dropbox.com/s/dvb6cu1k4vmzkur/ClaimsLloysddd.xlsx?dl=0

运行 总累计数据如下所示:

AccidentYear    DevYear Running Total Loss
2012            12          164714.11
2012            24          167727.65
2012            36          172888.65
2013            12          2314247.18
2013            24          4074094.91
2013            36          5247246.06
2013            48          5576930.29
2013            60          6487155.06
2013            72          6899512.68
2014            12          3367220.82
2014            24          4831946.69
2014            36          5741213.36
2014            48          6750204.17
2014            60          8384764.91
2015            12          7624575.21
2015            24          9935018.26
2015            36          11767207.67
2015            48          14653278.99
2016            12          8531229.05
2016            24          11768128.83
2016            36          17178123.28
2017            12          7390158.93
2017            24          12695778.03
2018            12          13136428.25

然后我使用矩阵视觉,AccidentYear 是行,DevYear 是列。

2012年发展年只到36岁。 但我仍然需要显示最后一个数字,即其余空单元格中的 172,888.65

我尝试使用 ISBLANK() 但到目前为止没有成功。

理想的结果应该是这样的:

更新: pbix 文件可以在这里找到:

https://www.dropbox.com/s/wl1ot9ejgyv8yi3/Loss%20Triangle%20United%20Specialty.pbix?dl=0

一个简单的方法是将以下行附加到原始数据:

AccidentYear DevYear PaymentAmount
2012         48      0
2012         60      0
2012         72      0

您可以转到 Enter Data,在 table 上方添加并命名(例如)appendage。然后转到 Edit Queries,并使用命令 Append Queries 将 table appendage 附加到 table fact_Losses。现在点击 Close & Apply,您将获得想要的 table:

我承认这不是一个很好的、可扩展的解决方案,所以我希望有人能提出更奇特的东西

由于 table 中不存在与这些单元格中的 AccidentYearDevYear 匹配的行,因此您无法对度量本身执行任何操作来显示这些内容。

事实上,如果您将度量设置为常数值 1,那么您的矩阵将如下所示:

度量值不会在不存在任何数据的单元格中计算。


@Saaru 的建议是一个非常简单的解决方法,但这是另一种选择。

创建一个独立的 table 用于您的矩阵列:

DevYears = VALUES(fact_Losses[DevYear])

如果您将它用于矩阵列并稍微改变您的度量,

RunningTotalLoss = 
VAR CurrDevYear = MAX('DevYears'[DevYear])
RETURN
CALCULATE( 
    SUM(fact_Losses[PaymentAmount]),
    FILTER(ALL(fact_Losses[DevYear]), fact_Losses[DevYear] <= CurrDevYear)
)

那么你就会有一个完整的table。

这与您的上三角不同,但您可以使用 IF:

添加该逻辑
RunningTotalLoss = 
VAR CurrDevYear = MAX(DevYears[DevYear])
VAR MaxYear = CALCULATE(MAX(fact_Losses[AccidentYear]), ALLSELECTED(fact_Losses))
VAR CurentYear = MAX(fact_Losses[AccidentYear])
RETURN
IF(
    YEAR(
        EOMONTH(
            DATE(CurentYear - 1, 12, 31),
            CurrDevYear
        )
    ) > MaxYear,
    BLANK(),
    CALCULATE( 
        SUM(fact_Losses[PaymentAmount]),
        FILTER(ALL(fact_Losses[DevYear]), fact_Losses[DevYear] <= CurrDevYear)
    )
)