我正在Power BI的Loss Triangle中工作,其中AccidentYear
是行,DevYear
是列。
表中的值是按Running Total
通过度量创建的:
Running Total Loss =
CALCULATE(
SUM(fact_Losses[PaymentAmount]),
FILTER(ALL(fact_Losses[DevYear]),fact_Losses[DevYear]<=MAX(fact_Losses[DevYear]))
)
链接以获取原始数据:
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
答案 0 :(得分:3)
由于该表中不存在与这些单元格中的AccidentYear
和DevYear
都匹配的行,因此您无法对度量本身进行任何显示。
实际上,如果将度量设置为恒定值1
,则矩阵将如下所示:
该度量将不会在没有任何数据的单元格中进行评估。
@Saaru的建议是一个非常简单的解决方法,但这是另一个选择。
创建一个用于矩阵列的独立表:
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)
)
那么您将拥有一张完整的桌子。
这不是您所想的上三角,但是您可以使用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)
)
)
答案 1 :(得分:2)