Sadržaj
Na gotovo svakom Power Query treningu, kada dođemo do toga kako ažurirati kreirane upite i ljudi vide kako novi podaci zamjenjuju stare podatke prilikom ažuriranja, jedan od slušatelja me pita: "je li moguće osigurati da se stari podaci prilikom ažuriranja također su negdje bili spremljeni i cijela povijest ažuriranja je bila vidljiva?
Ideja nije nova i standardni odgovor na nju bit će "ne" - Power Query je prema zadanim postavkama konfiguriran za zamjenu starih podataka novima (što je potrebno u velikoj većini slučajeva). Međutim, ako stvarno želite, možete zaobići ovo ograničenje. A metoda je, kao što ćete kasnije vidjeti, vrlo jednostavna.
Razmotrimo sljedeći primjer.
Pretpostavimo da kao ulazni podatak imamo datoteku od klijenta (nazovimo je, recimo, izvor) s popisom proizvoda koje želi kupiti u obliku „pametne“ dinamičke tablice pod nazivom primjena:
U drugoj datoteci (nazovimo je po analogiji Prijamnik) stvaramo jednostavan upit za uvoz tablice s proizvodima iz izvora putem Podaci – Dobivanje podataka – Iz datoteke – Iz Excel radne knjige (Podaci — Dohvati podatke — Iz datoteke — Iz Excel radne knjige) i prenesite dobivenu tablicu na list:
Ukoliko u budućnosti klijent odluči napraviti izmjene narudžbe u svojoj datoteci izvor, zatim nakon ažuriranja našeg zahtjeva (desnim klikom ili putem Podaci – Osvježi sve) vidjet ćemo nove podatke u datoteci Prijamnik — sve standardno.
Pobrinimo se sada da se prilikom ažuriranja stari podaci ne zamjenjuju novima, već da se novi dodaju starima – uz dodatak datuma i vremena, tako da se može vidjeti kada su te specifične promjene napravio.
Korak 1. Dodavanje datuma i vremena izvornom upitu
Otvorimo zahtjev primjenauvoz naših podataka iz izvori dodajte mu stupac s datumom i vremenom ažuriranja. Da biste to učinili, možete koristiti gumb Prilagođeni stupac kartica Dodavanje stupca (Dodaj stupac — prilagođeni stupac), a zatim unesite funkciju DatumVrijeme.LokalnoSada – analog funkcije TDATA (SADA) u Microsoft Excelu:
Nakon što kliknete OK trebali biste završiti s lijepim stupcem poput ovog (ne zaboravite postaviti format datuma i vremena za njega pomoću ikone u zaglavlju stupca):
Ako želite, tada za ploču učitanu na list za ovaj stupac možete postaviti format datuma i vremena sa sekundama za veću točnost (morat ćete dodati dvotočku i "ss" u standardni format):
Korak 2: Upit za stare podatke
Kreirajmo sada još jedan upit koji će djelovati kao međuspremnik koji sprema stare podatke prije ažuriranja. Odabir bilo koje ćelije rezultirajuće tablice u datoteci Prijamnik, odaberite na kartici Datum naredba Iz tablice/raspona (Podaci — iz tablice/raspona) or S lišćem (S lista):
Ne radimo ništa s tablicom učitanom u Power Queryju, zovemo upit, na primjer, stari podaci i pritisnite Početna — Zatvori i učitaj — Zatvori i učitaj u… — Samo stvori vezu (Početna — Zatvori&Učitaj — Zatvori&Učitaj u… — Samo stvori vezu).
Korak 3. Spajanje starih i novih podataka
Sada se vratimo na naš izvorni upit primjena te mu odozdo naredbom dodati stare podatke iz prethodnog buffer zahtjeva Početna — Dodajte zahtjeve (Početna — dodaj upite):
To je sve!
Ostaje da se vratimo u Excel kroz Početna — Zatvori i preuzmi (Početna — Zatvori&Učitaj) i pokušajte nekoliko puta ažurirati našu cijelu strukturu pomoću gumba Update All kartica Datum (Podaci — Osvježi sve). Sa svakim ažuriranjem, novi podaci neće zamijeniti stare podatke, već će ih gurnuti ispod, čuvajući cijelu povijest ažuriranja:
Sličan trik se može koristiti prilikom uvoza iz bilo kojeg vanjskog izvora (internetske stranice, baze podataka, vanjske datoteke itd.) kako biste zadržali stare vrijednosti za povijest ako vam je potrebna.
- Zaokretna tablica u više raspona podataka
- Sastavljanje tablica iz različitih datoteka pomoću Power Queryja
- Prikupljanje podataka sa svih listova knjige u jednu tablicu