Partajați prin


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 înregistrate î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 Ungroup nu modifică un tabel, ci iau un tabel ca argument și returnează un alt tabel. 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( Table, ColumnName1 [, ColumnName2, ... ], GroupColumnName )

  • Table – Obligatoriu. Tabelul care urmează să fie grupat.
  • ColumnName(s) - 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).

Ungroup( Table, GroupColumnName )

  • Table – 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

  1. Adăugați un buton și setați proprietatea Text astfel încât butonul să arate Original.
  2. 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}
)
  1. Î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:

    Exemplu CityPopulations.

  2. 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:

    Colecția CityPopulations.

Grupare înregistrări

  1. Adăugați alt buton și setați proprietatea Text la "Group".

  2. Setați proprietatea OnSelect a acestui buton la această formulă:

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

  3. Î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ă.

    Orașe grupate.

  4. Pentru a afișa primele cinci înregistrări din această colecție, selectați Colecții în meniul Fișier.

    Orașe după țară/regiune.

  5. 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):

    Populație - Germania.

Filtrați înregistrări și anulați gruparea

  1. Adăugați un alt buton și setați proprietatea Text astfel încât butonul să arate "Filter".

  2. Setați proprietatea OnSelect a acestui buton la această formulă:

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

  3. Î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).

    CitiesByCountryFiltered.

  4. Adăugați încă un buton și setați proprietatea Text astfel încât butonul să arate "Ungroup".

  5. Setați proprietatea OnSelect a acestui buton la această formulă:

    ClearCollect( CityPopulationsUngrouped, Ungroup( CitiesByCountryFiltered, Cities ) )

    Care are ca rezultat:

    Orașe după țară/regiune după degrupare.

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.

  1. Adăugați un alt buton și setați proprietatea Text astfel încât butonul să arate "Sum".

  2. 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:

    Suma orașelor.

    AddColumns începe cu colecția de bază CitiesByCountry și adaugă o nouă coloană Suma populației din oraș. Valorile acestei coloane sunt calculate rând cu rând, pe baza formulei Sumă (Orașe, Populație). AddColumns furnizează valoarea coloanei Orașe (un tabel) pentru fiecare rând și Sum adaugă Populație pentru fiecare rând al acestui subtabel.

    Acum că avem suma pe care o dorim, putem folosi DropColumns pentru a elimina sub-tabelele.

  3. Adăugați un alt buton și setați proprietatea Text astfel încât butonul să arate "SumOnly".

  4. Setați proprietatea OnSelect a butonului "SumOnly" la această formulă:

    ClearCollect( CityPopulationsSumOnly, DropColumns( CityPopulationsSum, Cities ) )

    Care are ca rezultat:

    Suma țărilor.

    Rețineți că nu a fost nevoie să anulăm gruparea în cazul acestui tabel.