Запазване на хронологията на актуализираните заявки на Power Query

При почти всяко обучение на Power Query, когато стигнем до това как да актуализираме създадени заявки и хората виждат как новите данни заместват старите данни при актуализиране, един от слушателите ме пита: „възможно ли е да се уверим, че при актуализиране старите данни са също някъде бяха запазени и цялата хронология на актуализациите беше видима?

Идеята не е нова и стандартният отговор на нея ще бъде „не“ – Power Query е конфигуриран по подразбиране да заменя стари данни с нови (което се изисква в по-голямата част от случаите). Въпреки това, ако наистина искате, можете да заобиколите това ограничение. А методът, както ще видите по-късно, е много прост.

Помислете за следния пример.

Да приемем, че имаме файл от клиента като входни данни (да го наречем, да кажем, източник) със списък с продукти, които той иска да закупи под формата на „умна“ динамична таблица на име Приложение:

Запазване на хронологията на актуализираните заявки на Power Query

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

Запазване на хронологията на актуализираните заявки на Power Query

Ако в бъдеще клиентът реши да направи промени в поръчката в своя файл източник, след това след актуализиране на нашата заявка (чрез щракване с десен бутон или чрез Данни – обновяване на всички) ще видим новите данни във файла Приемник — всички стандартни.

Сега нека се уверим, че при актуализирането старите данни не се заменят с нови, а новите се добавят към старите – и с добавяне на дата-час, за да може да се види кога са извършени тези конкретни промени направени.

Стъпка 1. Добавяне на дата-час към оригиналната заявка

Да отворим заявка Приложениеимпортиране на нашите данни от източники добавете колона с дата-час на актуализацията към нея. За да направите това, можете да използвате бутона Персонализирана колона етикет Добавяне на колона (Добавяне на колона — Персонализирана колона)и след това въведете функцията DateTime.LocalNow – аналог на функцията TDATA (СЕГА) в Microsoft Excel:

Запазване на хронологията на актуализираните заявки на Power Query

След като кликнете върху OK трябва да получите красива колона като тази (не забравяйте да зададете формата за дата-час за нея с иконата в заглавката на колоната):

Запазване на хронологията на актуализираните заявки на Power Query

Ако желаете, тогава за табелата, качена в листа за тази колона, можете да зададете формата за дата-час със секунди за по-голяма точност (ще трябва да добавите двоеточие и „ss“ към стандартния формат):

Запазване на хронологията на актуализираните заявки на Power Query

Стъпка 2: Заявка за стари данни

Сега нека създадем друга заявка, която ще действа като буфер, който записва старите данни преди актуализиране. Избиране на произволна клетка от получената таблица във файла Приемник, изберете в раздела Дата Команда От таблица/обхват (Данни — От таблица/обхват) or С листа (От лист):

Запазване на хронологията на актуализираните заявки на Power Query

Не правим нищо с таблицата, заредена в Power Query, извикваме заявката, например, стари данни и натиснете Начало — Затвори и зареди — Затвори и зареди до… — Създай само връзка (Начало — Затвори&Зареди — Затвори&Зареди до… — Само създаване на връзка).

Стъпка 3. Обединяване на стари и нови данни

Сега обратно към първоначалното ни запитване Приложение и добавете към него отдолу старите данни от предишната заявка за буфер с командата Начало — Добавяне на заявки (Начало — Добавете заявки):

Запазване на хронологията на актуализираните заявки на Power Query

Това е всичко!

Остава да се върнете към Excel чрез Начало — Затваряне и изтегляне (Начало — Затвори и зареди) и опитайте няколко пъти да актуализирате цялата ни структура с бутона Актуализиране All етикет Дата (Данни — Обновяване на всички). При всяка актуализация новите данни няма да заменят старите данни, а ще ги избутат по-долу, запазвайки цялата хронология на актуализациите:

Запазване на хронологията на актуализираните заявки на Power Query

Подобен трик може да се използва при импортиране от всякакви външни източници (интернет сайтове, бази данни, външни файлове и т.н.), за да запазите старите стойности за история, ако имате нужда от това.

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

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