Ako nájsť nové a chýbajúce záznamy v 2 verziách tej istej tabuľky

Z času na čas potrebujete porovnať 2 verzie tej istej tabuľky, aby ste zistili, ktoré riadky tam pribudli, a ktoré odbudli. Napr. ak dostanete zoznam zákazníkov v predchádzajúcom vs. tomto mesiaci, a potrebujete zistiť, ktorí zákazníci pribudli, a ktorí odišli. Čiže ako nájsť nové a chýbajúce záznamy v 2 verziách tej istej tabuľky. To čo iní riešia v Exceli siahodlhými makrami, ide v Power Query vyriešiť na zopár kliknutí myšou. V excelovskom Power Query aj v Power BI. Preto sa teraz na túto fintu pozrieme.

Povedzme, že máme takéto dve tabuľky – prvá obsahuje zoznam všetkých zákazníkov za august, a druhá za september:

  

A teraz jednoducho potrebujeme zistiť, ktorí zákazníci medzi týmito dvoma mesiacmi odišli, a ktorí prišli. Alebo v technickom jazyku – ktoré riadky odbudli v 2. tabuľke, a ktoré pribudli voči 1. tabuľke. Alebo inak povedané – nájsť nové a chýbajúce záznamy v 2 verziách tej istej tabuľky.

Dajte si teda naimportovať obe tabuľky do Power Query. Prvú pod menom Klienti August, druhú pod menom Klienti September:

Teraz si ideme zistiť rozdiely medzi nimi. V oboch prípadoch využijeme funkciu tzv. Antijoinu – čiže horizontálneho spájania tabuliek, pri ktorom sa nájdu nezhodné riadky.

Najprv teda chceme zistiť, ktorí klienti odišli z augusta na september. Vyberte najprv v Power Query prvý dotaz Klienti August, kliknutím na jeho názov v paneli dotazov naľavo:

Potom kliknite v hlavnom menu na záložku Domov, na jej konci nájdite tlačítko Zlučovacie dotazy a vedľa neho kliknite na tú malú šípočku, a tam vyberte možnosť Zlúčiť dotazy do nového:

Otvorí sa okno, ktoré bude vyzerať takto:

Toto okno slúži na horizontálne spájanie dotazov, a vie nám vyriešiť oba problémy – čiže nájsť nové a chýbajúce záznamy, ak ho vhodne použijeme na tieto naše 2 verzie tej istej tabuľky.

V tomto okne potrebujeme nakonfigurovať, že má zlúčiť prvý dotaz s druhým, podľa ID klienta v oboch tabuľkách, a ponechať iba riadky, ktoré existujú iba na ľavej strane.

Prvý dotaz už máme hore vybratý. Vyberte teda pod ním v roletke druhý dotaz, t.j. Klienti September, potom kliknite na stĺpec ID klienta postupne v oboch náhľadoch tabuliek, potom vyberte v rozbaľovacej ponuke úplne naspodu okna možnosť Ľavý anti (iba riadky v prvom), a stlačte tlačidlo OK:

Táto možnosť vám vytvorí nový dotaz/tabuľku v Power Query, ktorá bude obsahovať zoznam klientov, ktorí sú v prvej tabuľke, ale už nie sú v druhej – čiže tých, ktorí odišli z augusta na september:

Túto tabuľku si potom načítajte do Excelu či Power BI Desktopu, alebo si s ňou už spravte čo chcete.

Druhý problém – zoznam nových klientov medzi mesiacmi – čiže zoznam riadkov, ktoré pribudli do druhej tabuľky – si zistíme takmer identickým postupom.

Opäť prejdite najprv na prvý dotaz v Power Query, kliknutím na jeho názov v paneli dotazov naľavo:

Potom kliknite v hlavnom menu na záložku Domov, na jej konci nájdite tlačítko Zlučovacie dotazy a vedľa neho kliknite na tú malú šípočku, a tam vyberte možnosť Zlúčiť dotazy do nového:

V tomto okne potrebujeme teraz nakonfigurovať, že má zlúčiť prvý dotaz s druhým, podľa ID klienta v oboch tabuľkách, a ponechať iba riadky, ktoré existujú iba na pravej strane.

Prvý dotaz už máme hore vybratý. Vyberte teda pod ním v roletke druhý dotaz, t.j. Klienti September, potom kliknite na stĺpec ID klienta postupne v oboch náhľadoch tabuliek, potom vyberte v rozbaľovacej ponuke úplne naspodu okna možnosť Pravý anti (iba riadky v druhom), a stlačte tlačidlo OK:

Táto možnosť vám vytvorí nový dotaz/tabuľku v Power Query, ktorá bude obsahovať zoznam klientov, ktorí sú v druhej tabuľke, ale už nie sú v prvej – čiže tých, ktorí pribudli z augusta na september:

Aj keď to tak na prvý pohľad nevyzerá. Pretože treba ešte spraviť ďalšie 2 kroky.

V poslednom stĺpci najprv kliknite na tú malú ikonku s rozdvojkou v pravej časti nadpisu stĺpca Klienti September, a stlačte tlačítko OK:

Na konci tabuľky napravo pribudnú nové stĺpce z druhej tabuľky, a teda konečne už údaje, ktoré sme čakali:

Nakoniec už len vymažte prvé dva stĺpce, a druhé dva premenujte na pôvodné názvy. To už zvládnete aj sami bez vysvetlenia 🙂

Túto tabuľku si takisto potom načítajte do Excelu či Power BI Desktopu, alebo si s ňou už spravte čo chcete.

Takže, takto jednoduché je zistiť rozdiely v riadkoch v tej istej tabuľke medzi 2 mesiacmi, či inými časovými snímkami. Resp. nájsť nové a chýbajúce záznamy v 2 verziách tej istej tabuľky. A v Power Query je to naozaj otázka len niekoľkých kliknutí myšou. Viete si predstaviť, koľko toho ešte Power Query dokáže bez potreby makier, keď v ňom takéto relatívne zložité veci idú spraviť na pár klikov? Odpoveď bude asi ďaleko, ďaleko za vašimi hranicami predstavivosti. Stručná odpoveď je však – VEĽA 🙂