rss
  •  
Обучение Microsoft Excel: от основ до PowerBI

Ранжирование в Power Pivot

| Категория: Надстройки Power, Приемы и советы |

2

Конечно, можно ранжировать данные уже непосредственно в сводной таблице на листе Excel, однако, это не логично. Если мы работаем с моделью Power Pivot, то и все вычисления должны быть подготовлены в ней, чтобы в дальнейшем пользователь мог просто выбирать меру в отчет и не заниматься дополнительными преобразованиями.

Для ранжирования данных необходимо использовать функцию на языке DAX RANKX:

RANKX(Table;Expression;[Value];[Order];[Ties]),

  • Order – порядок ранжирования:
    ASC – ранжирование по возрастанию
    DESC – по убыванию
  • Ties – способ определения ранга; для одинаковых значений будет определен одинаковый ранг, а следующим присвоится:
    Skip – следующее значение ранга + количество предыдущих одинаковых значений
    Dense – следующее значение ранга

Ранжируем товары по их суммам продаж.

Создадим меру Продажи,р:=
SUMX(‘БытоваяТехника’;
‘БытоваяТехника'[Количество, шт]*’БытоваяТехника'[Цена за шт, р])

На базе созданной меры Продажи, р для всех наименований из таблицы БытоваяТехника, определим рейтинг:
Рейтинг:=RANKX(ALL(‘БытоваяТехника'[Наименование]);[Продажи,р])

Создав отчет сводной таблицы и добавив созданные меры, получим такой результат:

Как видно, Общий итог самый молодец :).

Починим формулу, добавив логическую функцию IF и функцию фильтрации HASONEVALUE.

  • HASONEVALUE(ColumnName) – позволяет определить, вычисляется ли выражение в контексте одного значения для ColumnName. Если ColumnName был отфильтрован до одного значения, то TRUE, иначе – FALSE.

Рейтинг:=IF(
HASONEVALUE(‘БытоваяТехника'[Наименование]);
RANKX(ALL(‘БытоваяТехника'[Наименование]);[Продажи,р]))

Отчет обновится, отображение результатов будет корректным:




Оставьте комментарий!

На сообщение “Ранжирование в Power Pivot” комментария 2

  1. Кирилл:

    Подскажите, а зачем это делать в модели, если в сводных можно получить такой же результат?

  2. Ольга Кулешова:

    В каждой сводной таблице, нужно будет делать это снова и снова. А здесь один раз создаете и затем используете. Плюс, на перспективу – для использования в Power BI