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:
- Használja a GroupBy függvényt.
- Az AddColumns függvényt a Sum,Average... és más összesítő függvényekkel együtt használva új oszlopot vehet fel, amely a csoporttáblák összesítése.
- Használja a DropColumns függvényt a csoporttábla elvetéséhez.
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
- Adjon hozzá egy gombot, és állítsa be a Text tulajdonságát úgy, hogy a gomb az Eredeti feliratot mutassa.
- 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}
)
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:
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:
Rekordok csoportosítása
Adjon hozzá még egy gombot, és állítsa a Text tulajdonságát „Csoport” értékre.
A gomb OnSelect tulajdonságához adja meg a következő képletet:
ClearCollect( CitiesByCountry, GroupBy( CityPopulations, Ország, Városok ) )
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.
A gyűjtemény első öt rekordjának megjelenítéséhez válassza ki a Fájl menü Gyűjtemények elemét.
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:
Rekordok szűrése és a csoportosításuk megszüntetése
Adjon hozzá még egy gombot, és állítsa be a Text tulajdonságát úgy, hogy a gomb a „Szűrő” feliratot mutassa.
A gomb OnSelect tulajdonságához adja meg a következő képletet:
ClearCollect( CitiesByCountryFiltered, Filter( CitiesByCountry, "e" in Country ) )
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).
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.
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:
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.
Adjon hozzá még egy gombot, és állítsa be a Text tulajdonságát úgy, hogy a gomb az „Összeg” feliratot mutassa.
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:
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.
Adjon hozzá még egy gombot, és állítsa be a Text tulajdonságát úgy, hogy a gomb a „CsakÖsszeg” feliratot mutassa.
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:
Látható, hogy nem kellett megszüntetni a tábla csoportosítását.