Динамическое ранжирование Power BI с некоторыми пустыми значениями и использованием срезов - PullRequest
1 голос
/ 10 ноября 2019

У меня есть таблица с 15 людьми, которые каждый месяц получают 7-дневные баллы. Я хочу использовать формулу RANKX в Power BI для ранжирования от самого низкого (1) до самого высокого среднего балла. Это хорошо работает, если я смотрю на все, но начинаю вести себя странно, когда я использую слайсер и смотрю, например, только один или два месяца. Рейтинг больше не начинается с 1?

Я использую эту формулу:

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

Пожалуйста, посмотрите на приложенное изображение.

Помогите высоко ценится изображение, показывающее проблему

1 Ответ

0 голосов
/ 11 ноября 2019

Можете ли вы попробовать это и посмотреть, работает ли он?

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

Давайте подумаем об оригинальном коде шаг за шагом.

  1. Он перебирает от «Человек 1» до «Человек 20» и вычисляет средний балл этого человека.
  2. Оценивает средний балл человека текущего контекста фильтра (скажем, «Персона 1 ").
  3. Найти ранжирование" Персона 1 "в 20 лицах.

На шаге (1) он включает всех Лиц от 1 до 20, посколькув визуале отсутствует личный фильтр. Здесь, похоже, что в выбранном периоде нет очков лиц 15 и 18, поэтому он оценивается как БЛАНК.

Теперь в документе RANKX сказано:

Если выражение или значение равно BLANK, оно обрабатывается как 0 (ноль) для всех выражений, которые приводят к числу, или как пустой текст для всех текстовых выражений.

Средние оценкичеловек 8 и 15 - ПУСТО, поэтому RANKX рассматривает его как 0. Теперь возвращаясь к человеку 1, ее средний балл был 62,43, и было два человека со средним баллом 0. Следовательно, ранг человека 1 будет 2.

Оборачивая «Таблица результатов» [Person] со значениями в CALCULATETABLE, вы можете опустить людей, у которых нет оценок в выбранный период.

...