首页 > 解决方案 > 如何在目标列 Power BI 中动态计算 Gap & Over & YTD

问题描述

目标 我的目标是创建一个度量或自定义列,以显示与目标相比达到多少 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,但是当我们仅对类型层 1 求和时,错误的差距或过度数据显示:

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

问题 B 的 Over 达到的总和应该是 10 并且没有 Gap 但它仍然显示 Gap 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])

标签: dynamicmaxpowerbi

解决方案


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

// 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 )

这将在任何向下钻取级别产生预期结果。

结果 1 结果 2 结果 3 结果 4


推荐阅读