[PowerQuery] Трансформація даних існуючого стовпця


Якщо вам потрібно змінити тип даних, замінити пусті значення на якесь значення чи щось складніше, то вам потрібно застосувати якусь трансформацію за допомогою PowerQuery.

В цій статті я розповім про 6 опцій, 5 з яких можна використувати не змінюючи код та 1 складніший варіант, який потребує змін в Розширеному Редакторі.

Є декілька опцій з використанням меню «Перетворення»:

1) Зміна типу даних (десяткове число, дата і т.д.)
2) Перетворення тексту (усі малі, додати префікс і т.д.)
3) Заміна значень та помилок
4) Заповнити пусті значення вниз та вгору

  Також є два додаткові способи:

5) Створити новий користувацький стовпець
6) Створення користувацької функції

Детальніше про всі ці варіанти.

Зміна типу даних

1) Виділяємо стовпець, тип даних якого хочемо змінити. 
2) Меню «Перетворення» -> Тип даних -> Вибираємо необхідний тип. Наприклад, «Десяткове число».

Якщо відкриєте Розширений редактор, то побачите схожий код:

Де використовується функція зміни типу – Table.TransformColumnTypes. Перший аргумент – це таблиця, другий – набір Назва стовпцю та Новий тип даних.

Перетворення тексту

1) Виділяємо стовпець, який хочемо змінити.
2) Меню «Перетворення» -> Формат -> Вибираємо необхідний. Наприклад, «УСІ ВЕЛИКІ».

Якщо відкриєте Розширений редактор, то побачите схожий код:

Заміна значень та помилок

1) Виділяємо стовпець, який хочемо змінити.
2) Меню «Перетворення» -> 1->2 -> Замінити значення. Наприклад, замінити null на нуль.


В розширеному редакторі маєте побачити схожий код:

Створити новий користувацький стовпець

1) Виділяємо стовпець, який хочемо змінити.
2) Створюємо додатковий стовпець з необхідним розрахунком.
3) Видаляємо старий стовпець.
4) Перейменовуємо новий стовпець як старий.

Створення користувацької функції

1) Відкориваємо розришений редактор запиту.
2) Пишемо код руками. Далі приведено два приклади.

  Приклад 1. Проста функція, яка заміняє значення на 27, якщо 26. Інакше залишає значення як було.

Вхідний стовпець GeographyKey.


Пишемо наступний код:


Результат:


Приклад 2. Складніша функція. Є стовпець адреса, ми хочемо його розширити та додати місто, область та країну. Така інформація є в таблиці Географія, в якій є ключове поле GeographyKey. 


Тоді можна додати наступну функцію та розрахунок на її основі:


Результат нижче. Маємо в одній клітинці адресу, місто, область та країну:


Логіка функції наступна. Спочатку беремо таблицю, з якою працюємо, та фільтруємо її де, адреса дорівнює вхідній адресі, а звідти – GeographyKey. Потім в іншу змінну отримуємо дані з таблиці географії, де GeographyKey рівен значенню отриманому раніше. Результатом функції буде конкатенація вхідного значення адреси, міста, області та країни.

Приклад #1 можна використовувати як загальний шаблон для інших варіантів. Важно відмітити, що в цих функціях ви можете використовувати тільки значення змінюваного стовпця, до інших доступу не буде.

Завантажити файл-зразок зі статті можно тут.




Коментарі

Популярні дописи з цього блогу

[DAX] Динамічна відносна фільтрація в slicer за допомогою віртуальних зв'язків DAX

[Power BI] Створена Power BI версія Vertipaq Analyzer. Додано автоматичне форматування коду

Power BI Reports Monitoring Tool in 5 minutes