Sisällys
Kun lähes jokaisessa Power Query -koulutuksessa pääsemme luotujen kyselyjen päivittämiseen ja ihmiset näkevät kuinka uusi data korvaa vanhan tiedon päivitettäessä, yksi kuuntelijoista kysyy minulta: "Onko mahdollista varmistaa, että päivitettäessä vanhat tiedot ovat myös jonnekin tallennettiin ja koko päivityshistoria näkyi?
Idea ei ole uusi ja vakiovastaus siihen on "ei" – Power Query on oletusarvoisesti määritetty korvaamaan vanhat tiedot uusilla (mitä vaaditaan useimmissa tapauksissa). Kuitenkin, jos todella haluat, voit kiertää tämän rajoituksen. Ja menetelmä, kuten näet myöhemmin, on hyvin yksinkertainen.
Harkitse seuraavaa esimerkkiä.
Oletetaan, että meillä on syöttötietona asiakkaalta saatu tiedosto (kutsutaanko sitä vaikka lähde) ja luettelo tuotteista, joita hän haluaa ostaa "älykkään" dynaamisen taulukon muodossa. Hakemus:
Toisessa tiedostossa (kutsutaanko sitä analogisesti Vastaanotin) luomme yksinkertaisen kyselyn tuodaksemme taulukon tuotteineen Lähteen kautta Tiedot – Hae tiedot – Tiedostosta – Excel-työkirjasta (Data — Hae tiedot — Tiedostosta — Excel-työkirjasta) ja lataa tuloksena oleva taulukko taulukkoon:
Jos asiakas päättää tulevaisuudessa tehdä muutoksia tiedostossaan olevaan tilaukseen lähde, sitten pyyntömme päivittämisen jälkeen (napsauttamalla hiiren kakkospainikkeella tai kautta Tiedot – Päivitä kaikki) näemme uudet tiedot tiedostossa Vastaanotin - kaikki vakio.
Nyt huolehditaan siitä, että päivitettäessä vanhoja tietoja ei korvata uusilla, vaan uudet liitetään vanhoihin – ja lisättynä päivämäärä-aika, jotta voidaan nähdä milloin nämä tietyt muutokset on tehty. tehty.
Vaihe 1. Päivämäärän ja kellonajan lisääminen alkuperäiseen kyselyyn
Avataan pyyntö Hakemustuomme tietojamme lähdeja lisää siihen sarake, jossa on päivityksen päivämäärä-aika. Voit tehdä tämän käyttämällä painiketta Muokattu sarake kieleke Sarakkeen lisääminen (Lisää sarake — Muokattu sarake)ja syötä sitten funktio DateTime.LocalNow – toiminnon analogi TDATA (NYT) Microsoft Excelissä:
Napsauttamisen jälkeen OK sinun pitäisi päätyä kauniiseen sarakkeeseen, kuten tämä (älä unohda asettaa päivämäärä-aikamuotoa sille sarakeotsikon kuvakkeella):
Jos haluat, voit asettaa tämän sarakkeen arkille ladatun levyn päivämäärän ja kellonajan muodon sekunneilla tarkkuuden lisäämiseksi (sinun on lisättävä kaksoispiste ja "ss" vakiomuotoon):
Vaihe 2: Pyydä vanhoja tietoja
Luodaan nyt toinen kysely, joka toimii puskurina, joka tallentaa vanhat tiedot ennen päivitystä. Valitsemalla minkä tahansa solun tuloksena olevasta taulukosta tiedostossa Vastaanotin, valitse välilehdeltä Päiväys Komento Taulukosta/alueesta (Tiedot – taulukosta/alueesta) or Lehtien kanssa (Arkista):
Emme tee mitään Power Queryyn ladatun taulukon kanssa, kutsumme kyselyä esim. vanhat tiedot ja paina Etusivu — Sulje ja lataa — Sulje ja lataa… — Luo vain yhteys (Koti — Sulje&Lataa — Sulje&Lataa kohteeseen... — Luo vain yhteys).
Vaihe 3. Vanhojen ja uusien tietojen yhdistäminen
Nyt takaisin alkuperäiseen kyselyymme Hakemus ja lisää siihen alta vanhat tiedot edellisestä puskuripyynnöstä komennolla Etusivu — Lisää pyyntöjä (Etusivu – Liitä kyselyt):
Siinä kaikki!
On vielä palattava Exceliin Etusivu — Sulje ja lataa (Koti - Sulje&Lataa) ja yritä pari kertaa päivittää koko rakenne painikkeella Päivitä kaikki kieleke Päiväys (Data – Päivitä kaikki). Jokaisen päivityksen yhteydessä uudet tiedot eivät korvaa vanhoja tietoja, vaan työntävät ne alle, jolloin koko päivityshistoria säilyy:
Samanlaista temppua voidaan käyttää tuottaessa mistä tahansa ulkoisesta lähteestä (Internet-sivustot, tietokannat, ulkoiset tiedostot jne.), jotta vanhat arvot säilytetään tarvittaessa.
- Pivot-taulukko useilla tietoalueilla
- Taulukoiden kokoaminen eri tiedostoista Power Queryllä
- Tietojen kerääminen kirjan kaikista lehdistä yhteen taulukkoon