GroupBy és Ungroup függvények

A következőkre vonatkozik: Vászonalapú alkalmazások Modellvezérelt alkalmazások

Csoportosítja egy táblarekordjait, illetve megszünteti a csoportosításukat.

Description

A GroupBy függvény egy táblát ad vissza egy vagy több oszlop értékei szerint csoportosított rekordokkal. Az azonos csoportba tartozó rekordok egyetlen rekordba kerülnek, és a rendszer hozzáad egy olyan oszlopot, amely a többi oszlopot tartalmazó beágyazott táblát tartalmazza.

Az Ungroup függvény a GroupBy függvény műveletének ellenkezőjét hajtja végre. Ez a függvény egy táblát ad vissza, és külön rekordokra bontja a csoportosított rekordokat.

Csoportosíthatja a rekordokat a GroupBy függvénnyel, módosíthatja a visszaadott táblázatot, majd megszüntetheti a rekordok csoportosítását a módosított táblában az Ungroup függvénnyel. Eltávolíthat például egy rekordcsoportot a következő módszerrel:

  • Használja a GroupBy függvényt.
  • Használja a Filter függvényt a teljes rekordcsoport eltávolításához.
  • Használja az Ungroup függvényt.

Az eredményeket egy csoportosítás alapján összesítheti is:

Az Ungroup megpróbálja megőrizni a GroupBy függvény számára megadott rekordok eredeti sorrendjét. Ez nem mindig lehetséges (például ha az eredeti tábla üres rekordokat tartalmaz).

A táblák éppúgy értékek a Power Apps rendszerben, mint a sztringek vagy a számok, Megadhat egy táblát argumentumként egy függvényhez, és egy függvény visszaadhat egy táblát. A GroupBy és az Ungroup nem módosítja a táblákat, argumentumként kezeli őket, és egy másik táblát ad vissza. További részleteket a táblákkal való munkával foglalkozó témakörben talál.

Feljegyzés

A Power Apps 3.24042 verzió előtt az oszlopneveket idézőjelbe tett szöveges karakterlánccal adták meg, és ha adatforrás kapcsolódtak, logikai neveknek is kellett lenniük. Például a "cr43e_name" logikai nevet idézőjelek nélkül használtuk a megjelenítendő név Név idézőjelek nélkül. A szóközöket tartalmazó oszlopneveket tartalmazó Excel-adatforrások esetében SharePoint minden szóköz a "_x0020_" szóval lett megadva, például "Oszlopnév" mint "Column_x0020_Name". Ezt a verziót követően az összes alkalmazás automatikusan frissült a cikkben ismertetett új szintaxisra.

Szintaxis

GroupBy( Tábla, Oszlopnév1 [, Oszlopnév2, ... ], CsoportOszlopnév )

  • Tábla – Kötelező megadni. A csoportosítani kívánt tábla.
  • Oszlopnév – Kötelező. A Tábla oszlopnevei, amelyek alapján a rekordok csoportosítása történik. Ezek az oszlopok lesznek az eredményül kapott tábla oszlopai.
  • CsoportOszlopnév – Kötelező. Az Oszlopnevek között nem tartalmazott rekordadatok tárolójának oszlopneve.

Ungroup( Tábla, CsoportOszlopnév )

  • Tábla – Kötelező megadni. A tábla, amelynek a csoportosítását meg kívánja szüntetni.
  • CsoportOszlopnév – Kötelező. A GroupBy függvénnyel beállított rekordadatokat tartalmazó oszlop.

Példák

Gyűjtemény létrehozása

  1. Adjon hozzá egy gombot, és állítsa be a Text tulajdonságát úgy, hogy a gomb az Eredeti feliratot mutassa.
  2. Az Eredeti gomb OnSelect tulajdonságához adja meg a következő képletet:
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. Az Alt billentyűt lenyomva tartva válassza ki az Eredeti gombot.

    Ezzel létrehozott egy VárosokNépessége nevű gyűjteményt, amely a következő adatokat tartalmazza:

    CityPopulations példa.

  2. A gyűjtemény megjelenítéséhez válassza ki a Fájl menü Gyűjtemények elemét, majd a VárosokNépessége gyűjteményt. A gyűjtemény első öt rekordja a következőképpen jelenik meg:

    CityPopulations gyűjtemény.

Rekordok csoportosítása

  1. Adjon hozzá még egy gombot, és állítsa a Text tulajdonságát „Csoport” értékre.

  2. A gomb OnSelect tulajdonságához adja meg a következő képletet:

    ClearCollect( CitiesByCountry, GroupBy( CityPopulations, Ország, Városok ) )

  3. Az Alt billentyűt lenyomva tartva válassza ki a Csoport gombot.

    Ezzel létrehozott egy CitiesByCountry nevű gyűjteményt, amelyben az előző gyűjtemény rekordjai az Ország oszlop szerint vannak csoportosítva.

    Csoportosított városok.

  4. A gyűjtemény első öt rekordjának megjelenítéséhez válassza ki a Fájl menü Gyűjtemények elemét.

    Városok ország/régió szerint.

  5. Egy ország/régió városainak népességének megjelenítéséhez válassza az adott ország/régió (például Németország) Városok oszlopában található táblázat ikont:

    Népesség – Németország.

Rekordok szűrése és a csoportosításuk megszüntetése

  1. Adjon hozzá még egy gombot, és állítsa be a Text tulajdonságát úgy, hogy a gomb a „Szűrő” feliratot mutassa.

  2. A gomb OnSelect tulajdonságához adja meg a következő képletet:

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

  3. Az Alt billentyűt lenyomva tartva válassza ki a hozzáadott gombot.

    Ezzel létrehozott egy harmadik gyűjteményt CitiesByCountryFiltered néven, amely csak azokat az országokat tartalmazza, amelyeknek a neve „e” betűt tartalmaz (tehát a „Spain” és az „Italy” elem nincs köztük).

    CitiesByCountryFiltered.

  4. Adjon hozzá még egy gombot, és állítsa be a Text tulajdonságát úgy, hogy a gomb a „Csoportosítás megszüntetése” feliratot mutassa.

  5. A gomb OnSelect tulajdonságához adja meg a következő képletet:

    ClearCollect( CityPopulationsUngrouped, Ungroup( CitiesByCountryFiltered, Cities ) )

    Ez a következőt eredményezi:

    Városok ország/régió szerint a csoportbontás után.

Eredmények összesítése

Egy másik művelet, amelyet egy csoportosított táblán végezhetünk, az eredmények összeállítása. Ebben a példában összegezzük az egyes országok/régiók nagyobb városainak népességét.

  1. Adjon hozzá még egy gombot, és állítsa be a Text tulajdonságát úgy, hogy a gomb az „Összeg” feliratot mutassa.

  2. Az „Összeg” gomb OnSelect tulajdonságához adja meg a következő képletet:

    ClearCollect( CityPopulationsSum, AddColumns( CitiesByCountry, 'Várospopulációk összege', Sum( Városok, Népesség ) ) )

    Ez a következőt eredményezi:

    Városok összesen.

    Az AddColumns hozzáadja a Városi népesség összege nevű új oszlopot az eredeti CitiesByCountry gyűjteményhez. Az oszlop értékeit a rendszer soronként számítja ki a Sum( Cities, Population ) képlet alapján. Az AddColumns hozzárendel egy (tábla) értéket a Cities oszlop összes sorához, a Sum pedig összeadja a Population értékeit az altábla összes sorában.

    Most, hogy megvan a kívánt összeg, a DropColumns függvény segítségével eltávolíthatjuk az altáblákat.

  3. Adjon hozzá még egy gombot, és állítsa be a Text tulajdonságát úgy, hogy a gomb a „CsakÖsszeg” feliratot mutassa.

  4. A „CsakÖsszeg” gomb OnSelect tulajdonságához adja meg a következő képletet:

    ClearCollect( CityPopulationsSumOnly, DropColumns( CityPopulationsSum, városok ) )

    Ez a következőt eredményezi:

    Országok összesen.

    Látható, hogy nem kellett megszüntetni a tábla csoportosítását.