在計算列當中,經常使用EARLIER函數來獲取當前外部特定行上下文,來跟內部篩選結果進行比較。例如,對於下圖,如果要以Account列值爲依據,計算Amount的累計量。則可以創建一個計算列Cum_Earlier,使用下面的表達式來實現。
Cum_Earlier =
SUMX (
FILTER (
SalesInfo,
SalesInfo[Account]
= EARLIER ( SalesInfo[Account] )
&& SalesInfo[Close Date]
<= EARLIER ( SalesInfo[Close Date] )
),
SalesInfo[Amount]
)
但是我們知道,上面這個表達式無法放在度量值當中來執行,因爲在度量值內無法使用EARLIER和EARLIEST函數,Power BI會提示找不到所需的行上下文。
那麼,要在度量值當中實現上的累加計算需求,應該怎麼做呢?答案是用SELEVTEDVALUE函數來代替EARLER函數。
Cum_SELECTEDVALUE =
SUMX (
FILTER (
ALL ( SalesInfo ),
SalesInfo[Account]
= SELECTEDVALUE ( SalesInfo[Account] )
&& SalesInfo[Close Date]
<= SELECTEDVALUE ( SalesInfo[Close Date] )
),
SalesInfo[Amount]
)
在度量值中,SELEVTEDVALUE函數可以獲得制定列下篩選上下文中僅剩的一個非重複值時,在特定的需求下,其作用跟計算列中的EARLER函數類似,可獲得相同的計算結果,因此具有一定的替代性。