Funcțiile GroupBy și Ungroup
Se aplică pentru: planșă de lucru apps Aplicații bazate pe model Power Pages
Grupează și anulează gruparea pentru înregistrări ale unui tabel.
Descriere
Funcția GroupBy returnează un tabel cu înregistrări grupate pe baza valorilor în una sau mai multe coloane. Înregistrările din același grup sunt plasate într-o singură înregistrare, cu o coloană adăugată care deține un tabel imbricat al coloanelor rămase.
Funcția Ungroup inversează procesul GroupBy. Această funcție returnează un tabel, divizând în înregistrări separate înregistrările grupate.
Puteți să grupați înregistrări folosind GroupBy, să modificați tabelul pe care îl returnează și apoi să anulați gruparea înregistrărilor din tabelul modificat utilizând Ungroup. De exemplu, puteți elimina un grup de înregistrări urmând această abordare:
- Utilizați funcția GroupBy.
- Utilizați funcția Filter pentru a elimina întregul grup de înregistrări.
- Utilizați funcția Ungroup.
Puteți, de asemenea, agrega rezultatele pe baza unei grupări:
- Utilizați funcția GroupBy.
- Utilizați funcția AddColumns cu Suma, Medie, și alte funcții de agregare pentru a adăuga o nouă coloană, care este un agregat al tabelelor de grup.
- Utilizați funcția DropColumns pentru a renunța la tabelul din grup.
Ungroup încearcă să păstreze ordinea inițială a înregistrărilor care au fost introduse în GroupBy. Acest lucru nu este întotdeauna posibil (de exemplu, dacă tabelul original conține înregistrări goale).
Un tabel este o valoare în Power Apps, la fel ca un șir sau un număr. Puteți specifica un tabel ca argument pentru o funcție, iar o funcție poate returna un tabel. GroupBy și Degrupare nu modifică un tabel; în schimb, ei iau un tabel ca argument și returnează un tabel diferit. Pentru mai multe detalii, consultați lucrul cu tabele.
Notă
În Power Apps înainte de versiunea 3.24042, numele coloanelor erau specificate cu un șir de text folosind ghilimele duble și, dacă erau conectate la un sursă de date, trebuiau să fie și nume logice. De exemplu, numele logic „cr43e_name” cu ghilimele duble a fost folosit în locul numelui afișat Nume fără ghilimele. Pentru sursele de date SharePoint și Excel care conțin nume de coloane cu spații, fiecare spațiu a fost specificat cu „_x0020_”, de exemplu „Column Name” as „Column_x0020_Name”. După această versiune, toate aplicațiile au fost actualizate automat la noua sintaxă descrisă în acest articol.
Sintaxă
GroupBy( Tabel, ColumnName1 [, ColumnName2 , ... ], GroupColumnName )
- Tabel - Obligatoriu. Tabelul care urmează să fie grupat.
- ColumnNames - Obligatoriu. Numele coloanei din Tabel prin care să fie grupate înregistrările. Aceste coloane devin coloane în tabelul rezultat.
- GroupColumnName - Obligatoriu. Numele coloanei pentru stocarea datelor înregistrate care nu se află în ColumnName(s).
Degrupați( Tabel, GroupColumnName )
- Tabel - Obligatoriu. Tabelul pentru care urmează să fie anulată gruparea.
- GroupColumnName - Obligatoriu. Coloana care conține configurarea datelor de înregistrare cu funcția GroupBy.
Exemple
Creați o colecție
- Adăugați un buton și setați proprietatea Text astfel încât butonul să arate Original.
- Setați proprietatea OnSelect a butonului Original la această formulă:
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}
)
În timp ce țineți apăsată tasta Alt, selectați butonul Original.
Tocmai ați creat o colecție, numită CityPopulations, care conține aceste date:
Pentru a afișa această colecție, selectați Colecții din meniul Fișierului, apoi selectați colecția CityPopulations. Primele cinci înregistrări din colecție apar:
Grupare înregistrări
Adăugați alt buton și setați proprietatea Text la "Group".
Setați proprietatea OnSelect a acestui buton la această formulă:
ClearCollect(CitiesByCountry, GroupBy( CityPopulations, Country, Cities))
În timp ce țineți apăsată tasta Alt, selectați butonul Group.
Tocmai ai creat o colecție denumită CitiesByCountry, în care înregistrările colecției anterioare sunt grupate după coloana Țară.
Pentru a afișa primele cinci înregistrări din această colecție, selectați Colecții în meniul Fișier.
Pentru a afișa populația orașelor dintr-o țară/regiune, selectați pictograma tabel din coloana Orașe pentru acea țară/regiune (de exemplu, Germania):
Filtrați înregistrări și anulați gruparea
Adăugați un alt buton și setați proprietatea Text astfel încât butonul să arate "Filter".
Setați proprietatea OnSelect a acestui buton la această formulă:
ClearCollect(CitiesByCountryFiltered, Filter(CitiesByCountry, „e” în țară))
În timp ce țineți apăsată tasta Alt, selectați butonul pe care l-ați adăugat.
Tocmai ai creat o a treia colecție, pe nume CitiesByCountryFiltered, care include doar acele țări care au un "e" în numele lor (adică nu Spania sau Italia).
Adăugați încă un buton și setați proprietatea Text astfel încât butonul să arate "Ungroup".
Setați proprietatea OnSelect a acestui buton la această formulă:
ClearCollect( CityPopulationsUngrouped, Ungroup( CitiesByCountryFiltered, Cities ) )
Care are ca rezultat:
Rezultate agregate
O altă operație pe care o putem efectua pe un tabel grupat este compilarea rezultatelor. În acest exemplu, vom aduna populația orașelor majore din fiecare țară/regiune.
Adăugați un alt buton și setați proprietatea Text astfel încât butonul să arate "Sum".
Setați proprietatea OnSelect a butonului "Sum" la această formulă:
ClearCollect( CityPopulationsSum, AddColumns( CitiesByCountry, 'Suma populaţiilor oraşelor', Sum( Cities, Population ) ) )
Care are ca rezultat:
AddColumns începe cu colecția de bază CitiesByCountry și adaugă o nouă coloană Suma populațiilor orașelor. Valorile acestei coloane sunt calculate rând cu rând, pe baza formulei Sumă (Orașe, Populație). AddColumns oferă valoarea coloanei Orașe (un tabel) pentru fiecare rând și Suma adună Populația pentru fiecare rând al acestui subtabel.
Acum că avem suma pe care o dorim, putem folosi DropColumns pentru a elimina sub-tabelele.
Adăugați un alt buton și setați proprietatea Text astfel încât butonul să arate "SumOnly".
Setați proprietatea OnSelect a butonului "SumOnly" la această formulă:
ClearCollect( CityPopulationsSumOnly, DropColumns( CityPopulationsSum, Cities ) )
Care are ca rezultat:
Rețineți că nu a fost nevoie să anulăm gruparea în cazul acestui tabel.