簡體   English   中英

使用一些空白值和使用切片器的 Power BI 動態排名

[英]Power BI dynamic ranking with some blank values and using slicers

我有一張有 15 人的桌子,每個月都會獲得 7 天的分數。 我想使用 Power BI 中的 RANKX 公式對最低 (1) 到最高平均分進行排名。 如果我看的話,這很好用,但是當我使用切片機並且只看一兩個月時,就會開始表現得很奇怪。 排名不再以1開頭了?

我使用這個公式:

Rank = RANKX(
    ALLSELECTED('Score Table'[Person]);CALCULATE(AVERAGE('Score Table'[Score]));;ASC;Dense) 

請看附圖。

幫助非常感謝顯示問題的圖像

你可以試試這個,看看它是否有效?

Rank =
RANKX(
    CALCULATETABLE(
        VALUES( 'Score Table'[Person] ),
        ALLSELECTED( 'Score Table'[Person] )
    ),
    CALCULATE( AVERAGE( 'Score Table'[Score] ) ),
    ,
    ASC,
    Dense
)

讓我們一步一步地考慮原始代碼。

  1. 它遍歷“Person 1”到“Person 20”並計算該人的平均分數。
  2. 評估當前過濾上下文的人(比如“Person 1”)的平均分數。
  3. 求20個人中“第1個人”的排名position。

在步驟 (1) 中,它包括從 1 到 20 的所有 Persons,因為視覺對象中沒有 Person 過濾器。 在這里,看起來在選定的時間段內沒有人 15 和 18 的分數,所以它評估為 BLANK。

現在,RANKX 的文件說,

如果表達式或值的計算結果為 BLANK,則對於所有產生數字的表達式,它被視為 0(零),或者對於所有文本表達式,它都被視為空文本。

第 8 個人和第 15 個人的平均分是 BLANK,所以 RANKX 將其視為 0。現在回到第 1 個人,她的平均分是 62.43,並且有兩個人的平均分是 0。因此,第 1 個人的排名將是2。

通過將 'Score Table'[Person] 與 VALUES 包裝在 CALCULATETABLE 中,您可以省略在所選時間段內沒有得分的人。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM