Share via


Funksjonene GroupBy og Ungroup

Gjelder: Lerretsapper Modelldrevne apper

Grupperer og deler opp poster av en tabell.

Description

Funksjonen GroupBy returnerer en tabell med poster som er gruppert sammen, basert på verdiene i én eller flere kolonner. Poster i den samme gruppen er plassert i én enkelt post. En kolonne som inneholder en nestet tabell av de resterende kolonnene, er lagt til.

Funksjonen Ungroup reverserer GroupBy-prosessen. Denne funksjonen returnerer en tabell, og bryter opp alle grupperte poster til separate poster.

Du kan gruppere poster ved hjelp av GroupBy, endre tabellen som returneres og deretter dele opp grupper med poster i tabellen som er endret ved hjelp av Ungroup. Du kan for eksempel fjerne en gruppe av poster ved å følge denne fremgangsmåten:

  • Bruk GroupBy-funksjonen.
  • Bruk Filter-funksjonen til å fjerne hele gruppen av poster.
  • Bruk Ungroup-funksjonen.

Du kan også samle resultater basert på en gruppering:

  • Bruk GroupBy-funksjonen.
  • Bruk AddColumns-funksjonen med Sum, Average og andre mengdefunksjoner til å legge til en ny kolonne som er et aggregat av gruppetabellene.
  • Bruk funksjonen DropColumns for å fjerne gruppetabellen.

Ungroup prøver å beholde den opprinnelige rekkefølgen til postene som ble matet til GroupBy. Dette er ikke alltid mulig (for eksempel hvis den opprinnelige tabellen inneholder tomme poster).

En tabell er en verdi i Power Apps, akkurat som en streng eller et tall. Du kan angi en tabell som et argument for en funksjon, og en funksjon kan returnere en tabell. GroupBy og Ungroup endrer ikke en tabell, i stedet tar de en tabell som et argument og returnerer en annen tabell. Hvis du vil ha mer informasjon, kan du se arbeide med tabeller.

Merk

I Power Apps før versjon 3.24042 ble kolonnenavn angitt med en tekststreng med doble anførselstegn, og hvis de var koblet til et datakilde, måtte de også være logiske navn. Det logiske navnet cr43e_name med doble anførselstegn ble brukt i stedet for visningsnavn Navn uten anførselstegn. For SharePoint- og Excel-datakilder som inneholder kolonnenavn med mellomrom, ble hvert mellomrom angitt med "_x0020_", for eksempel "Kolonnenavn" som "Column_x0020_Name". Etter denne versjonen ble alle apper automatisk oppdatert til den nye syntaksen beskrevet i denne artikkelen.

Syntaks

GroupBy( Table, ColumnName1 [, ColumnName2, ... ], GroupColumnName )

  • Table - obligatorisk. Tabell som skal grupperes.
  • ColumnName(s) - obligatorisk. Kolonnenavnene i Tabell som du vil gruppere i poster. Disse kolonnene blir kolonnene i den resulterende tabellen.
  • GroupColumnName - obligatorisk. Kolonnenavn for lagring av postdata er ikke i ColumnName(s).

Ungroup( Table, GroupColumnName )

  • Table - obligatorisk. Tabell som skal deles opp.
  • GroupColumnName - obligatorisk. Kolonnen som inneholder postdata-oppsettet med GroupBy-funksjonen.

Eksempler

Opprett en samling

  1. Legg til en knapp, og angi Text-egenskapen, slik at knappen viser Original.
  2. Angi OnSelect-egenskapen for Original-knappen til denne formelen:
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. Velg Opprinnelig-knappen mens du holder nede ALT-tasten.

    Du opprettet en samling, kalt CityPopulations, som inneholder disse dataene:

    Eksempel på CityPopulations.

  2. Velg Samlinger i Fil-menyen, og velg deretter CityPopulations-samlingen for å vise denne samlingen. De fem første postene i samlingen vises:

    CityPopulations-samling.

Grupper poster

  1. Legg til en annen knapp, og angi Text-egenskapen til Group.

  2. Sett OnSelect-egenskapen til denne knappen til denne formelen:

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

  3. Velg Gruppe-knappen mens du holder nede ALT-tasten.

    Du opprettet en samling, kalt CitiesByCountry, hvor poster for den forrige samlingen er gruppert etter Country-kolonnen.

    Byer gruppert.

  4. Velg Samlinger i Fil-menyen for å vise de fem første postene i denne samlingen.

    Byer etter land/område.

  5. For å vise befolkningen i byer i et land/område må du velge tabellikonet i Cities-kolonnen for dette landet/området (for eksempel Tyskland):

    Populasjon – Tyskland.

Filtrer og del opp grupperte poster

  1. Legg til en annen knapp, og angi Text-egenskapen, slik at knappen viser Filter.

  2. Sett OnSelect-egenskapen til denne knappen til denne formelen:

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

  3. Velg knappen du la til mens du holder nede ALT-tasten.

    Du opprettet en tredje samling, kalt CitiesByCountryFiltered, som bare inkluderer landene som har en «e» i navnet (det vil si ikke Spania eller Italia).

    CitiesByCountryFiltered.

  4. Legg til en knapp til, og angi Text-egenskapen, slik at knappen viser Ungroup.

  5. Sett OnSelect-egenskapen til denne knappen til denne formelen:

    ClearCollect( CityPopulationsUngrouped, Ungroup( CitiesByCountryFiltered, Cities ) )

    Som resulterer i:

    Byer etter land/område etter oppdelt gruppe.

Samlede resultater

En annen operasjon vi kan utføre på en gruppert tabell, er å samle resultatene. I dette eksemplet skal vi summere befolkningen av de store byene i hvert land/område.

  1. Legg til en annen knapp, og endre Text-egenskapen, slik at knappen viser Sum.

  2. Angi OnSelect-egenskapen for Sum-knappen til denne formelen:

    ClearCollect( CityPopulationsSum, AddColumns( CitiesByCountry, 'Sum of City Populations', Sum( Cities, Population ) ) )

    Som resulterer i:

    Sum av byer.

    AddColumns starter med CitiesByCountry-samlingen som grunnlag og legger til en ny kolonne kalt Sum of City Populations. Verdier for denne kolonnen er beregnet rad-for-rad basert på formelen Sum( Cities, Population ). Funksjonen AddColumns angir verdien for Cities-kolonnen (en tabell) for hver rad, og Sum legger sammen Befolkning for hver rad i denne undertabellen.

    Nå som vi har summen som vi ønsker, kan vi bruke DropColumns til å fjerne undertabeller.

  3. Legg til en annen knapp, og endre Text-egenskapen, slik at knappen viser "SumOnly".

  4. Angi OnSelect-egenskapen for "SumOnly"-knappen til denne formelen:

    ClearCollect( CityPopulationsSumOnly, DropColumns( CityPopulationsSum, Cities ) )

    Som resulterer i:

    Sum av land.

    Legg merke til at vi ikke trengte å dele opp grupper med denne tabellen.