Turinys
Beveik kiekviename „Power Query“ mokyme, kai mes suprantame, kaip atnaujinti sukurtas užklausas ir žmonės mato, kaip nauji duomenys atnaujinant pakeičia senus duomenis, vienas iš klausytojų manęs klausia: „ar įmanoma įsitikinti, kad atnaujinant senus duomenis taip pat kažkur buvo išsaugoti ir visa atnaujinimų istorija buvo matoma?
Idėja nėra nauja ir standartinis atsakymas į ją bus „ne“ – „Power Query“ pagal numatytuosius nustatymus sukonfigūruota pakeisti senus duomenis naujais (to reikia daugeliu atvejų). Tačiau, jei tikrai norite, galite apeiti šį apribojimą. Ir metodas, kaip pamatysite vėliau, yra labai paprastas.
Apsvarstykite šį pavyzdį.
Tarkime, kad turime failą iš kliento kaip įvesties duomenis (vadinkime jį, tarkime, Šaltinis) su produktų, kuriuos jis nori nusipirkti, sąrašu „išmanios“ dinaminės lentelės, pavadintos taikymas:
Kitame faile (pavadinkime jį pagal analogiją Imtuvas) sukuriame paprastą užklausą, norėdami importuoti lentelę su produktais iš Šaltinio per Duomenys – gauti duomenis – iš failo – iš „Excel“ darbaknygės (Duomenys – gauti duomenis – iš failo – iš „Excel“ darbaknygės) ir įkelkite gautą lentelę į lapą:
Jei ateityje klientas nuspręs pakeisti savo byloje esantį užsakymą Šaltinis, tada atnaujinę užklausą (dešiniuoju pelės mygtuku spustelėdami arba per Duomenys – Atnaujinti viską) naujus duomenis matysime faile Imtuvas - visi standartiniai.
Dabar pasirūpinkime, kad atnaujinant seni duomenys nebūtų pakeisti naujais, o nauji būtų pridedami prie senųjų – ir pridedant datą-laiką, kad būtų galima matyti, kada šie konkretūs pakeitimai buvo atlikti. pagamintas.
1 veiksmas. Datos ir laiko įtraukimas į pradinę užklausą
Atidarykime prašymą taikymasimportuojame mūsų duomenis iš Šaltinisir pridėkite prie jo stulpelį su atnaujinimo data ir laiku. Norėdami tai padaryti, galite naudoti mygtuką Pasirinktinis stulpelis kortelė Stulpelio pridėjimas (Pridėti stulpelį – tinkintas stulpelis), tada įveskite funkciją DateTime.LocalNow – funkcijos analogas TDATA (DABAR) „Microsoft Excel“:
Spustelėję OK turėtumėte gauti tokį gražų stulpelį (nepamirškite nustatyti jo datos ir laiko formato su piktograma stulpelio antraštėje):
Jei norite, į šio stulpelio lapą įkeltoje plokštelėje galite nustatyti datos ir laiko formatą sekundėmis, kad būtų didesnis tikslumas (į standartinį formatą turėsite pridėti dvitaškį ir „ss“):
2 veiksmas: pateikite senų duomenų užklausą
Dabar sukurkime kitą užklausą, kuri veiks kaip buferis, kuris išsaugo senus duomenis prieš atnaujinant. Pažymėkite bet kurį gautos lentelės langelį faile Imtuvas, pasirinkite skirtuke Duomenys Komanda Iš lentelės/diapazono (Duomenys – iš lentelės/diapazono) or Su lapais (Iš lapo):
Mes nieko nedarome su lentele, įkelta į Power Query, iškviečiame užklausą, pavyzdžiui, seni duomenys ir paspauskite Pagrindinis — Uždaryti ir įkelti — Uždaryti ir įkelti į… — Sukurti tik ryšį (Pagrindinis — Uždaryti&Įkelti — Uždaryti&Įkelti į... — Tik sukurti ryšį).
3 veiksmas. Senų ir naujų duomenų sujungimas
Dabar grįžkime prie pradinės užklausos taikymas ir pridėkite prie jo iš apačios senus duomenis iš ankstesnės buferio užklausos su komanda Pagrindinis – pridėti užklausų (Pagrindinis – pridėti užklausų):
Tai viskas!
Belieka grįžti į Excel per Pagrindinis – uždarykite ir atsisiųskite (Pagrindinis – Uždaryti ir įkelti) ir keletą kartų pabandykite atnaujinti visą mūsų struktūrą mygtuku Atnaujinti Visi kortelė Duomenys (Duomenys – Atnaujinti viską). Su kiekvienu atnaujinimu nauji duomenys nepakeis senų duomenų, o nustums juos žemiau, išsaugodami visą naujinimų istoriją:
Panašus triukas gali būti naudojamas importuojant iš bet kokių išorinių šaltinių (interneto svetainių, duomenų bazių, išorinių failų ir kt.), kad išsaugotumėte senas istorijos vertes, jei to reikia.
- Suvestinė lentelė keliuose duomenų diapazonuose
- Lentelių surinkimas iš skirtingų failų naudojant Power Query
- Duomenų surinkimas iš visų knygos lapų į vieną lentelę