Funkcie GroupBy a Ungroup v službe PowerAppsGroupBy and Ungroup functions in PowerApps

Zoskupia o oddelia záznamy v tabuľke.Groups and ungroups records of a table.

PopisDescription

Funkcia GroupBy vráti tabuľku so záznamami zoskupenými na základe hodnôt v jednom alebo viacerých stĺpcoch.The GroupBy function returns a table with records grouped together based on the values in one or more columns. Záznamy v rovnakej skupine sú umiestnené do jedného záznamu s pridaným stĺpcom, v ktorom je vnorená tabuľka zostávajúcich stĺpcov.Records in the same group are placed into a single record, with a column added that holds a nested table of the remaining columns.

Funkcia Ungroup je opakom funkcie GroupBy.The Ungroup function reverses the GroupBy process. Táto funkcia vráti tabuľku, v ktorej sú všetky záznamy, ktoré boli zoskupené, rozdelené na samostatné záznamy.This function returns a table, breaking into separate records any records that were grouped together.

Záznamy môžete zoskupiť pomocou funkcie GroupBy, upraviť vrátenú tabuľku a potom záznamy v tejto upravenej tabuľke oddeliť pomocou funkcie Ungroup.You can group records by using GroupBy, modify the table that it returns, and then ungroup records in the modified table by using Ungroup. Týmto postupom môžete napríklad odobrať skupinu záznamov:For example, you can remove a group of records by following this approach:

  • Použite funkciu GroupBy.Use the GroupBy function.
  • Pomocou funkcie Filter odoberte celú skupinu záznamov.Use the Filter function to remove the entire group of records.
  • Použite funkciu Ungroup.Use the Ungroup function.

Výsledky môžete tiež agregovať na základe zoskupenia:You can also aggregate results based on a grouping:

  • Použite funkciu GroupBy.Use the GroupBy function.
  • Pomocou funkcie AddColumns s funkciami Sum, Average a inými agregačnými funkciami pridajte nový stĺpec, ktorý je agregáciou zoskupených buniek.Use the AddColumns function with Sum, Average, and other aggregate functions to add a new column which is an aggregate of the group tables.
  • Pomocou funkcie DropColumns zoskupenú tabuľku zrušte.Use the DropColumns function to drop the group table.

Funkcia Ungroup sa snaží zachovať pôvodné poradie záznamov predaných funkcii GroupBy.Ungroup tries to preserve the original order of the records that were fed to GroupBy. To nie je vždy možné (napríklad keď pôvodná tabuľka obsahuje prázdne záznamy).This isn't always possible (for example, if the original table contains blank records).

Tabuľke je v PowerApps hodnotou, rovnako ako napríklad reťazec alebo číslo.A table is a value in PowerApps, just like a string or a number. Tabuľku môžete zadať ako argument funkcie, pričom funkcia môže vrátiť tabuľku.You can specify a table as an argument for a function, and a function can return a table. Funkcie GroupBy a Ungroup tabuľku nemenia. Namiesto toho prevezmú tabuľku ako argument a vrátia inú tabuľku.GroupBy and Ungroup don't modify a table; instead they take a table as an argument and return a different table. Ďalšie podrobnosti nájdete v časti týkajúcej sa práce s tabuľkami.See working with tables for more details.

SyntaxSyntax

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

  • Table – povinné.Table - Required. Tabuľka, ktoré sa má zoskupiť.Table to be grouped.

  • ColumnName(s) – povinné.ColumnName(s) - Required. Názvy stĺpcov v Tabuľke, podľa ktorých sa majú záznamy zoskupiť.The column names in Table by which to group records. Z týchto stĺpcov sa stanú stĺpce vo výslednej tabuľke.These columns become columns in the resulting table.

  • GroupColumnName – povinné.GroupColumnName - Required. Názov stĺpca na uloženie údajov záznamov, ktoré nie sú v ColumnName(s).The column name for the storage of record data not in the ColumnName(s).

    Poznámka

    V prípade sharepointových a excelových zdrojov údajov obsahujúcich názvy stĺpcov s medzerami zadajte každú medzeru takto: „_x0020_“.For SharePoint and Excel data sources that contain column names with spaces, specify each space as "_x0020_". Namiesto "Názov stĺpca" teda zadajte "Názov_x0020_stĺpca".For example, specify "Column Name" as "Column_x0020_Name".

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

  • Table – povinné.Table - Required. Tabuľka, ktoré sa má oddeliť.Table to be ungrouped.

  • GroupColumnName – povinné.GroupColumnName - Required. Stĺpec obsahujúci údaje záznamov nastavených pomocou funkcie GroupBy.The column that contains the record data setup with the GroupBy function.

    Poznámka

    V prípade sharepointových a excelových zdrojov údajov obsahujúcich názvy stĺpcov s medzerami zadajte každú medzeru takto: „_x0020_“.For SharePoint and Excel data sources that contain column names with spaces, specify each space as "_x0020_". Namiesto Názov stĺpca teda zadajte Názov_x0020_stĺpca.For example, specify "Column Name" as "Column_x0020_Name".

PríkladyExamples

Vytvorenie kolekcieCreate a collection

  1. Pridajte tlačidlo a nastavte jeho vlastnosť Text tak, aby zobrazovalo Original.Add a button, and set its Text property so that the button shows Original.

  2. Nastavte vlastnosť OnSelect tlačidla Original na tento vzorec:Set the OnSelect property of the Original button to this formula:

    ClearCollect(CityPopulations, {City:"Londýn", Country:"Spojené kráľovstvo", Population:8615000}, {City:"Berlín", Country:"Nemecko", Population:3562000}, {City:"Madrid", Country:"Španielsko", Population:3165000}, {City:"Rím", Country:"Taliansko", Population:2874000}, {City:"Paríž", Country:"Francúzsko", Population:2273000}, {City:"Hamburg", Country:"Nemecko", Population:1760000}, {City:"Barcelona", Country:"Španielsko", Population:1602000}, {City:"Mníchov", Country:"Nemecko", Population:1494000}, {City:"Miláno", Country:"Taliansko", 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. Podržte stlačený kláves Alt a vyberte tlačidlo Original.While holding down the Alt key, select the Original button.

    Práve ste vytvorili kolekciu s názvom CityPopulations, ktorá obsahuje nasledujúce údaje:You just created a collection, named CityPopulations, that contains this data:

  4. Túto kolekciu zobrazíte tak, že v ponuke Súbor vyberiete Kolekcie a potom vyberiete kolekciu CityPopulations.To display this collection, select Collections on the File menu and then select the CityPopulations collection. Zobrazí sa prvých päť záznamov v tejto kolekcii:The first five records in the collection appear:

Zoskupenie záznamovGroup records

  1. Pridajte ďalšie tlačidlo a jeho vlastnosť Text nastavte na Group.Add another button, and set its Text property to "Group".

  2. Vlastnosť OnSelect tohto tlačidla nastavte na tento vzorec:Set the OnSelect property of this button to this formula:

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

  3. Podržte stlačený kláves Alt a vyberte tlačidlo Group.While holding down the Alt key, select the Group button.

    Práve ste vytvorili kolekciu s názvom CitiesByCountry, v ktorej sú záznamy predchádzajúcej kolekcie zoradené podľa stĺpca Country.You just created a collection, named CitiesByCountry, in which the records of the previous collection are grouped by the Country column.

  4. Ak chcete zobraziť prvých päť záznamov v tejto kolekcii, vyberte Kolekcie v ponuke Súbor.To display the first five records in this collection, select Collections on the File menu.

  5. Ak chcete zobraziť počet obyvateľov miest v určitej krajine, vyberte ikonu tabuľky v stĺpci Cities príslušnej krajiny (napríklad Nemecka):To display the populations of cities in a country, select the table icon in the Cities column for that country (for example, Germany):

Filtrovanie a oddelenie záznamovFilter and ungroup records

  1. Pridajte ďalšie tlačidlo a nastavte jeho vlastnosť Text tak, aby zobrazovalo Filter.Add another button, and set its Text property so that the button shows "Filter".

  2. Vlastnosť OnSelect tohto tlačidla nastavte na tento vzorec:Set the OnSelect property of this button to this formula:

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

  3. Podržte stlačený kláves Alt a vyberte tlačidlo, ktoré ste pridali.While holding down the Alt key, select the button that you added.

    Práve ste vytvorili tretiu kolekciu s názvom CitiesByCountryFiltered, ktorá obsahuje iba krajiny s písmenom „a“ v názve (napríklad Španielsko alebo Taliansko).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. Pridajte ešte jedno tlačidlo a jeho vlastnosť Text nastavte tak, aby zobrazovalo Ungroup.Add one more button, and set its Text property so that the button shows "Ungroup".

  5. Vlastnosť OnSelect tohto tlačidla nastavte na tento vzorec:Set the OnSelect property of this button to this formula:

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

    Výsledok bude nasledujúci:Which results in:

Agregácia výsledkovAggregate results

V zoskupenej tabuľke je možné agregovať výsledky.Something else we can do with a grouped table is to aggregate the results. V tomto príklade spočítame počet obyvateľov hlavných miest v jednotlivých krajinách.In this example, we will sum the population of the major cities in each country.

  1. Pridajte ďalšie tlačidlo a jeho vlastnosť Text nastavte tak, aby zobrazovalo Sum.Add another button, and set its Text property so that the button shows "Sum".

  2. Vlastnosť OnSelect tlačidla Sum nastavte na tento vzorec: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 ) ) )

    Výsledok bude nasledujúci:Which results in:

    Funkcia AddColumns začne so základnou kolekciou CitiesByCountry a pridá nový stĺpec Sum of City Populations.AddColumns starts with the base CitiesByCountry collection and adds a new column Sum of City Populations. Hodnoty v tomto stĺpci sa počítajú riadok po riadku na základe vzorca Sum( Cities, Population ).This column's values are calculated row-by-row, based on the formula Sum( Cities, Population ). Funkcia AddColumns poskytuje hodnotu stĺpca Cities (tabuľku) pre každý riadok a funkcia Sum spočíta hodnoty Population jednotlivých riadkov tejto podtabuľky.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.

    Teraz, keď sme spočítali požadované údaje, môžeme pomocou funkcie DropColumns podtabuľky odobrať.Now that we have the sum that we want, we can use DropColumns to remove the sub tables.

  3. Pridajte ďalšie tlačidlo a jeho vlastnosť Text nastavte tak, aby zobrazovalo hodnotu SumOnly.Add another button, and set its Text property so that the button shows "SumOnly".

  4. Vlastnosť OnSelect tlačidla SumOnly nastavte na tento vzorec:Set the OnSelect property of the "SumOnly" button to this formula:

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

    Výsledok bude nasledujúci:Which results in:

    Všimnite si, že sme túto tabuľku nepotrebovali oddeliť.Note that we didn't need to ungroup this table.