Funkce GroupBy a Ungroup

Platí pro: aplikace plátna modelem řízené aplikace

Seskupí a oddělí záznamytabulky.

Description

Funkce GroupBy vrátí tabulku se záznamy seskupenými na základě hodnot v jednom nebo několika sloupcích. Záznamy ve stejné skupině jsou umístěné do jednoho záznamu s přidaným sloupcem, ve kterém je vnořená tabulka zbývajících sloupců.

Funkce Ungroup je opakem funkce GroupBy. Tato funkce vrátí tabulku, ve které jsou všechny záznamy, které byly seskupeny, rozdělené na samostatné záznamy.

Záznamy můžete seskupit funkcí GroupBy, změnit vrácenou tabulku a pak záznamy v této změněné tabulce oddělit funkcí Ungroup. Tímto postupem můžete například odebrat skupinu záznamů:

  • Použijte funkci GroupBy.
  • Pomocí funkce Filter odeberte celou skupinu záznamů.
  • Použijte funkci Ungroup.

Výsledky můžete rovněž agregovat na základě seskupení:

  • Použijte funkci GroupBy.
  • Pomocí funkce AddColumns s funkcemi Sum, Average a jinými agregačními funkcemi přidejte nový sloupec, který je agregací seskupených tabulek.
  • Pomocí funkce DropColumns seskupenou tabulku zrušte.

Funkce Ungroup se snaží zachovat původní pořadí záznamů předaných funkci GroupBy. To není vždycky možné (třeba když původní tabulka obsahuje prázdné záznamy).

Tabulka je v Power Apps, hodnotou, stejně jako třeba řetězec nebo číslo. Tabulku můžete zadat jako argument funkce, přičemž funkce může vrátit tabulku. Funkce GroupBy a Ungroup tabulku nemění; místo toho převezmou tabulku jako argument a vrátí jinou tabulku. Další podrobnosti najdete v části týkající se práce s tabulkami.

Syntaxe

GroupBy( Tabulka; NázevSloupce1 [; NázevSloupce2; ... ]; NázevSloupceSkupiny )

  • Tabulka – povinné. Tabulka, která se má seskupit.

  • NázevSloupce – povinné. Názvy sloupců v Tabulce, podle kterých se mají záznamy seskupit. Z těchto sloupců se stanou sloupce ve výsledné tabulce.

  • NázevSloupceSkupiny – povinné. Název sloupce pro uložení dat záznamů, které nejsou v NázvechSloupců.

    Poznámka:

    V případě zdrojů dat SharePoint a Excel obsahujících názvy sloupců s mezerami zadejte každou mezeru jako „_x0020_“. Místo Název sloupce tedy zadejte Název_x0020_sloupce.

Ungroup( Tabulka; NázevSloupceSkupiny )

  • Tabulka – povinné. Tabulka, která se má oddělit.

  • NázevSloupceSkupiny – povinné. Sloupec, který obsahuje data záznamů nastavené pomocí funkce GroupBy.

    Poznámka:

    V případě zdrojů dat SharePoint a Excel obsahujících názvy sloupců s mezerami zadejte každou mezeru jako „_x0020_“. Místo Název sloupce tedy zadejte Název_x0020_sloupce.

Příklady

Vytvoření kolekce

  1. Přidejte tlačítko a nastavte jeho vlastnost Text tak, aby zobrazovalo Original.
  2. Vlastnost OnSelect tlačítka Original nastavte na tento vzorec:
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. Podržte stisknutou klávesu Alt a vyberte tlačítko Original.

    Právě jste vytvořili kolekci s názvem CityPopulations, která obsahuje tato data:

    Příklad CityPopulations.

  2. Tuto kolekci zobrazíte tak, že vyberete Kolekce v nabídce Soubor a pak vyberete kolekci CityPopulations. Objeví se prvních pět záznamů v této kolekci:

    Kolekce CityPopulations.

Seskupení záznamů

  1. Přidejte další tlačítko a nastavte jeho vlastnost Text na Group.

  2. Vlastnost OnSelect tohoto tlačítka nastavte na tento vzorec:

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

  3. Podržte stisknutou klávesu Alt a vyberte tlačítko Group.

    Právě jste vytvořili kolekci s názvem CitiesByCountry, ve které jsou záznamy předchozí kolekce seskupené podle sloupce Country.

    Seskupená města.

  4. Prvních pět záznamů v této kolekci zobrazíte tak, že vyberete Kolekce v nabídce Soubor.

    Města podle země/oblasti.

  5. Pokud chcete zobrazit počet obyvatel měst v nějaké zemi/oblasti, vyberte ikonu tabulky ve sloupci Cities této země/oblasti (například Germany):

    Populace – Německo.

Filtrování a oddělení záznamů

  1. Přidejte další tlačítko a nastavte jeho vlastnost Text tak, aby zobrazovalo Filter.

  2. Vlastnost OnSelect tohoto tlačítka nastavte na tento vzorec:

    ClearCollect( CitiesByCountryFiltered; Filter( CitiesByCountry; "a" in Country ) )

  3. Podržte stisknutou klávesu Alt a vyberte vámi přidané tlačítko.

    Právě jste vytvořili třetí kolekci s názvem CitiesByCountryFiltered, která obsahuje jenom země, které mají v názvu písmeno „a“ (například Spain nebo Italy).

    CitiesByCountryFiltered.

  4. Přidejte ještě jedno tlačítko a nastavte jeho vlastnost Text tak, aby zobrazovalo Ungroup.

  5. Vlastnost OnSelect tohoto tlačítka nastavte na tento vzorec:

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

    Výsledek bude následující:

    Města podle zemí/oblastí po zrušení seskupení.

Agregace výsledků

U seskupené tabulky je možné agregovat výsledky. V tomto příkladu sečteme počet obyvatel hlavních měst v jednotlivých zemích/oblastech.

  1. Přidejte další tlačítko a nastavte jeho vlastnost Text tak, aby zobrazovalo Sum.

  2. Vlastnost OnSelect tlačítka Sum nastavte na tento vzorec:

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

    Výsledek bude následující:

    Součet měst.

    Funkce AddColumns začne se základní kolekcí CitiesByCountry a přidá nový sloupec Sum of City Populations. Hodnoty v tomto sloupci se počítají řádek po řádku na základě vzorce Sum( Cities; Population ). Funkce AddColumns poskytuje hodnotu sloupce Cities (tabulku) každého řádku a funkce Sum sečte hodnoty Population jednotlivých řádků této podtabulky.

    Teď, když jsme sečetli požadované údaje, můžeme pomocí funkce DropColumns podtabulky odebrat.

  3. Přidejte další tlačítko a nastavte jeho vlastnost Text tak, aby zobrazovalo SumOnly.

  4. Vlastnost OnSelect tlačítka SumOnly nastavte na tento vzorec:

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

    Výsledek bude následující:

    Součet zemí.

    Všimněte si, že jsme tuto tabulku nepotřebovali oddělit.