[英]Calculate row difference in Power Bi
我使用下表來構建解決方案的原型:
表名:“數據”
(列名略有不同,使測量命名更容易;根據需要更改它們)。
創建第一個措施:
Total Amount = SUM(Data[Amount])
制定第二項措施:
Accumulated Difference =
VAR Current_Index = MAX ( Data[Index] )
VAR Initial_Amount =
CALCULATE (
MAX ( Data[Amount] ),
FILTER ( ALL ( Data ), Data[Index] = 1 ) )
VAR Accumulated_Reductions =
CALCULATE (
[Total Amount],
FILTER ( ALL ( Data ), Data[Index] > 1 && Data[Index] <= Current_Index ) )
RETURN
Initial_Amount - Accumulated_Reductions
制定第三項措施:
% Previous =
VAR Current_Index = MAX ( Data[Index] )
VAR Current_Difference =
CALCULATE (
[Accumulated Difference],
FILTER ( ALL ( Data ), Data[Index] = Current_Index ) )
VAR Previous_Difference =
IF (Current_Index > 1,
CALCULATE (
[Accumulated Difference],
FILTER ( ALL ( Data ), Data[Index] = Current_Index - 1 ) ) )
RETURN
DIVIDE ( Current_Difference, Previous_Difference )
結果:
說明:
第一個措施僅僅是為了方便,避免多次寫入相同的求和。
第二個衡量標准:首先,我們在當前行中找到索引,並將其保存在變量中。 然后,我們找到初始量(指數= 1的數量),因為我們需要它作為起點。 ALL必須忽略應用於該行的過濾器。 然后,使用類似的模式,我們計算當前行和初始行之間的累積減少量(例如,對於步驟D,我們需要對索引的數量求和(4,3,2))最后,期望的結果只是初始量 - 累計減少。
第三項措施:使用非常相似的技術,我們首先找到當前行的累計差異,然后是前一行。 這里唯一的細微差別是測試前一行的起始條件(如果它是索引為1的初始行,則不計算以前的值)。 一旦知道當前和以前的差異,我們只需將它們分開。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.