Funkcijas GroupBy un Ungroup

Attiecas uz: Pamatnes programmām Modeļa vadītas programmas

Grupē un atgrupē ierakstus no tabulas.

Apraksts

Funkcija GroupBy atgriež tabulu ar ierakstiem, kas grupēti kopā, pamatojoties uz vērtībām vienā vai vairākās kolonnās Ieraksti vienā un tajā pašā grupā tiek ievietoti vienā ierakstā, pievienojot kolonnu, kurā ir atlikušo kolonnu ligzdotā tabula.

Funkcija Ungroup atgriež funkcijas GroupBy procesu. Šī funkcija atgriež tabulu, atsevišķos ierakstos iedalot visus ierakstus, kuri bija grupēti kopā.

Ierakstus varat grupēt, izmantojot funkciju GroupBy, pārveidot tabulu, kuru tā atgriež, un pēc tam atgrupēt ierakstus pārveidotajā tabulā, izmantojot funkciju Ungroup. Piemēram, varat noņemt ierakstu grupu, ievērojot šo pieeju:

  • Izmantojiet funkciju GroupBy.
  • Izmantojiet Filter funkciju, lai noņemtu visu ierakstu grupu.
  • Izmantojiet funkciju Ungroup.

Varat arī apkopot rezultātus, pamatojoties uz grupēšanu:

Funkcija Ungroup cenšas saglabāt sākotnējo ierakstu secību, kura tika padota funkcijai GroupBy. Tas nav vienmēr iespējams (piemēram, ja sākotnējā tabula satur tukšus ierakstus).

Tabula ir vērtība programmā Power Apps, gluži kā virkne vai skaitlis. Varat konkretizēt tabulu kā funkcijas argumentu, un funkcija var atgriezt tabulu. Funkcijas GroupBy un Ungroup nepārveido tabulu; tā vietā tās izmanto tabulu kā argumentu un atgriež citu tabulu. Papildinformāciju skatiet tēmā Darbs ar tabulām

Piezīmes

Pirms Power Apps versijas 3.24042 kolonnu nosaukumi tika norādīti ar teksta virkni, izmantojot dubultās pēdiņas, un, ja tie ir savienoti ar datu avots, tiem bija jābūt arī loģiskiem nosaukumiem. Piemēram, parādāmā vārda vietā tika izmantots loģiskais nosaukums "cr43e_name" ar dubultām pēdiņām Vārds bez pēdiņām. Datu SharePoint avotiem Excel un Excel, kuros ir kolonnu nosaukumi ar atstarpēm, katra atstarpe tika norādīta ar "_x0020_", piemēram "Kolonnas nosaukums"kā"Column_x0020_Name". Pēc šīs versijas visas programmas tika automātiski atjauninātas uz jauno sintaksi, kas aprakstīta šajā rakstā.

Sintakse

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

  • Tabula — Obligāti. Grupējamā tabula.
  • ColumnName(s) — Obligāti. Kolonnu nosaukumi Tabulā, pēc kuriem grupēt ierakstus. Šīs kolonnas kļūst par kolonnām iegūtajā tabulā.
  • GroupColumnName — Obligāti. Kolonnas nosaukums ieraksta datu glabāšanai nav ColumnNames(s).

Ungroup( Table, GroupColumnName )

  • Tabula — Obligāti. Atgrupējamā tabula.
  • GroupColumnName — Obligāti. Kolonna, kas satur ieraksta datu iestatījumu ar funkciju GroupBy.

Piemēri

Kolekcijas izveide

  1. Pievienojiet pogu un iestatiet tās Teksta rekvizītu, lai poga rādītu Sākotnējā.
  2. Iestatiet pogas Sākotnējā rekvizītu OnSelect uz šo 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}
)
  1. Turot nospiestu Alt taustiņu, atlasiet pogu Sākotnējā.

    Jūs tikko izveidojāt kolekciju ar nosaukumu CityPopulations, kurā ir šādi dati:

    CityPopulations piemērs.

  2. Lai rādītu šo kolekciju, izvēlnē Fails atlasiet Kolekcijas un pēc tam atlasiet kolekciju CityPopulations. Tiek parādīti pirmie pieci kolekcijas ieraksti:

    CityPopulations kolekcija.

Ierakstu grupēšana

  1. Pievienojiet citu pogu un iestatiet tās rekvizītu Teksts uz Grupēt.

  2. Atlasiet šīs pogas rekvizītu OnSelect uz šo formulu:

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

  3. Turot nospiestu Alt taustiņu, atlasiet pogu Grupēt.

    Jūs tikko izveidojāt kolekciju ar nosaukumu CitiesByCountry, kurā iepriekšējās kolekcijas ierakstus grupē kolonna Valsts.

    Grupētās pilsētas.

  4. Lai parādītu pirmos piecus šīs kolekcijas ierakstus, izvēlnē Fails atlasiet Kolekcijas.

    Pilsētas pēc valsts/reģiona.

  5. Lai parādītu valsts/reģiona pilsētu iedzīvotāju skaitu, atlasiet tabulas ikonu kolonnā Pilsētas šai valstij/reģionam (piemēram, Vācijai):

    Iedzīvotāju skaits — Vācijā.

Ierakstu filtrēšana un atgrupēšana

  1. Pievienojiet citu pogu un iestatiet tās Teksta rekvizītu tā, lai poga rādītu Filtrēt.

  2. Atlasiet šīs pogas rekvizītu OnSelect uz šo formulu:

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

  3. Turot nospiestu Alt taustiņu, atlasiet pievienoto pogu.

    Jūs tikko izveidojāt trešo kolekciju ar nosaukumu CitiesByCountryFiltrered, kas ietver tikai tās valstis, kuru nosaukumā ir "e" (tātad, ne Spāniju un Itāliju).

    CitiesByCountryFiltered.

  4. Pievienojiet vēl vienu pogu un iestatiet tās Teksta rekvizītu tā, lai poga rādītu Atgrupēt.

  5. Atlasiet šīs pogas rekvizītu OnSelect uz šo formulu:

    ClearCollect( CityPopulationsUngrouped, Ungroup( CitiesByCountryFiltered, Cities ) )

    Kas rezultējas:

    Pilsētas pēc valsts/reģiona pēc atgrupēšanas.

Rezultātu apkopošana

Vēl viena darbība, ko mēs varam veikt uz grupētas tabulas, ir rezultātu apkopošana. Šajā piemērā mēs apkoposim katras valsts/reģiona lielāko pilsētu iedzīvotāju skaitu.

  1. Pievienojiet citu pogu un iestatiet tās Teksta rekvizītu tā, lai poga rādītu Summēt.

  2. Iestatiet pogas Summēt rekvizītu OnSelect uz šo formulu:

    ClearCollect( CityPopulationsSum, AddColumns( CitiesByCountry, 'Pilsētu iedzīvotāju summa', Summa( Pilsētas, Iedzīvotāji ) ) )

    Kas rezultējas:

    Pilsētu apkopojums.

    AddColumns sākas ar bāzes kolekciju CitiesByCountry un pievieno jaunu kolonnu Pilsētu summa pēc iedzīvotāju skaita. Kolonnas vērtības aprēķina rindu pa rindai, pamatojoties uz formulu Sum( Cities, Population ). AddColumns nodrošina kolonnas Pilsētas (tabulas) vērtību katrai rindai, un funkcija Sum katrai šīs apakštabulas rindai pievieno Iedzīvotāju skaitu.

    Kad esam ieguvuši vēlamo summu, varam izmantot funkciju DropColumns, lai noņemtu apakštabulas.

  3. Pievienojiet citu pogu un iestatiet tās Teksta rekvizītu tā, lai poga rādītu SumOnly.

  4. Iestatiet pogas SumOnly rekvizītu OnSelect uz šo formulu:

    ClearCollect( CityPopulationsSumOnly, DropColumns( CityPopulationsSum, Cities ) )

    Kas rezultējas:

    Valstu apkopojums.

    Ņemiet vērā, ka šo tabulu nevajag atgrupēt.