Funktionerne GroupBy og Ungroup
Gælder for: Lærredapps Modelbaserede apps Power Pages
Grupperer og ophæver grupper af poster i en tabel.
Description
Funktionen GroupBy returnerer en tabel med poster, som er grupperet efter værdierne i en eller flere kolonner. Posterne i samme gruppe placeres i en enkelt post, og der tilføjes en kolonne med en indlejret tabel med de resterende kolonner.
Funktionen Ungroup ophæver GroupBy-processen. Denne funktion returnerer en tabel, som opdeler de grupperede poster i separate poster.
Du kan gruppere poster ved hjælp af GroupBy, ændre den tabel, funktionen returnerer, og derefter ophæve gruppen i den ændrede tabel vha. Ungroup. Du kan f.eks. fjerne en gruppe af poster på følgende måde:
- Brug funktionen GroupBy.
- Brug funktionen Filter til at fjerne hele grupper af poster.
- Brug funktionen Ungroup.
Du kan også samle resultaterne baseret på en gruppering:
- Brug funktionen GroupBy.
- Brug funktionen AddColumns med Sum, Average og andre aggregeringsfunktioner til at tilføje en ny kolonne, som er en aggregering af gruppetabellerne.
- Brug funktionen DropColumns til at slette gruppetabellen.
Opdel gruppe forsøger at bevare den oprindelige rækkefølge af de poster, der blev fødet til GroupBy. Det er ikke altid muligt (f.eks. hvis den oprindelige tabel indeholder tomme poster).
En tabel er en værdi i Power Apps, ligesom en streng eller et tal. Du kan angive en tabel som et argument for en funktion, og funktioner kan returnere en tabel som et resultat. GroupBy og Opdel gruppe ændrer ikke en tabel, men tager i stedet en tabel som et argument og returnerer en anden tabel. Se Arbejde med tabeller for at få flere oplysninger.
Bemærk
I Power Apps før version 3.24042 blev kolonnenavne angivet med en tekststreng ved hjælp af dobbelte anførselstegn, og hvis de var knyttet til en datakilde, skulle de også være logiske navne. Det logiske navn "cr43e_name" med dobbelte anførselstegn blev f.eks. brugt i stedet for det viste navn Navn uden anførselstegn. For SharePoint- og Excel-datakilder, der indeholder kolonnenavne med mellemrum, blev hvert mellemrum angivet med "_x0020_", f.eks. "Navn på kolonne" som "Navn_x0020_på_x0020_kolonne". Efter denne version blev alle apps automatisk opdateret til den nye syntaks, der er beskrevet i denne artikel.
Syntaks
GroupBy( Tabel; Kolonnenavn1 [; Kolonnenavn2;... ]; GruppeKolonnenavn )
- Tabel - Påkrævet. Den tabel, der skal grupperes.
- ColumnNames – Påkrævet. De kolonnenavne i Table, som posterne skal grupperes efter. Disse kolonner blive kolonner i den returnerede tabel.
- GroupColumnName – Påkrævet. Det kolonnenavn, der bruges til at gemme de postdata, som ikke findes i ColumnName(s).
Opdel gruppe( Tabel; GruppeKolonnenavn )
- Tabel - Påkrævet. Den grupperede tabel, der skal ophæves.
- GroupColumnName – Påkrævet. Den kolonne, der indeholder de postdata, der blev samlet med funktionen GroupBy.
Eksempler
Oprette en samling
- Tilføj en knap, og indstil dens Text-egenskab til at vise teksten Original på knappen.
- Indstil egenskaben OnSelect for knappen Original til denne formel:
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}
)
Vælg knappen Original, mens du holder Alt-tasten nede.
Du har netop oprettet en samling med navnet CityPopulations, som indeholder disse data:
Hvis du vil have vist samlingen, skal du vælge Samlinger i menuen Filer og derefter vælge samlingen CityPopulations. De første fem poster i samlingen vises:
Gruppér poster
Tilføj endnu en knap, og indstil dens Text-egenskab til "Group".
Indstil egenskaben OnSelect for denne knap til denne formel:
ClearCollect( CitiesByCountry, GroupBy( CityPopulations, Land, Byer )
Vælg knappen Group, mens du holder Alt-tasten nede.
Du har netop oprettet en samling med navnet CitiesByCountry, hvor posterne i den tidligere samling grupperes efter kolonnen Country.
Hvis de første fem poster i samlingen skal vises, skal du vælge Samlinger i menuen Filer.
Hvis befolkningstallet for byerne i et land/område skal vises, skal du vælge tabelikonet i kolonnen Cities for dette land/område, (f.eks. Tyskland):
Filtrer og ophæv grupperede poster
Tilføj en knap, og indstil dens Text-egenskab til "Filter".
Indstil egenskaben OnSelect for denne knap til denne formel:
ClearCollect( CitiesByCountryFiltered, Filter( CitiesByCountry, "e" i land) )
Vælg den knap, du tilføjede, mens du holder Alt-tasten nede.
Du har netop oprettet en tredje samling med navnet CitiesByCountryFiltered, som kun inkluderer de lande/områder, som har bogstavet "e" i deres navn, dvs. ikke Rusland eller Kina.
Tilføj endnu en knap, og indstil dens Text-egenskab til "Ungroup".
Indstil egenskaben OnSelect for denne knap til denne formel:
ClearCollect( CityPopulationsUngrouped, Ungroup( CitiesByCountryFiltered, Cities ) )
Som giver følgende resultat:
Aggregerede resultater
En anden handling, vi kan udføre på en grupperet tabel er at kompilere resultaterne. I dette eksempel lægger vi befolkningstallet i store byer i hvert land/område sammen.
Tilføj endnu en knap, og indstil dens Text-egenskab til "Sum".
Indstil egenskaben OnSelect af knappen "Sum" til denne formel:
ClearCollect( CityPopulationsSum, AddColumns( CitiesByCountry, 'Sum of City Populations', Sum( Cities, Population ) ) )
Som giver følgende resultat:
AddColumns starter med basissamlingen CitiesByCountry og tilføjer en ny kolonne Sum af bypopulationer. I denne kolonne bliver værdierne beregnet række for række baseret på formlen Sum( Cities, Population ). AddColumns angiver værdien af kolonnen Byer (en tabel) for hver række, og Sum lægger Population for hver række i denne undertabel sammen .
Nu, hvor vi har den ønskede sum, kan vi bruge DropColumns til at fjerne undertabellerne.
Tilføj endnu en knap, og indstil dens Text-egenskab, så knappen viser "SumOnly".
Angiv egenskaben OnSelect for knappen "SumOnly" til denne formel:
ClearCollect( CityPopulationsSumOnly, DropColumns( CityPopulationsSum, byer )
Som giver følgende resultat:
Bemærk, at vi ikke behøvede at opdele gruppen for denne tabel.