Блог Excelguru

Більше вигадливих речей від автора www.excelguru.ca…

В останнє оновлення Power Query було додано справді цікаву нову функцію: можливість розділити Power Query. Це завжди було можливим шляхом редагування коду M вручну, але це робить це надзвичайно простим.

Де це може бути надзвичайно корисним, коли ви створили приємний запит на зміну своїх даних. Це трохи працює, тоді ви розумієте, що вам потрібно створити більшу модель даних з даних. Наприклад, припустимо, що ми маємо такі дані:

розділені

І ми проходимо це через ці кроки:

Щоб придумати це:

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

Як завжди, це існує безліч способів. Ви можете створити нові запити для завантаження даних з вихідної таблиці, а потім скоротити їх до стовпців, необхідних для кожного випадку. Але це спричиняє потребу в додатковому навантаженні.

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

Починаючи з Power Query версії 2.26 (випущена сьогодні), ми маємо НАБАГАТО простіший спосіб. Припустимо, що ми хочемо розділити цей запит відразу після кроку «Змінений тип», щоб ми могли створити таблицю Items та таблицю Saleperson на додаток до вже наявного запиту «Транзакції».

Для початку нам потрібно зрозуміти кроки та те, що вони нам дають. Ми можемо пройти кожен крок запиту та знайти крок, який дає нам необхідну точку стрибка. У моєму випадку це крок Змінений тип. Потім ми клацаємо правою кнопкою миші ПІСЛЯ зміни типу та вибираємо Витяг попереднього:

Вам буде запропоновано ввести ім’я (я буду використовувати «Базове навантаження»), і після натискання кнопки «ОК» ви побачите кілька речей:

  • Створюється запит базового навантаження
  • Навігатор запитів відкривається ліворуч, показуючи, що ви отримали кілька запитів
  • Запит на транзакції (той, над яким я працював) стає коротшим
  • Джерело джерела запиту "Транзакції" оновлюється до # "Базове завантаження"

Ви можете переглянути ці зміни тут:

Отже, запит "Транзакції" все ще містить усі наступні кроки, але крок "Джерело" змінено, і крок "Змінений тип" тепер знаходиться в запиті базового завантаження:

Однак найбільша частина всього цього полягає в тому, що запит базового завантаження все ще вказує на вихідну таблицю вихідних даних, але запит транзакцій тепер завантажується з базового завантаження, а не вихідного джерела даних. Отже, ми дотримуємось підходу до постановки/завантаження, про який я розповідаю в цій публікації в блозі.

Тепер, як ми можемо використовувати це ...?

Поки що дуже мало відрізняється від загальної мети, за винятком того, що ми завантажуємо у два етапи. Давайте змінимо це, створивши новий запит, який посилається на запит базового навантаження:

  • Клацніть правою кнопкою миші запит базового навантаження в Навігаторі запитів (зліва)
  • Виберіть посилання
  • Змініть назву запиту на Продавці
  • Клацніть правою кнопкою миші стовпець «Продано» -> Видалити інші стовпці
  • Виберіть стовпець «Продано» -> Домашня сторінка -> Видалити дублікати
  • Клацніть правою кнопкою миші стовпець "Продано" -> Перейменувати -> SalesPerson

І тепер ми отримали приємний запит, який показує наш унікальний список продавців:

Тепер побудуємо таблицю SalesItems:

  • Клацніть правою кнопкою миші запит базового навантаження в Навігаторі запитів
  • Виберіть посилання
  • Змініть назву запиту на SalesItems
  • Клацніть правою кнопкою миші стовпець Елемент запасу -> Видалити інші стовпці
  • Виберіть стовпець Інвентарний запас -> Домашня сторінка -> Видалити дублікати
  • Клацніть правою кнопкою миші стовпець Елемент запасу -> Перейменувати -> ПродажЕлемент

І ця таблиця також зроблена зараз:

Останній крок - завантажити їх до моделі даних. Ми фактично створили три нові запити за цей сеанс, але ми не маємо свободи вибирати нове призначення для одного з них. Натомість ми вибираємо єдиний стиль завантаження, який застосовуватиметься до ВСІХ. (Якщо ви сумніваєтесь, я пропоную вам спочатку завантажувати запити як «Лише підключення», а потім змінювати їх після, якщо вам потрібно вибрати різні цільові адреси. Це заощадить вас, поки Power Query заповнить вашу книгу додатковими аркушами та завантажить на них дані .)

Для наших цілей тут я завантажу їх безпосередньо до Моделі даних:

  • Головна -> Закрити та завантажити…
    • Виберіть Тільки створити підключення
    • Виберіть Додати до моделі даних
    • Клацніть Завантажити

Єдиним побічним ефектом тут є те, що запит базового навантаження також був завантажений до моделі даних, і мені це не потрібно. Тож я зараз швидко це зміню.

  • Перейдіть на панель Запити робочої книги -> клацніть правою кнопкою миші Базове завантаження -> Завантажити до…
  • Зніміть прапорець біля пункту «Додати ці дані до моделі даних» -> Завантажити

І тепер у мене є свої таблиці, де вони мені потрібні, щоб я міг їх зв’язати та створити своє рішення.

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