Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
| Funkce | Vztahuje se na |
|---|---|
| GroupBy |
|
| Ungroup |
|
Seskupí a oddělí záznamytabulky.
Description
Funkce GroupBy vrátí tabulku se záznamy seskupenými na základě hodnot v jednom nebo více 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 obrátí GroupBy proces. 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 pomocí GroupBy, upravit tabulku, kterou vrací, a potom oddělit záznamy v upravené tabulce pomocí Ungroup. Tímto postupem můžete například odebrat skupinu záznamů:
- GroupBy Použijte funkci.
- Pomocí funkce Filter odeberte celou skupinu záznamů.
- Ungroup Použijte funkci.
Výsledky můžete rovněž agregovat na základě seskupení:
- GroupBy Použijte funkci.
- 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.
Ungroup se snaží zachovat původní pořadí záznamů, které byly předány 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. GroupBy a Ungroup neupravují tabulku. Místo toho přebírají tabulku jako argument a vrátí jinou tabulku. Další podrobnosti najdete v části týkající se práce s tabulkami.
Poznámka:
V Power Apps před verzí 3.24042 byly názvy sloupců zadány pomocí textového řetězce pomocí dvojitých uvozovek, a pokud byly připojeny ke zdroji dat, také musely mít logické názvy. Například místo zobrazovaného názvu Název bez uvozovek byl použit logický název "cr43e_name" s dvojitými uvozovkami. U zdrojů dat SharePoint a Excel, které obsahují názvy sloupců s mezerami, byla každá mezera specifikována pomocí "_x0020_", například "Název sloupce" jako "Název_x0020_sloupce". Po této verzi byly všechny aplikace automaticky aktualizovány na novou syntaxi popsanou v tomto článku.
Syntaxe
GroupBy( Table, ColumnName1 [, ColumnName2, ... ], GroupColumnName )
- Tabulka – Povinné. Tabulka, která se má seskupit.
- Názvy sloupců – 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.
- GroupColumnName – Povinné. Název sloupce pro uložení dat záznamů, které nejsou v NázvechSloupců.
Ungroup( Tabulka, GroupColumnName )
- Tabulka – Povinné. Tabulka, která se má oddělit.
- GroupColumnName – Povinné. Sloupec, který obsahuje nastavení dat záznamu GroupBy s funkcí.
Příklady
Vytvoření kolekce
- Přidejte tlačítko a nastavte jeho vlastnost Text tak, aby zobrazovalo Original.
- 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}
)
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:
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:
Seskupení záznamů
Přidejte další tlačítko a nastavte jeho vlastnost Text na Group.
Vlastnost OnSelect tohoto tlačítka nastavte na tento vzorec:
ClearCollect( CitiesByCountry; GroupBy( CityPopulations; Country; Cities ) )
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.
Prvních pět záznamů v této kolekci zobrazíte tak, že vyberete Kolekce v nabídce Soubor.
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):
Filtrování a oddělení záznamů
Přidejte další tlačítko a nastavte jeho vlastnost Text tak, aby zobrazovalo Filter.
Vlastnost OnSelect tohoto tlačítka nastavte na tento vzorec:
ClearCollect( CitiesByCountryFiltered, Filter( CitiesByCountry, "e" in Country) )
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).
Přidejte další tlačítko a nastavte jeho vlastnost Text tak, aby se na tlačítku zobrazoval "Ungroup".
Vlastnost OnSelect tohoto tlačítka nastavte na tento vzorec:
ClearCollect( CityPopulationsUngrouped; Ungroup( CitiesByCountryFiltered; Cities ) )
Výsledek bude následující:
Agregace výsledků
Další operací, kterou můžeme provést na seskupené tabulce, je kompilace výsledků. V tomto příkladu sečteme počet obyvatel hlavních měst v jednotlivých zemích/regionech.
Přidejte další tlačítko a nastavte jeho vlastnost Text tak, aby zobrazovalo Sum.
Vlastnost OnSelect tlačítka Sum nastavte na tento vzorec:
ClearCollect( CityPopulationsSum, AddColumns( CitiesByCountry, 'Součet městských populací', Sum( Cities, Population) ) )
Výsledek bude následující:
AddColumns začíná základní kolekcí CitiesByCountry a přidá nový sloupec Součet obyvatel měst. Hodnoty v tomto sloupci se počítají řádek po řádku na základě vzorce Sum( Cities; Population ). AddColumns poskytuje hodnotu sloupce Města (tabulku) pro každý řádek a Součet sečte Populace pro každý řádek této podtabulky.
Teď, když jsme sečetli požadované údaje, můžeme pomocí funkce DropColumns podtabulky odebrat.
Přidejte další tlačítko a nastavte jeho vlastnost Text tak, aby zobrazovalo SumOnly.
Vlastnost OnSelect tlačítka SumOnly nastavte na tento vzorec:
ClearCollect( CityPopulationsSumOnly; DropColumns( CityPopulationsSum; Cities ) )
Výsledek bude následující:
Všimněte si, že jsme tuto tabulku nepotřebovali oddělit.