GroupBy és Ungroup függvények a PowerAppsbenGroupBy and Ungroup functions in PowerApps

Csoportosítja egy tábla rekordjait, illetve megszünteti a csoportosításukat.Groups and ungroups records of a table.

LeírásDescription

A GroupBy függvény egy táblát ad vissza egy vagy több oszlop értékei szerint csoportosított rekordokkal.The GroupBy function returns a table with records grouped together based on the values in one or more columns. Az azonos csoportba tartozó rekordok egyetlen rekordba kerülnek, és a rendszer hozzáad egy oszlopot, amely a többi oszlopot tartalmazó beágyazott táblát tartalmazza.Records in the same group are placed into a single record, with a column added that holds a nested table of the remaining columns.

Az Ungroup függvény a GroupBy függvény folyamatának ellenkezőjét hajtja végre.The Ungroup function reverses the GroupBy process. Ez a függvény egy táblát ad vissza, és külön rekordokra bontja a csoportosított rekordokat.This function returns a table, breaking into separate records any records that were grouped together.

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.You can group records by using GroupBy, modify the table that it returns, and then ungroup records in the modified table by using Ungroup. Például eltávolíthat egy rekordcsoportot a következő módszerrel:For example, you can remove a group of records by following this approach:

  • Használja a GroupBy függvényt.Use the GroupBy function.
  • Használja a Filter függvényt a teljes rekordcsoport eltávolításához.Use the Filter function to remove the entire group of records.
  • Használja az Ungroup függvényt.Use the Ungroup function.

Az eredményeket összesítheti is egy csoportosítás alapján:You can also aggregate results based on a grouping:

  • Használja a GroupBy függvényt.Use the GroupBy function.
  • Használja az AddColumns függvényt a Sum, az Average és más összesítő függvényekkel egy új oszlop hozzáadásához, amely a csoporttáblákat összesíti.Use the AddColumns function with Sum, Average, and other aggregate functions to add a new column which is an aggregate of the group tables.
  • Használja a DropColumns függvényt a csoporttábla elvetéséhez.Use the DropColumns function to drop the group table.

Az Ungroup megpróbálja megőrizni a GroupBy függvény számára megadott rekordok eredeti sorrendjét.Ungroup tries to preserve the original order of the records that were fed to GroupBy. Ez nem mindig lehetséges (például ha az eredeti tábla üres rekordokat tartalmaz).This isn't always possible (for example, if the original table contains blank records).

A PowerAppsben a táblák éppúgy értékek, mint a karakterláncok vagy a számok.A table is a value in PowerApps, just like a string or a number. Megadhat egy táblát argumentumként egy függvényhez, és egy függvény visszaadhat egy táblát.You can specify a table as an argument for a function, and a function can return a table. A GroupBy és az Ungroup függvények nem módosítják a táblákat, helyette argumentumként kezelik a táblát, és egy másik táblát adnak vissza.GroupBy and Ungroup don't modify a table; instead they take a table as an argument and return a different table. További részleteket a táblákkal való munkával foglalkozó témakörben talál.See working with tables for more details.

SzintaxisSyntax

GroupBy( Table, ColumnName1 [, ColumnName2, ... ], GroupColumnName )GroupBy( Table, ColumnName1 [, ColumnName2, ... ], GroupColumnName )

  • Tábla – Kötelező.Table - Required. A csoportosítani kívánt tábla.Table to be grouped.
  • Oszlopnév – Kötelező.ColumnName(s) - Required. A Table oszlopnevei, amelyek alapján a rekordok csoportosítása történik.The column names in Table by which to group records. Ezek az oszlopok lesznek az eredményül kapott tábla oszlopai.These columns become columns in the resulting table.
  • GroupColumnName – Kötelező.GroupColumnName - Required. Az ColumnName által nem tartalmazott rekordadatok tárolójának oszlopneve.The column name for the storage of record data not in the ColumnName(s).

    Megjegyzés

    Azoknál a SharePoint- és Excel-adatforrásoknál, amelyek szóközzel ellátott oszlopneveket tartalmaznak, minden szóközt „_x0020_”-ként adjon meg.For SharePoint and Excel data sources that contain column names with spaces, specify each space as "_x0020_". Például a „Column Name” oszlopot „Column_x0020_Name” értékként adja meg.For example, specify "Column Name" as "Column_x0020_Name".

Ungroup( Table, GroupColumnName )Ungroup( Table, GroupColumnName )

  • Tábla – Kötelező.Table - Required. A tábla, amelynek a csoportosítását meg kívánja szüntetni.Table to be ungrouped.
  • GroupColumnName – Kötelező.GroupColumnName - Required. A GroupBy függvénnyel beállított rekordadatokat tartalmazó oszlop.The column that contains the record data setup with the GroupBy function.

    Megjegyzés

    Azoknál a SharePoint- és Excel-adatforrásoknál, amelyek szóközzel ellátott oszlopneveket tartalmaznak, minden szóközt „_x0020_”-ként adjon meg.For SharePoint and Excel data sources that contain column names with spaces, specify each space as "_x0020_". Például a „Column Name” oszlopot „Column_x0020_Name” értékként adja meg.For example, specify "Column Name" as "Column_x0020_Name".

PéldákExamples

Katalógus létrehozásaCreate a collection

  1. Adjon hozzá egy gombot, és állítsa be a Text tulajdonságát úgy, hogy a gomb az Original feliratot mutassa.Add a button, and set its Text property so that the button shows Original.
  2. Az Original gomb OnSelect tulajdonságához adja meg a következő képletet:Set the OnSelect property of the Original button to this formula:

    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})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})

  3. Nyomja le az F5 billentyűt, válassza az Original gombot, majd nyomja le az Esc billentyűt.Press F5, select the Original button, and then press Esc.

    Ezzel létrehozott egy CityPopulations nevű gyűjteményt, amely a következő adatokat tartalmazza:You just created a collection, named CityPopulations, that contains this data:

  4. A gyűjtemény megjelenítéséhez válassza ki a Fájl menü Gyűjtemények elemét, majd a CityPopulations gyűjteményt.To display this collection, select Collections on the File menu and then select the CityPopulations collection. A gyűjtemény első öt rekordja a következőképpen jelenik meg:The first five records in the collection appear:

Rekordok csoportosításaGroup records

  1. Adjon hozzá még egy gombot, és állítsa a Text tulajdonságát „Group” értékre.Add another button, and set its Text property to "Group".
  2. A gomb OnSelect tulajdonságához adja meg a következő képletet:Set the OnSelect property of this button to this formula:

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

  3. Nyomja le az F5 billentyűt, válassza a Group gombot, majd nyomja le az Esc billentyűt.Press F5, select the Group button, and then press Esc.

    Ezzel létrehozott egy CitiesByCountry nevű gyűjteményt, amelyben az előző gyűjtemény rekordjai a Country oszlop szerint vannak csoportosítva.You just created a collection, named CitiesByCountry, in which the records of the previous collection are grouped by the Country column.

  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.To display the first five records in this collection, select Collections on the File menu.

  5. Egy adott országban található városok lakosságának megjelenítéséhez válassza ki az ország (például Németország) Cities oszlopában található tábla ikont:To display the populations of cities in a country, select the table icon in the Cities column for that country (for example, Germany):

Rekordok szűrése és a csoportosítás megszüntetéseFilter and ungroup records

  1. Adjon hozzá még egy gombot, és állítsa be a Text tulajdonságát úgy, hogy a gomb a „Filter” feliratot mutassa.Add another button, and set its Text property so that the button shows "Filter".
  2. A gomb OnSelect tulajdonságához adja meg a következő képletet:Set the OnSelect property of this button to this formula:

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

  3. Nyomja le az F5 billentyűt, válassza ki a hozzáadott gombot, majd nyomja le az Esc billentyűt.Press F5, select the button that you added, and then press Esc.

    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).You just created a third collection, named CitiesByCountryFiltered, that includes only those countries that have an "e" in their names (that is, not Spain or Italy).

  4. Adjon hozzá még egy gombot, és állítsa be a Text tulajdonságát úgy, hogy a gomb az „Ungroup” feliratot mutassa.Add one more button, and set its Text property so that the button shows "Ungroup".
  5. A gomb OnSelect tulajdonságához adja meg a következő képletet:Set the OnSelect property of this button to this formula:

    ClearCollect( CityPopulationsUngrouped, Ungroup( CitiesByCountryFiltered, "Cities" ) )ClearCollect( CityPopulationsUngrouped, Ungroup( CitiesByCountryFiltered, "Cities" ) )

    Ez a következőt eredményezi:Which results in:

Összesített eredményekAggregate results

A csoportosított tábláknál az eredményeket is összesíteni lehet.Something else we can do with a grouped table is to aggregate the results. Ebben a példában össze fogjuk adni az egyes országok nagyobb városainak lakosságát.In this example, we will sum the population of the major cities in each country.

  1. Adjon hozzá még egy gombot, és állítsa be a Text tulajdonságát úgy, hogy a gomb a „Sum” feliratot mutassa.Add another button, and set its Text property so that the button shows "Sum".
  2. A „Sum” gomb OnSelect tulajdonságához adja meg a következő képletet:Set the OnSelect property of the "Sum" button to this formula:

    ClearCollect( CityPopulationsSum, AddColumns( CitiesByCountry, "Sum of City Populations", Sum( Cities, Population ) ) )ClearCollect( CityPopulationsSum, AddColumns( CitiesByCountry, "Sum of City Populations", Sum( Cities, Population ) ) )

    Ez a következőt eredményezi:Which results in:

    Az AddColumns hozzáadja a Sum of City Populations nevű új oszlopot az eredeti CitiesByCountry gyűjteményhez.AddColumns starts with the base CitiesByCountry collection and adds a new column Sum of City Populations. Az oszlop értékeit a rendszer soronként számítja ki a Sum( Cities, Population ) képlet alapján.This column's values are calculated row-by-row, based on the formula Sum( Cities, Population ). 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.AddColumns provides the value of the Cities column (a table) for each row, and Sum adds up the Population for each row of this sub table.

  3. Most, hogy megvan a kívánt összeg, a DropColumns függvény segítségével eltávolíthatjuk az altáblákat.Now that we have the sum that we want, we can use DropColumns to remove the sub tables. Módosítsa az OnSelect tulajdonságot úgy, hogy az alábbi képletet használja:Modify the OnSelect property to use this formula:

    ClearCollect( CityPopulationsSumOnly, DropColumns( CityPopulationsSum, "Cities" ) )ClearCollect( CityPopulationsSumOnly, DropColumns( CityPopulationsSum, "Cities" ) )

    Ez a következőt eredményezi:Which results in:

    Látható, hogy nem kellett megszüntetni a tábla csoportosítását.Note that we did not need to ungroup this table.