Динамічно скасуйте зведення кількох стовпців у LuckyTemplates

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

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

З огляду на це, давайте перейдемо до Power Query.

Зміст

Дані в табличному форматі

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

Динамічно скасуйте зведення кількох стовпців у LuckyTemplates

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

Динамічно скасуйте зведення кількох стовпців у LuckyTemplates

У Застосованих кроках ви можете побачити решту кроків. Ми видалили деякі верхні рядки, видалили порожні стовпці, очистили наші текстові значення та заповнили їх. Потім ми транспонували наші дані, видалили порожній запис, об’єднали стовпці один і два, знову очистили наші текстові значення та транспонували наші дані назад.

Ми створили спеціальний крок, який ми розглянемо більш детально пізніше, витягли значення з нашого списку, а потім, нарешті, змінили тип.

Динамічно скасуйте зведення кількох стовпців у LuckyTemplates

Давайте розглянемо весь код. Нас тут цікавить функція List.Zip . Короткий підсумок: він приймає один список як a, а потім повертає список. У результаті ми бачимо, що цей єдиний список у цьому випадку містить три окремих списки.

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

Потім List.Zip бере елемент з кожного з цих трьох списків і об’єднує їх на основі їхньої позиції в новому списку. Наприклад, кожен перший елемент із цих списків об’єднується в новий список. Те ж саме відбувається для всіх значень, перелічених другим у цьому списку, і так далі.

Жорстко закодовані значення можуть викликати стурбованість, якщо атрибути навряд чи зміняться з часом. Отже, якщо наступного разу не всі предмети будуть присутні або з’являться нові предмети, ви можете потрапити в біду.

Зміна коду для динамічного відведення кількох стовпців

Отже, як нам зробити цю динаміку?

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

Динамічно скасуйте зведення кількох стовпців у LuckyTemplates

Ви бачите, що всі значення атрибутів перераховані тут у першій колонці. Ми можемо використовувати інтерфейс користувача, щоб витягнути їх.

Динамічно скасуйте зведення кількох стовпців у LuckyTemplates

Тож клацніть правою кнопкою миші цей заголовок і внизу виберіть Додати як новий запит .

Динамічно скасуйте зведення кількох стовпців у LuckyTemplates

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

Динамічно скасуйте зведення кількох стовпців у LuckyTemplates

Почнемо з видалення цих нулів. Тож у рядок формул ми додамо List.RemoveNulls . Як ви можете бачити зараз, усі елементи повторюються, і це через пари значень. Він вказується один раз для годин.

Динамічно скасуйте зведення кількох стовпців у LuckyTemplates

Знову ж таки, для контактів, щоб видалити ці дублікати, ми можемо додати List.Distinct . Тепер ми створили цю логіку, і все, що нам потрібно зробити, це скопіювати її та вставити назад у наш зразок запиту.

Динамічно скасуйте зведення кількох стовпців у LuckyTemplates

У прикладі запиту відкрийте розширений редактор і створіть нову назву змінної. Назвемо це AttributeList . Потім вставляємо код і ставимо кому.

Динамічно скасуйте зведення кількох стовпців у LuckyTemplates

Тепер повернемося до нашого користувацького кроку. У List.Zip ми можемо замінити перший список назвою нашої змінної (AttributeList).

Динамічно скасуйте зведення кількох стовпців у LuckyTemplates

Тепер розглянемо другий список ближче. Ми знаємо, що він посилається на назви стовпців, і кожна з цих назв стовпців починається з того самого атрибута, який ми вже маємо в цьому списку, за яким слідують пробіл і текст «години».

Нам просто потрібно додати суфікс до кожного елемента. Отже, давайте повернемося на крок назад і додамо спеціальний стовпець, щоб створити деяку логіку.

Динамічне скасування зведення кількох стовпців: додавання спеціальної логіки стовпців

Це лише тимчасова колонка, тому нам не потрібно давати їй правильну назву. Ми видалимо його, коли закінчимо.

Динамічно скасуйте зведення кількох стовпців у LuckyTemplates

Щоб змінити значення в списку, можна скористатися функцією List.Transform . Нам потрібно перетворити значення в нашому AttributeList , тому я збираюся вставити це.

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

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

Динамічно скасуйте зведення кількох стовпців у LuckyTemplates

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

Тепер у нас є засоби для ідентифікації полів із нашого запису, до яких ми хочемо отримати доступ. Отже, давайте знову відкриємо діалогове вікно спеціального стовпця та додамо Record.SelectFields . Він хоче запис як запис, тому ми можемо використовувати це підкреслення для доступу до поточного запису, який ми використовуємо. А потім ми надали йому список із усіма цими назвами полів, тож додайте закриваючу дужку та натисніть OK .

Динамічно скасуйте зведення кількох стовпців у LuckyTemplates

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

Динамічно скасуйте зведення кількох стовпців у LuckyTemplates

Але нас цікавлять лише значення полів запису, тому нам потрібно їх витягти. Давайте повернемося до діалогового вікна спеціального стовпця та додамо Record.FieldsValues .

Динамічно скасуйте зведення кількох стовпців у LuckyTemplates

Тепер ми знову отримуємо список, а не запис. Ми знову клацаємо збоку в пробілі, і ви бачите, що тепер у нас є список лише з цими значеннями. Так що виглядає добре.

Динамічно скасуйте зведення кількох стовпців у LuckyTemplates

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

Динамічно скасуйте зведення кількох стовпців у LuckyTemplates

На панелі формул ми вибираємо другий список і замінюємо його нашою логікою.

Динамічно скасуйте зведення кількох стовпців у LuckyTemplates

Щоб створити список зі значеннями полів запису для контактів, нам потрібно лише змінити суфікс. Тож ми також можемо вибрати останній список і вставити нашу логіку.

Динамічно скасуйте зведення кількох стовпців у LuckyTemplates

Тоді замість годин давайте змінимо це на контакти .

Динамічно скасуйте зведення кількох стовпців у LuckyTemplates

Немає помилок, виглядає добре. Тепер це динамічне рішення для відключення кількох стовпців.

Динамічно скасуйте зведення кількох стовпців у LuckyTemplates




Висновок

Ось як ви динамічно скасовуєте кілька стовпцівза допомогою List.Zip.

Якщо з’явиться новий атрибут, він автоматично буде підібраний AttributeList. І коли елемент більше не існує, він не буде присутній у цьому списку.

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

Все найкраще

Меліса


Змініть формати дати за допомогою редактора Power Query

Змініть формати дати за допомогою редактора Power Query

У цьому посібнику ви дізнаєтеся, як перетворити текст у формат дати за допомогою редактора Power Query в LuckyTemplates.

Power Query: об’єднайте файли з кількох папок

Power Query: об’єднайте файли з кількох папок

Дізнайтеся, як об’єднати файли з кількох папок у мережі, робочому столі, OneDrive або SharePoint за допомогою Power Query.

Обчисліть місячне ковзне середнє з початку року (з початку року) у LuckyTemplates

Обчисліть місячне ковзне середнє з початку року (з початку року) у LuckyTemplates

Цей підручник пояснює, як обчислити місячне ковзне середнє на базі даних з початку року за допомогою функцій AVERAGEX, TOTALYTD та FILTER у LuckyTemplates.

Створення таблиці дат у LuckyTemplates

Створення таблиці дат у LuckyTemplates

Дізнайтеся, чому важлива спеціальна таблиця дат у LuckyTemplates, і вивчіть найшвидший і найефективніший спосіб це зробити.

Мобільні звіти LuckyTemplates. Поради та методи

Мобільні звіти LuckyTemplates. Поради та методи

У цьому короткому посібнику розповідається про функцію мобільних звітів LuckyTemplates. Я збираюся показати вам, як ви можете ефективно створювати звіти для мобільних пристроїв.

Звіти про професійну аналітику послуг у LuckyTemplates

Звіти про професійну аналітику послуг у LuckyTemplates

У цій презентації LuckyTemplates ми розглянемо звіти, що демонструють професійну аналітику послуг від фірми, яка має кілька контрактів і залучених клієнтів.

Оновлення Microsoft Power Platform | Microsoft Ignite 2021

Оновлення Microsoft Power Platform | Microsoft Ignite 2021

Ознайомтеся з основними оновленнями для Power Apps і Power Automate, а також їх перевагами та наслідками для Microsoft Power Platform.

Загальні функції SQL: огляд

Загальні функції SQL: огляд

Відкрийте для себе деякі поширені функції SQL, які ми можемо використовувати, наприклад String, Date і деякі розширені функції для обробки та маніпулювання даними.

Створення шаблону LuckyTemplates: керівництво та поради

Створення шаблону LuckyTemplates: керівництво та поради

У цьому підручнику ви дізнаєтеся, як створити свій ідеальний шаблон LuckyTemplates, налаштований відповідно до ваших потреб і вподобань.

Параметри полів і малі кратні в LuckyTemplates

Параметри полів і малі кратні в LuckyTemplates

У цьому блозі ми продемонструємо, як шарувати параметри поля з малими кратними, щоб створити неймовірно корисну інформацію та візуальні ефекти.