Funkciji GroupBy in Ungroup
Velja za: Aplikacije Canvas Aplikacije, ki temeljijo na modelu Power Pages
Združi in razdruži zapise tabele.
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 posredovani 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. GroupBy in Ungroup ne spreminjata tabele; namesto tega vzamejo tabelo kot argument in vrnejo 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 z dvojnimi narekovaji, 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
Združi po( Tabela, ImeStolpca1 [, ImeStolpca2 , ... ], GroupColumnName )
- Tabela - obvezno. Tabela, ki jo je treba združiti.
- Imena stolpcev - obvezno. Imena stolpcev v možnosti Table, po kateri se zapisi združijo. Ti stolpci postanejo stolpci v pridobljeni tabeli.
- GroupColumnName - Zahtevano. Ime stolpca za shranjevanje podatkov zapisa ni v ColumnName(s).
Razdruži( Tabela, ImeStolpcaSkupine )
- Tabela - obvezno. Tabela, ki jo je treba razdružiti.
- GroupColumnName - Zahtevano. Stolpec, ki vsebuje nastavitev podatkov zapisa s funkcijo GroupBy.
Primeri
Ustvarjanje zbirke
- Dodajte gumb in nastavite lastnost Besedilo zanj, tako da gumb prikazuje Prvotno.
- 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}
)
Medtem ko držite tipko Alt, izberite gumb Prvotno.
Pravkar ste ustvarili zbirko, imenovano CityPopulations, ki vsebuje te podatke:
Če želite prikazati to zbirko, izberite Zbirke v meniju Datoteka in nato izberite zbirko CityPopulations. Prikaže se prvih pet zapisov v zbirki:
Združevanje zapisov
Dodajte še en gumb in nastavite njegovo lastnost Besedilo na "Group".
Nastavite lastnost OnSelect tega gumba na to formulo:
ClearCollect(CitiesByCountry, GroupBy(CityPopulations, Country, Cities) )
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.
Če želite prikazati prvih pet zapisov v tej zbirki, izberite Zbirke v meniju Datoteka.
Če želite prikazati prebivalstvo mest v državi/regiji, izberite ikono tabele v stolpcu Mesta za to državo/regijo (na primer Nemčija):
Filtriranje in razdruževanje zapisov
Dodajte še en gumb in nastavite lastnost Besedilo zanj, tako da gumb prikazuje "Filter".
Nastavite lastnost OnSelect tega gumba na to formulo:
ClearCollect( CitiesByCountryFiltered, Filter( CitiesByCountry, "e" v državi) )
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).
Dodajte še en gumb in nastavite lastnost Besedilo zanj, tako da gumb prikazuje "Ungroup".
Nastavite lastnost OnSelect tega gumba na to formulo:
ClearCollect(CityPopulationsUngrouped, Ungroup(CitiesByCountryFiltered, Cities))
Rezultat je:
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.
Dodajte še en gumb in nastavite lastnost Besedilo zanj, tako da gumb prikazuje "Sum".
Nastavite lastnost OnSelect gumba "Sum" na to formulo:
ClearCollect( CityPopulationsSum, AddColumns( CitiesByCountry, 'Vsota mestnih prebivalcev', Sum( mesta, prebivalstvo) ) )
Rezultat je:
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 Cities stolpca (tabela) za vsako vrstico in Sum sešteje populacijo za vsako vrstico te podtabele.
Zdaj, ko imamo želeno vsoto, lahko uporabimo DropColumns za odstranjevanje podtabel.
Dodajte še en gumb in nastavite lastnost Besedilo zanj, tako da gumb prikazuje "SumOnly".
Nastavite lastnost OnSelect gumba "SumOnly" na to formulo:
ClearCollect( CityPopulationsSumOnly, DropColumns( CityPopulationsSum, Cities) )
Rezultat je:
Upoštevajte, da ni bilo treba razdružiti te tabele.