Funkcija GROUPBY
Ako vam je u opisu posla pisanje SQL upita sigurno, u velikoj meri, u okviru SELECT komande, koristite GROUP BY klauzulu koja omogućava grupisanje redova sa istim vrednostima u okviru kolona kako bi se primenila zadata funkcija za agregaciju podataka, npr. SUM, COUNT, AVERAGE, MIN, MAX… Imam za vas lepu vest: od skoro tako nešto možemo da postignemo i u okviru Excel izveštaja, upotrebom funkcije GROUPBY…
Krenućemo od tabele koja sadrži podatke o prodaji u određenom vremenskom periodu. Ona će biti izvor na osnovu koga ćemo kreirati izveštaje.
Sintaksa funkcije GROUPBY je sledeća:
GROUPBY (<kolona>;<vrednosti>;<f>;<zaglavlja>;<totali>;<sort>;<filter>;<rezultat>)
Prvi argument ove funkcije je opseg podataka, odnosno kolona koja sadrži vrednosti koje je potrebno da grupišemo. Drugi argument je takođe kolona, ali ona koja sadrži vrednosti nad kojima se obavlja agregacija, dok treći predstavlja funkciju koja se upotrebljava za agregaciju podataka.
Hajde da odmah vidimo kako ovo radi na primeru! U zadatoj tabeli sa prodajnim transakcijama kolona D čuva podatke o klasifikacijama prodatih artikala, a kolona E iznose prodaje. Ako želimo da izvršimo grupisanje prema klasifikaciji i saberemo sve iznose potrebno je napisati formulu:
=GROUPBY($D$4:$D$53;$H$4:$H$53;SUM)
Rezultat je jednostavna tabela koja vraća grupisane podatke i automatski izračunava ukupnu vrednost (Total).
Sledeći argument, nakon što smo naveli funkciju za agregaciju podataka, je oznaka da li u selektovanom opsegu (koloni) koja se grupiše, a naveli smo ga kao prvi argument, postoje zaglavlja i da li ih je potrebno prikazati. Nakon ovog argumenta, navodi se broj kojim specifikujemo da li treba i na kom nivou detaljnosti prikazati ukupne vrednosti- totale. Na primer, ako dopunimo formulu:
=GROUPBY($D$4:$D$53;$H$4:$H$53;SUM;0;0)
ovo znači da nema zaglavlja i ne prikazuje se, kao i da se ne izračunavaju i ne prikazuju ukupne vrednosti!
Sledeći argument u funkciji predstavlja redosled sortiranja. Ako ovde navedemo +1 redosled je rastući, a -1 zadaje sortiranje u opadajućem redosledu. Poslednja dva argumenta su filter, ukoliko želimo da zadamo kriterijum prema kome se vrši filtriranje izabranih podataka, kao i način na koji se vraća rezultat: kao hijerarhija (0) ili kao tabela (1). Excel uvek vraća grupisane podatke, ovo su samo dva ponuđena načina njihovog. Napišimo formulu:
=GROUPBY($E$4:$E$53;$H$4:$H$53;SUM;3;0;1;$D$4:$D$53=“KEKS“;1)
Ovom formulom vršimo grupisanje prema proizvođačima, sabiramo iznose, uz zadati filter da je vrednost klasifikacije „KEKS“, a rezultat se vraća kao tabela.