Страницы: 1
RSS
Построение рейтинга с мощью функции RANKX
 
Добрый день, уважаемы эксперты.

Существуют данные с поездками водителей. Таблица содержит следующие данные: ФИО водителя, кол-во поездок, кол-во поездок с боем, дата поездки.

Я создал меру под названием кол-во поездок с боем, где кол-во поездок с боем делится на количество всех поездок.
Создал сводную таблицу, где в качестве строк использовал ФИО водителей, в качестве столбцов месяц, а в качестве значения созданную мною меру.
Далее решил создать ранг. Открыл справочник почитал какие есть функции, решил использовать RANKX.
В качестве  выражения для расчета ранга использовал созданную ранее мною меру. Но ранг считается не корректно.
При построении меры пробовал использовать ALLSELECTED и ALL, но рейтинг все равно формируется не корректно.
К примеру, в феврале, ранг для доли поездок с наибольшем показателем должен быть равный 1, а он почему-то равен 3.
янвфев
ВодительДоля поездок с боемРангДоля поездок с боемРанг
Иванов50,0%471,4%3
Петров50,0%457,1%4
Сидоров50,0%442,9%5
Возможно тут есть люди кто знает решение проблемы?
Пример с файлом прикрепил к письму.
Изменено: daniil.k - 14.01.2022 14:07:52
 
daniil.k, здравствуйте
Сначала определитесь, по какому принципу вы ранг считаете (лично я не понял, как при 6 значениях у вас ранг от 3 до 5), когда все значения в одном столбце
Как определитесь - нам скажите, а уже разнести по признаку - к вопросу не относится
Изменено: Jack Famous - 14.01.2022 14:22:59
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous, к сожалению, я тоже не понимаю как у меня ранг получается от 3 до 5.

Принцип следующий, в сводной таблице 2 месяца, в каждом месяце находятся значения "Доля поездок с боем" напротив каждого водителя.
Для водителя с максимальным показателей "Доля поездок с боем" в каждом месяце ранг должен равняться 1. Следующий водитель с наибольшим показателем ранг = 2 и т.д.
Вот к примеру в сводной таблице, в феврале напротив Иванов ранг должен равняться 1, напротив Петров ранг = 2, а напротив, Сидорова ранг = 3
Изменено: daniil.k - 14.01.2022 14:37:41
 
Код
=RANKX(ALLSELECTED('История_поездок'[Водитель]);CALCULATE([Доля_поездок_с_боем]);;DESC;Skip)
 
Vladimir Chebykin, мне казалось я до этого пробовал тоже самое делать, но все равно получался другой результат. Большое спасибо. А можно как-то сделать так, что если одинаковые значения, то ранг просто идет по порядку. К примеру, в столбце январь ранг везде 1, а должен быть 1, 2, 3
Изменено: daniil.k - 14.01.2022 14:48:24
 
Цитата
daniil.k написал:
А можно как-то сделать так, что если одинаковые значения, то ранг просто идет по порядку.
вопрос, в том, как DAX определит этот порядок?. Нужен какой-то дополнительный параметр в модели, который определит сортировку. Сейчас в сводной таблице просто сортировка по алфавиту водителей. Внутри мер нет сортировок.
 
Vladimir Chebykin, да, к сожалению этого порядка там нет. Я почему-то думал, что в самой функции заложена возможность при одинаковых значениях по разному ставить ранг. Не обязательно именно так как отсортированная таблица.
К примеру, в столбце 2 одинаковых значения, но ранжированы они по разному, с разницей в один шаг.
ВодительДоля поездок с боемРанг
Иванов50,0%2
Петров20,0%3
Сидоров50,0%1
 
Цитата
daniil.k написал:
с мощью функции RANKX
Да, это мощная функция ))
 
Юрий М, хах ну вы поняли  :D

Единственное, что мне приходит на ум, это создать столбец индекса в исходной таблице и это использовать как основу для определения порядка рейтинга в мере.
В итоге получилось. Файл прикрепил, может кому пригодится.
Страницы: 1
Наверх