Как правилно да разширите вложени таблици в Power Query

Съдържание

Да приемем, че имаме Excel файл с няколко интелигентни таблици:

Как правилно да разширите вложени таблици в Power Query

Ако заредите тези таблици в Power Query по стандартния начин с помощта на командата Данни – Вземете данни – От файл – От книга (Данни — Получаване на данни — От файл — От работна книга), тогава получаваме нещо подобно:

Как правилно да разширите вложени таблици в Power Query

Мисля, че картината е позната на много потребители на Power Query. Подобни вложени таблици могат да се видят след комбиниране на заявки (a la VLOOKUP), групиране (команда Групирай по етикет Трансформация), импортиране на всички файлове от дадена папка и др.

Следващата логична стъпка в тази ситуация обикновено е да разширите всички вложени таблици наведнъж – като използвате бутона с двойни стрелки в заглавката на колоната Дата:

Как правилно да разширите вложени таблици в Power Query

В резултат на това получаваме сбор от всички редове от всички таблици в едно цяло. Всичко е добро, просто и ясно. 

Сега си представете, че е добавена нова колона (Отстъпка) в изходните таблици и/или една от съществуващите (Град) е изтрита:

Как правилно да разширите вложени таблици в Power Query

Тогава нашата заявка след актуализацията ще върне не толкова красива снимка - отстъпката не се появи и колоната за град стана празна, но не изчезна:

Как правилно да разширите вложени таблици в Power Query

И е лесно да разберете защо – в лентата с формули можете ясно да видите, че имената на разширените колони са твърдо кодирани в аргументите на функцията Table.ExpandTableColumn като списъци във къдрави скоби.

Заобикалянето на този проблем е лесно. Първо, нека вземем имената на колоните от заглавката на която и да е (например първата) таблица с помощта на функцията Таблица.Имена на колони. Ще изглежда така:

Как правилно да разширите вложени таблици в Power Query

Тук:

  • #”Други колони премахнати” – името на предишната стъпка, откъдето вземаме данните
  • 0 {} – номера на таблицата, от която извличаме заглавието (броене от нула, т.е. 0 е първата таблица)
  • [Данни] – името на колоната в предишната стъпка, където се намират разширените таблици

Остава да заменим конструкцията, получена в лентата с формули във функцията Table.ExpandTableColumn на етапа на разширяване на таблици вместо твърдо кодирани списъци. В крайна сметка всичко трябва да изглежда така:

Как правилно да разширите вложени таблици в Power Query

Това е всичко. И няма да има повече проблеми с разширяването на вложени таблици, когато изходните данни се променят.

  • Изграждане на многоформатни таблици от един лист в Power Query
  • Създавайте таблици с различни заглавки от множество Excel файлове
  • Събиране на данни от всички листове на книгата в една таблица

 

Оставете коментар