Izgradnja multiformatnih tabela iz jednog lista u Power Queryju

Formulacija problema

Kao ulazne podatke imamo Excel fajl, gde jedan od listova sadrži nekoliko tabela sa podacima o prodaji sledećeg oblika:

Izgradnja multiformatnih tabela iz jednog lista u Power Queryju

Zapiši to:

  • Tabele različitih veličina i sa različitim skupovima proizvoda i regija u redovima i kolonama bez ikakvog sortiranja.
  • Prazne linije se mogu umetnuti između tabela.
  • Broj stolova može biti bilo koji.

Dvije važne pretpostavke. Pretpostavlja se da:

  • Iznad svake tabele, u prvoj koloni, nalazi se ime menadžera čiju prodaju tabela ilustruje (Ivanov, Petrov, Sidorov itd.)
  • Nazivi roba i regiona u svim tabelama su napisani na isti način – sa preciznošću.

Krajnji cilj je prikupljanje podataka iz svih tabela u jednu ravnu normalizovanu tabelu, pogodnu za naknadnu analizu i pravljenje rezimea, tj. u ovoj:

Izgradnja multiformatnih tabela iz jednog lista u Power Queryju

Korak 1. Povežite se na datoteku

Kreirajmo novu praznu Excel datoteku i odaberite je na kartici podaci naredba Preuzmite podatke – Iz datoteke – Iz knjige (Podaci — Iz datoteke — Iz radne knjige). Odredite lokaciju izvorne datoteke sa podacima o prodaji, a zatim u prozoru navigatora odaberite list koji nam je potreban i kliknite na dugme Pretvori podatke (Transformirajte podatke):

Izgradnja multiformatnih tabela iz jednog lista u Power Queryju

Kao rezultat, svi podaci iz njega bi trebali biti učitani u Power Query editor:

Izgradnja multiformatnih tabela iz jednog lista u Power Queryju

Korak 2. Očistite smeće

Izbrišite automatski generisane korake modificirani tip (promijenjena vrsta) и Povišena zaglavlja (Promovirana zaglavlja) i riješite se praznih linija i redova sa ukupnim vrijednostima koristeći filter null и UKUPNO po prvoj koloni. Kao rezultat, dobijamo sljedeću sliku:

Izgradnja multiformatnih tabela iz jednog lista u Power Queryju

Korak 3. Dodavanje menadžera

Da bismo kasnije shvatili gdje je čija prodaja, potrebno je našoj tabeli dodati kolonu gdje će u svakom redu biti odgovarajuće prezime. Za ovo:

1. Dodajmo pomoćnu kolonu sa brojevima redova pomoću naredbe Dodaj kolonu – Kolona indeksa – Od 0 (Dodaj kolonu — Indeksni stupac — Od 0).

2. Dodajte kolonu s formulom pomoću naredbe Dodavanje kolone – Prilagođena kolona (Dodaj kolonu — Prilagođena kolona) i tamo uvesti sljedeću konstrukciju:

Izgradnja multiformatnih tabela iz jednog lista u Power Queryju

Logika ove formule je jednostavna – ako je vrijednost sljedeće ćelije u prvoj koloni “Proizvod”, onda to znači da smo naišli na početak nove tabele, pa prikazujemo vrijednost prethodne ćelije sa ime menadžera. U suprotnom, ne prikazujemo ništa, tj. null.

Da bismo dobili roditeljsku ćeliju s prezimenom, prvo se pozivamo na tabelu iz prethodnog koraka #”Indeks dodan”, a zatim navedite ime kolone koja nam je potrebna [Kolona1] u uglastim zagradama i broj ćelije u toj koloni u vitičastim zagradama. Broj ćelije će biti za jedan manji od trenutnog, koji uzimamo iz kolone indeks, respektivno.

3. Ostaje popuniti prazne ćelije sa null imena iz viših ćelija sa komandom Transformacija – Ispuna – Dolje (Transformacija — Ispuna — Dolje) i izbrišite više nepotrebnu kolonu sa indeksima i redove sa prezimenima u prvoj koloni. Kao rezultat, dobijamo:

Izgradnja multiformatnih tabela iz jednog lista u Power Queryju

Korak 4. Grupisanje u zasebne tabele po menadžerima

Sljedeći korak je grupiranje redova za svakog menadžera u zasebne tabele. Da biste to učinili, na kartici Transformacija koristite naredbu Grupiraj po (Transform – Group By) i u prozoru koji se otvori odaberite kolonu Upravitelj i operaciju Svi redovi (Svi redovi) da jednostavno prikupite podatke bez primjene bilo kakve funkcije agregiranja na njih (zbir, prosek, itd.). P.):

Izgradnja multiformatnih tabela iz jednog lista u Power Queryju

Kao rezultat, dobijamo zasebne tabele za svakog menadžera:

Izgradnja multiformatnih tabela iz jednog lista u Power Queryju

Korak 5: Transformirajte ugniježđene tablice

Sada dajemo tabele koje leže u svakoj ćeliji rezultirajuće kolone Svi podaci u pristojnom stanju.

Prvo, izbrišite kolonu koja više nije potrebna u svakoj tabeli menadžer. Koristimo ponovo Prilagođena kolona tabulator transformacija (Transformacija — Prilagođena kolona) i sledeća formula:

Izgradnja multiformatnih tabela iz jednog lista u Power Queryju

Zatim, sa drugom izračunatom kolonom, podižemo prvi red u svakoj tabeli na naslove:

Izgradnja multiformatnih tabela iz jednog lista u Power Queryju

I na kraju, izvodimo glavnu transformaciju – otvaramo svaku tablicu pomoću M-funkcije Table.UnpivotOtherColumns:

Izgradnja multiformatnih tabela iz jednog lista u Power Queryju

Imena regiona iz zaglavlja će ići u novu kolonu i dobićemo užu, ali u isto vreme, dužu normalizovanu tabelu. Prazne ćelije sa null se ignorišu.

Oslobađajući se nepotrebnih međukolona, ​​imamo:

Izgradnja multiformatnih tabela iz jednog lista u Power Queryju

Korak 6 Proširite ugniježđene tablice

Ostaje proširiti sve normalizirane ugniježđene tabele u jednu listu pomoću dugmeta sa dvostrukim strelicama u zaglavlju kolone:

Izgradnja multiformatnih tabela iz jednog lista u Power Queryju

… i konačno dobijamo ono što smo želeli:

Izgradnja multiformatnih tabela iz jednog lista u Power Queryju

Dobijenu tabelu možete izvesti nazad u Excel pomoću naredbe Početna — Zatvori i učitaj — Zatvori i učitaj u… (Početna — Zatvori&Učitaj — Zatvori&Učitaj na…).

  • Napravite tabele sa različitim zaglavljima iz više knjiga
  • Prikupljanje podataka iz svih fajlova u datom folderu
  • Prikupljanje podataka sa svih listova knjige u jednu tabelu

Ostavite odgovor