Funkcije GroupBy i Ungroup u aplikaciji Power Apps
Grupira i razgrupira zapise neke tablice.
Opis
Funkcija GroupBy vraća tablicu sa zapisima grupiranim na temelju vrijednosti u jednoj ili više stupaca. Zapisi u istoj grupi smještaju se u jedan zapis, s dodatnim stupcem koji sadrži ugniježđenu tablicu preostalih stupaca.
Funkcija Ungroup preokreće proces GroupBy. Ova funkcija vraća tablicu, razbijajući u zasebne zapise sve zapise koji su bili grupirani zajedno.
Možete grupirati zapise koristeći GroupBy, izmijenite tablicu koju vraća i zatim razgrupirajte zapise u izmijenjenu tablicu koristeći Ungroup. Na primjer, možete ukloniti grupu zapisa slijedeći ovaj pristup:
- Koristite funkciju GroupBy.
- Upotrijebite funkciju Filter kako biste uklonili cijelu grupu zapisa.
- Koristite funkciju Ungroup.
Također, možete zbrojiti rezultate na temelju grupiranja:
- Koristite funkciju GroupBy.
- Upotrijebite funkciju AddColumns sa Sum, Average i drugim funkcijama zbrajanja kako biste dodali novi stupac koji zbraja grupne tablice.
- Upotrijebite funkciju DropColumns kako biste ispustili grupnu tablicu.
Ungroup pokušava sačuvati izvorni redoslijed zapisa koji su uneseni u GroupBy. To nije uvijek moguće (na primjer, ako originalna tablica sadrži zapise prazno).
Tablica predstavlja jednu vrijednost u aplikaciji Power Apps, baš poput nekog niza ili broja. Možete odrediti tablicu kao argument neke funkcije, a funkcija može vratiti tablicu. Funkcije GroupBy i Ungroup ne mijenjaju tablicu; umjesto toga uzimaju tablicu kao argument i vraćaju drugačiju tablicu. Dodatne informacije potražite u odjeljku rad s tablicama.
Sintaksa
GroupBy( tablica, naziv stupca 1 [, naziv stupca 2, ... ], naziv grupnog stupca )
Tablica – Required. Tablica koju treba grupirati.
ColumnName – Required. Nazivi stupaca u Tablica kojima se grupiraju zapisi. Ti stupci postaju stupci u rezultirajućoj tablici.
Naziv grupnog stupca – Required. Naziv stupca za pohranu podataka o zapisu koji nije u naziv(ima) stupca.
Napomena
U slučaju SharePoint i Excel izvora podataka koji sadrže nazive stupaca s razmacima, svaki razmak navedite kao "_x0020_". Na primjer, navedite "Column Name" kao "Column_x0020_Name".
Ungroup( tablica, naziv grupnog stupca )
Tablica – Required. Tablica koju treba razgrupirati.
Naziv grupnog stupca – Required. Stupac koji sadrži postavke podataka o zapisu s funkcijom GroupBy.
Napomena
U slučaju SharePoint i Excel izvora podataka koji sadrže nazive stupaca s razmacima, svaki razmak navedite kao "_x0020_". Na primjer, navedite "Column Name" kao "Column_x0020_Name".
Primjeri
Stvaranje zbirke
- Dodajte gumb i postavite njegovo svojstvo Text tako da gumb prikazuje Original.
- Postavite svojstvo OnSelect gumba Original na ovu formulu:
ClearCollect( CityPopulations,
{ City: "London", Country: "United Kingdom", Population: 8615000},
{ City: "Berlin", Country: "Germany", Population: 3562000},
{ City: "Madrid", Country: "Spain", Population: 3165000},
{ City: "Rome", Country: "Italy", Population: 2874000},
{ City: "Paris", Country: "France", Population: 2273000},
{ City: "Hamburg", Country: "Germany", Population: 1760000},
{ City: "Barcelona", Country: "Spain", Population: 1602000},
{ City: "Munich", Country: "Germany", Population: 1494000},
{ City: "Milan", Country: "Italy", Population: 1344000}
)
Odaberite gumb Original dok držite pritisnutu tipku Alt.
Upravo ste stvorili zbirku, nazvanu CityPopulations, koja sadrži sljedeće podatke:
Upravo ste stvorili zbirku pod nazivom CityPopulations koja sadrži ove podatke:

Da biste prikazali ovu zbirku, odaberite mogućnost Zbirke u izborniku Datoteka, a zatim odaberite zbirku CityPopulations. Pojavljuje se prvih pet zapisa u zbirci:

Grupiranje zapisa
Dodajte još jedan gumb i postavite njegovo svojstvo Text na „Group”.
Postavite svojstvo OnSelect ovog gumba na sljedeću formulu:
ClearCollect( CitiesByCountry, GroupBy( CityPopulations, "Country", "Cities" ) )
Odaberite gumb Group dok držite pritisnutu tipku Alt.
Upravo ste stvorili zbirku, nazvanu CitiesByCountry, u kojoj su zapisi iz prethodne zbirke grupirani prema stupcu Country.

Za prikaz prvih pet zapisa u ovoj zbirci, odaberite mogućnost Zbirke u izborniku Datoteka.

Za prikaz populacije gradova u nekoj zemlji, odaberite ikonu tablice u stupcu Gradovi za tu zemlju (npr. Njemačka):

Filtriranje i razgrupiranje zapisa
Dodajte još jedan gumb i postavite njegovo svojstvo Text tako da gumb prikazuje „Filter”.
Postavite svojstvo OnSelect ovog gumba na sljedeću formulu:
ClearCollect( CitiesByCountryFiltered, Filter( CitiesByCountry, "e" in Country ) )
Odaberite gumb koji ste dodali dok držite pritisnutu tipku Alt.
Upravo ste stvorili treću zbirku, nazvanu CitiesByCountryFiltered, koja sadrži samo one zemlje koje u svom nazivu imaju „e” (dakle, ne Španjolska ili Italija).

Dodajte još jedan gumb i postavite njegovo svojstvo Text tako da gumb prikazuje „Ungroup”.
Postavite svojstvo OnSelect ovog gumba na sljedeću formulu:
ClearCollect( CityPopulationsUngrouped, Ungroup( CitiesByCountryFiltered, "Cities" ) )
To daje sljedeći rezultat:

Zbrajanje rezultata
Ono što još možemo učiniti s grupiranom tablicom jest zbrajanje rezultata. U ovom ćemo primjeru sažeti broj stanovnika većih gradova u svakoj zemlji.
Dodajte još jedan gumb i postavite njegovo svojstvo Text tako da gumb prikazuje „Sum”.
Postavite svojstvo OnSelect gumba Sum na ovu formulu:
ClearCollect( CityPopulationsSum, AddColumns( CitiesByCountry, "Sum of City Populations", Sum( Cities, Population ) ) )
To daje sljedeći rezultat:

AddColumns započinje osnovnom zbirkom CitiesByCountry i dodaje novi stupac Sum of City Populations. Vrijednosti ovog stupca izračunavaju se redak po redak formulom Sum( Cities, Population ). AddColumns pruža vrijednost stupca Cities (tablica) za svaki redak i Sum dodaje Population za svaki redak ove podtablice.
Sada kada imamo sumu koju želimo, možemo iskoristiti DropColumns kako bismo uklonili podtablice.
Dodajte još jedan gumb i postavite njegovo svojstvo Text tako da gumb prikazuje „SumOnly”.
Postavite svojstvo OnSelect gumba „SumOnly” na ovu formulu:
ClearCollect( CityPopulationsSumOnly, DropColumns( CityPopulationsSum, "Cities" ) )
To daje sljedeći rezultat:

Imajte na umu da nismo morali razgrupirati ovu tablicu.