Funktionerne GroupBy og Ungroup

Gælder for: Lærredapps Modelbaserede apps

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.

Ungroup forsøger at bevare den oprindelige rækkefølge af de poster, der blev grupperet med 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 Ungroup ændrer ikke en tabel. De bruger en tabel som 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( Table, ColumnName1 [, ColumnName2, ... ], GroupColumnName )

  • Table – påkrævet. Den tabel, der skal grupperes.
  • ColumnName(s) – 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).

Ungroup( Table, GroupColumnName )

  • Table – 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

  1. Tilføj en knap, og indstil dens Text-egenskab til at vise teksten Original på knappen.
  2. 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}
)
  1. Vælg knappen Original, mens du holder Alt-tasten nede.

    Du har netop oprettet en samling med navnet CityPopulations, som indeholder disse data:

    Eksempel på CityPopulations.

  2. 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:

    CityPopulations-samling.

Gruppér poster

  1. Tilføj endnu en knap, og indstil dens Text-egenskab til "Group".

  2. Indstil egenskaben OnSelect for denne knap til denne formel:

    ClearCollect( CitiesByCountry, GroupBy( CityPopulations, Country, Cities ) )

  3. 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.

    Grupperede byer.

  4. Hvis de første fem poster i samlingen skal vises, skal du vælge Samlinger i menuen Filer.

    Byer efter land/område.

  5. 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):

    Befolkning – Tyskland.

Filtrer og ophæv grupperede poster

  1. Tilføj en knap, og indstil dens Text-egenskab til "Filter".

  2. Indstil egenskaben OnSelect for denne knap til denne formel:

    ClearCollect( CitiesByCountryFiltered, Filter( CitiesByCountry, "e" in Country ) )

  3. 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.

    CitiesByCountryFiltered.

  4. Tilføj endnu en knap, og indstil dens Text-egenskab til "Ungroup".

  5. Indstil egenskaben OnSelect for denne knap til denne formel:

    ClearCollect( CityPopulationsUngrouped, Ungroup( CitiesByCountryFiltered, Cities ) )

    Som giver følgende resultat:

    Byer efter land/område efter opdeling af gruppe.

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.

  1. Tilføj endnu en knap, og indstil dens Text-egenskab til "Sum".

  2. 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:

    Sum for byer.

    AddColumns starter med basissamlingen CitiesByCountry og tilføjer den nye kolonne Sum of City Populations. I denne kolonne bliver værdierne beregnet række for række baseret på formlen Sum( Cities, Population ). AddColumns angiver værdien af kolonnen Cities (en tabel) for hver række, og Sum adderer Population for hver række i denne undertabel.

    Nu, hvor vi har den ønskede sum, kan vi bruge DropColumns til at fjerne undertabellerne.

  3. Tilføj endnu en knap, og indstil dens Text-egenskab, så knappen viser "SumOnly".

  4. Angiv egenskaben OnSelect for knappen "SumOnly" til denne formel:

    ClearCollect( CityPopulationsSumOnly, DropColumns( CityPopulationsSum, Cities ) )

    Som giver følgende resultat:

    Sum for lande/områder.

    Bemærk, at vi ikke behøvede at opdele gruppen for denne tabel.