如何在目标列Power BI

时间:2020-01-06 03:31:49

标签: dynamic max powerbi

目标 我的目标是创建一个度量或自定义列,以显示Gap&Over与目标相比能达到多少,然后应用于堆积的柱形图。

问题在于数据具有多个维度,如果我们在导入之前对原始数据进行了处理,那么当我们选择整体而忽略子级别时,报表将无法显示正确的计算。

data
TYPE_Layer_1    TYPE_Layer_2    TGT YTD YTD in TGT  GAP OVER
A               orange          100 100 100          0  0
A               apple            50 30  30          20  0
B               orange          120 135 120          0  15
B               apple            60 55  55           5  0
C               orange          130 140 130          0  10
C               apple            70 70  70           0  0

原始数据形状仅显示类型第1层+类型第2层的目标间隙和YTD, 但是当我们仅对Type层1求和时,会显示错误的Gap或Over数字:

TYPE_Layer_1    TGT YTD YTD in TGT  GAP OVER
B               180 190 175           5 15

问题 B的Over成绩总数应为10,没有差距,但仍显示差距5以上为15

Formula in Excel
C = Target , D = YTD
YTD in TGT
=if(C2-D2>=0,D2,if(C2-D2<0,C2))
GAP
=max(C2-D2,0)
OVER
=max(D2-C2,0)

无论如何通过Power BI的“自定义度量”列来实现此目标?

测试不动态似乎需要更多公式:

GAP = MAXX(D_PBI,D_PBI[TGT]-D_PBI[YTD])

1 个答案:

答案 0 :(得分:1)

非常简单。定义这些措施。

// Measures
Total TGT  = SUM ( Data[TGT] )
Total YTD  = SUM ( Data[YTD] )
YTD in TGT = MIN ( [Total YTD], [Total TGT] )
GAP        = MAX ( [Total TGT] - [Total YTD], 0 )
OVER       = MAX ( [Total YTD] - [Total TGT], 0 )

这将在任何深入的层次上产生预期的结果。

Result 1 Result 2 Result 3 Result 4