Share via


Funkciji GroupBy in Ungroup

Velja za: Aplikacije Canvas Aplikacije, ki temeljijo na modelu

Združi in razdruži zapisetabele.

Description

Funkcija GroupBy vrne tabelo z zapisi, združenimi v skupino na podlagi vrednosti v enem ali več stolpcih. Zapisi v isti skupini so umeščeni v en zapis, z dodanim stolpcem, ki drži ugnezdeno tabelo preostalih stolpcev.

Funkcija Ungroup razveljavi proces GroupBy. Ta funkcija vrne tabelo, pri čemer na ločene zapise loči vse zapise, ki so bili združeni v skupino.

Zapise lahko združite s funkcijo GroupBy, spremenite tabelo, ki jo vrne, nato pa razdružite zapise v spremenjeni tabeli s funkcijo Ungroup. Skupino zapisov lahko na primer odstranite po tem pristopu:

  • Uporabite funkcijo GroupBy.
  • Uporabite funkcijo Filter, da odstranite celotno skupino zapisov.
  • Uporabite funkcijo Ungroup.

Lahko tudi združite rezultate na podlagi skupine:

  • Uporabite funkcijo GroupBy.
  • Uporabite funkcijo AddColumns z Sum, Average in druge združevalne funkcije za dodajanje novega stolpca, ki je agregat skupinskih tabel.
  • Uporabite funkcijo DropColumns, da spustite tabelo skupine.

Ungroup poskuša ohraniti prvotni vrstni red zapisov, ki so bili dovedeni v GroupBy. To ni vedno mogoče (na primer, če prvotna tabela vsebuje zapise prazno).

Tabela je vrednost v rešitvi Power Apps, tako kot niz ali številka. Določite lahko tabelo kot argument za funkcijo in funkcija lahko vrne tabelo. Funkciji GroupBy in Ungroup tabele ne spremenita; vzameta jo kot argument in vrneta drugo tabelo. Za več informacij glejte delo s tabelami.

opomba,

V Power Apps pred različico 3.24042 so bila imena stolpcev podana z besedilnim nizom v dvojnih narekovajih, in če so bili povezani z vir podatkov, so morala biti tudi logična imena. Na primer, logično ime "cr43e_name" z dvojnimi narekovaji je bilo uporabljeno namesto prikazno ime Ime brez narekovajev. Za SharePoint in izvore podatkov Excel, ki vsebujejo imena stolpcev s presledki, je bil vsak presledek določen z "_x0020_", na primer "Ime stolpca" kot "Ime_stolpca_x0020". Po tej različici so bile vse aplikacije samodejno posodobljene na novo sintakso, opisano v tem članku.

Sintaksa

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

  • Table – obvezno. Tabela, ki jo je treba združiti.
  • ColumnName(s) – obvezno. Imena stolpcev v možnosti Table, po kateri se zapisi združijo. Ti stolpci postanejo stolpci v pridobljeni tabeli.
  • GroupColumnName – obvezno. Ime stolpca za shranjevanje podatkov zapisa ni v ColumnName(s).

Ungroup( Table, GroupColumnName )

  • Table – obvezno. Tabela, ki jo je treba razdružiti.
  • GroupColumnName – obvezno. Stolpec, ki vsebuje nastavitev podatkov zapisa s funkcijo GroupBy.

Primeri

Ustvarjanje zbirke

  1. Dodajte gumb in nastavite lastnost Besedilo zanj, tako da gumb prikazuje Prvotno.
  2. Nastavite lastnost OnSelect gumba Prvotno na to formulo:
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. Medtem ko držite tipko Alt, izberite gumb Prvotno.

    Pravkar ste ustvarili zbirko, imenovano CityPopulations, ki vsebuje te podatke:

    Primer CityPopulations.

  2. Če želite prikazati to zbirko, izberite Zbirke v meniju Datoteka in nato izberite zbirko CityPopulations. Prikaže se prvih pet zapisov v zbirki:

    Zbirka CityPopulations.

Združevanje zapisov

  1. Dodajte še en gumb in nastavite njegovo lastnost Besedilo na "Group".

  2. Nastavite lastnost OnSelect tega gumba na to formulo:

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

  3. Medtem ko držite tipko Alt, izberite gumb Združi.

    Pravkar ste ustvarili zbirko, imenovano CitiesByCountry, v kateri so zapisi prejšnje zbirke združeni po stolpcu Country.

    Združena mesta.

  4. Če želite prikazati prvih pet zapisov v tej zbirki, izberite Zbirke v meniju Datoteka.

    Mesta po državi/regiji.

  5. Če želite prikazati prebivalstvo mest v državi/regiji, izberite ikono tabele v Mesta stolpcu za to državo/regijo (na primer Nemčija):

    Prebivalstvo – Nemčija.

Filtriranje in razdruževanje zapisov

  1. Dodajte še en gumb in nastavite lastnost Besedilo zanj, tako da gumb prikazuje "Filter".

  2. Nastavite lastnost OnSelect tega gumba na to formulo:

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

  3. Medtem ko držite tipko Alt, izberite gumb, ki ste ga dodali.

    Pravkar ste ustvarili tretjo zbirko, imenovano CitiesByCountryFiltered, ki vključuje samo tiste države/regije, ki imajo v imenu »e« (torej ne Španija in Italija).

    CitiesByCountryFiltered.

  4. Dodajte še en gumb in nastavite lastnost Besedilo zanj, tako da gumb prikazuje "Ungroup".

  5. Nastavite lastnost OnSelect tega gumba na to formulo:

    ClearCollect(CityPopulationsUngrouped, Ungroup(CitiesByCountryFiltered, Cities))

    Rezultat je:

    Mesta po državi/regiji po razdružitvi.

Združeni rezultati

Druga operacija, ki jo lahko izvedemo na združeni tabeli, je sestavljanje rezultatov. V tem primeru bomo sešteli prebivalstvo večjih mest v vsaki državi/regiji.

  1. Dodajte še en gumb in nastavite lastnost Besedilo zanj, tako da gumb prikazuje "Sum".

  2. Nastavite lastnost OnSelect gumba "Sum" na to formulo:

    ClearCollect( CityPopulationsSum, AddColumns( CitiesByCountry, 'Vsota prebivalcev mest', Sum( mesta, prebivalstvo) ) )

    Rezultat je:

    Vsota mest.

    AddColumns se začne z osnovno zbirko CitiesByCountry in doda nov stolpec Sum of City Populations. Vrednosti tega stolpca so izračunane vrstica za vrstico na podlagi formule Sum( Cities, Population ). AddColumns zagotavlja vrednost stolpca Cities (tabela) za vsako vrstico in Sum sešteje možnost Population za vsako vrstico te podtabele.

    Zdaj, ko imamo želeno vsoto, lahko uporabimo DropColumns za odstranjevanje podtabel.

  3. Dodajte še en gumb in nastavite lastnost Besedilo zanj, tako da gumb prikazuje "SumOnly".

  4. Nastavite lastnost OnSelect gumba "SumOnly" na to formulo:

    ClearCollect( CityPopulationsSumOnly, DropColumns( CityPopulationsSum, Cities) )

    Rezultat je:

    Vsota držav.

    Upoštevajte, da ni bilo treba razdružiti te tabele.