Захаванне гісторыі абнаўлення запытаў Power Query

Амаль на кожным трэнінгу Power Query, калі мы даходзім да таго, як абнаўляць створаныя запыты, і людзі бачаць, як новыя даныя замяняюць старыя пры абнаўленні, адзін са слухачоў пытаецца ў мяне: «ці можна пераканацца, што пры абнаўленні старыя даныя захоўваюцца таксама дзесьці захоўваліся і была бачная ўся гісторыя абнаўленняў?

Ідэя не новая, і стандартным адказам на яе будзе "не" - Power Query па змаўчанні настроены на замену старых даных новымі (што патрабуецца ў пераважнай большасці выпадкаў). Аднак пры вялікім жаданні можна абыйсці гэтае абмежаванне. А метад, як вы ўбачыце пазней, вельмі просты.

Разгледзім наступны прыклад.

Выкажам здагадку, што ў якасці ўваходных дадзеных у нас ёсць файл ад кліента (назавем яго, скажам, крыніца) са спісам прадуктаў, якія ён хоча купіць у выглядзе «разумнай» дынамічнай табліцы пад назвай дадатак:

Захаванне гісторыі абнаўлення запытаў Power Query

У іншым файле (назавем яго па аналогіі Прымач) мы ствараем просты запыт для імпарту табліцы з прадуктамі з Source праз Дадзеныя – Атрымаць даныя – З файла – З кнігі 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 праз Галоўная — зачыніць і спампаваць (Галоўная — Зачыніць і загрузіць) і паспрабуйце пару разоў абнавіць усю нашу структуру з дапамогай кнопкі абнавіць усе таб Дата (Дадзеныя — Абнавіць усе). Пры кожным абнаўленні новыя даныя не замяняюць старыя даныя, а перамяшчаюць іх ніжэй, захоўваючы ўсю гісторыю абнаўленняў:

Захаванне гісторыі абнаўлення запытаў Power Query

Падобны прыём можна выкарыстоўваць пры імпарце з любых знешніх крыніц (інтэрнэт-сайтаў, баз дадзеных, знешніх файлаў і г.д.), каб захаваць старыя значэнні для гісторыі, калі вам гэта трэба.

  • Зводная табліца для некалькіх дыяпазонаў даных
  • Зборка табліц з розных файлаў з дапамогай Power Query
  • Збор дадзеных з усіх аркушаў кнігі ў адну табліцу

Пакінуць каментар