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

Функция Text.Format

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

0

Работа с Power Query приучает пользователя постоянно следить за типами данных и их преобразованиями к нужным типам данным для использования в тех или иных функциях. Например, чтобы составить текстовую фразу, в которую нужно включить числовые данные, данные даты, времени, придется использовать функции преобразрвания к текстовому типу данных для каждого из них.

Функция Text.Format позволяет сделать этот процесс более простым.

Синтаксис функции:
Text.Format(formatString as text, arguments as any, optional culture as nullable text) as text

Первый аргумент – это текстовая строка, а второй – список полей для подстановки в эту текстовую строку. В текстовую строку значение столбца подставляется #{номер элемента списка}
Не стоит забывать, что нумерация в Power Query начинается с 0.

Удаление пустых строк и столбцов в Power Query

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

0

Удаление пустых строк – дело простое, т.к. есть команда в интерфейсе.

Удаление пустых столбцов – работа на 10 секунд.

  • Удаляем пустые строки – на вкладке Главная страница, в группе Сократить строки, раскрыть кнопку Удалить строки и выбрать Удалить пустые строки

Удаление пустых столбцов происходит в три действия:

  • На вкладке Преобразование в группе Таблица выбрать Транспонировать
  • На вкладке Главная страница, в группе Сократить строки, раскрыть кнопку Удалить строки и выбрать Удалить пустые строки
  • Транспонировать таблицу обратно – на вкладке Преобразование в группе Таблица выбрать Транспонировать

Вот и всё 🙂

Ранжирование в 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(‘БытоваяТехника'[Наименование]);[Продажи,р]))

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