Funkce Sort a SortByColumns v Power Apps

Seřadí tabulku.

Popis

Funkce Sort seřadí tabulku podle vzorce.

Vzorec se vyhodnocuje pro každý záznam tabulky a výsledky se používají k seřazení tabulky. Výsledkem vzorce musí být číslo, řetězec nebo logická hodnota. Jeho výsledkem nesmí být tabulka nebo záznam.

[!INCLUDE [record-scope]../../includes/record-scope.md)]

Pokud chcete provádět řazení nejprve podle jednoho sloupce a potom podle jiného, vložíte vzorec Sort do jiného vzorce. Například můžete použít tento vzorec k seřazení tabulky Kontakty nejprve podle sloupce Prijmeni a potom podle sloupce Jmeno: Sort( Sort( Kontakty, Prijmeni), Jmeno ).

Funkci SortByColumns můžete také použít k seřazení tabulky podle jednoho nebo více sloupců.

Seznam parametrů pro SortByColumns poskytuje názvy sloupců, podle kterých se má řadit, a směr řazení sloupce. Řazení se provádí v pořadí parametrů (řazení nejprve podle prvního sloupce, potom podle druhého atd.) Názvy sloupců jsou zadané jako řetězce, a v případě, že jsou zahrnuté přímo do seznamu parametrů, vyžadují dvojité uvozovky. Například SortByColumns( TabulkaZakazniku, "Prijmeni" ).

SortByColumns můžete zkombinovat s ovládacím prvkem Drop down nebo List box a umožnit tak uživatelům zvolit si, podle kterého sloupce se má řazení provést.

Kromě vzestupného a sestupného řazení může SortByColumns řadit na základě tabulky s jedním sloupcem hodnot. Můžete třeba řadit záznamy na základě názvu dne v týdnu tak, že jako pořadí řazení zadáte [ "pondělí", "úterý", "středa", "čtvrtek", "pátek", "sobota", "neděle" ]. Všechny záznamy, které obsahují pondělí, budou první, potom budou následovat záznamy s úterým a tak dále. Záznamy, které se v řadicí tabulce nezobrazují, se zařadí na konec seznamu.

Tabulky jsou v Power Apps hodnotou, stejně jako třeba řetězec nebo číslo. Můžou se předávat funkcím a funkce je můžou vracet. Funkce Sort a SortByColumn tabulku neupraví. Použijí ji jako argument a vrátí novou seřazenou tabulku. Další podrobnosti najdete v části týkající se práce s tabulkami.

[!INCLUDE [delegation]../../includes/delegation.md)]

Syntaxe

Sort( Tabulka, Vzorec [, PořadíŘazení ] )

  • Tabulka – povinné. Tabulka, která se má seřadit.
  • Vzorec – povinné. Tetno vzorec se vyhodnocuje pro každý záznam tabulky a výsledky se používají k seřazení tabulky. Na sloupce v tabulce můžete odkazovat.
  • PořadíŘazení – volitelné. Pokud chcete řadit v sestupném pořadí, zadejte SortOrder.Descending. Výchozí hodnota je SortOrder.Ascending.

SortByColumns( Tabulka, NázevSloupce1 [, PořadíŘazení1, NázevSloupce2, PořadíŘazení2, ... ] )

  • Tabulka – povinné. Tabulka, která se má seřadit.

  • NázevSloupce – povinné. Názvy sloupců, které se budou řadit, jako řetězce.

  • PořadíŘazení – volitelné. SortOrder.Ascending nebo SortOrder.Descending. Výchozí je SortOrder.Ascending. Pokud zadáte více položek NázevSloupce, musí všechny kromě poslední obsahovat PořadíŘazení.

    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.

SortByColumns( Tabulka, NázevSloupce, TabulkaPořadíŘazení )

  • Tabulka – povinné. Tabulka, která se má seřadit.

  • NázevSloupce – povinné. Název sloupce, který se použije k seřazení, jako řetězec.

  • TabulkaPořadíŘazení – povinné. Tabulka s jedním sloupcem hodnot, podle kterých se má řadit.

    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

V následujících příkladech použijeme zdroj dat Zmrzlina, který obsahuje data v této tabulce:

Příklad zmrzliny.

Vzorec Popis Výsledek
Sort( Zmrzlina, Příchuť )

SortByColumns( Zmrzlina, "Příchuť" )
Seřadí tabulku Zmrzlina podle sloupce Příchuť. Sloupec Příchuť obsahuje řetězce, proto se tabulka seřadí podle abecedy. Pořadí řazení je ve výchozím nastavení vzestupné. Seřazeno podle abecedy.
Sort( Zmrzlina, Množství )

SortByColumns( Zmrzlina, "Množství" )
Seřadí tabulku Zmrzlina podle sloupce Množství. Sloupec Množství obsahuje čísla, takže se tabulka seřadí podle čísel. Pořadí řazení je ve výchozím nastavení vzestupné. Seřazeno číselně.
Sort( Zmrzlina, Množství, SortOrder.Descending )

SortByColumns( Zmrzlina, "Množství", SortOrder.Descending )
Seřadí tabulku Zmrzlina podle sloupce Množství. Sloupec Množství obsahuje čísla, takže se tabulka seřadí podle čísel. Pořadí řazení jsme zadali jako sestupné. Seřazeno číselně a sestupně.
Sort( Zmrzlina, Množství + Objednáno ) Seřadí tabulku Zmrzlina podle součtu sloupců Množství a Objednáno pro každý záznam samostatně. Součet je číslo, proto bude tabulka seřazená číselně. Pořadí řazení je ve výchozím nastavení vzestupné. Vzhledem k tomu, že provádíme řazení podle vzorce a nikoli podle nezpracovaných hodnot sloupce, nemůžeme použít funkci SortByColumns. Seřazeno číselně a vzestupně.
Sort( Sort( Zmrzlina, Objednáno ), Množství )

SortByColumns( Zmrzlina, "Objednáno", Ascending, "Množství", Ascending )
Seřadí tabulku Zmrzlina nejprve podle sloupce Objednáno a potom podle sloupce Množství. Všimněte si, že Pistácie je v prvním řazení podle Objednáno před Vanilkou a že potom se společně přesunuly na jejich příslušné místo podle Množství. Seřazeno s Pistácií nad Vanilkou.
SortByColumns( Zmrzlina, "Příchuť", [ "Pistácie", "Jahoda" ] ) Seřadí tabulku Zmrzlina podle sloupce Příchuť na základě tabulky s jedním sloupcem obsahujícím hodnoty Pistácie a Jahoda. Záznamy, které mají příchuť Jahoda se ve výsledku budou zobrazovat první, po nich budou následovat záznamy obsahující příchuť Pistácie. Hodnoty ve sloupci Příchuť, u kterých se nenašla shoda, např. Vanilka, se zobrazí až po položkách, u kterých se shoda našla. Seřazeno s Pistácií nad Jahodami.

Podrobný postup

Pokud si chcete tyto příklady vyzkoušet sami, vytvořte zdroj dat Zmrzlina jako kolekci:

  1. Přidejte tlačítko a nastavte jeho vlastnost OnSelect na tento vzorec:
    ClearCollect( Zmrzlina, { Příchuť: "Čokoláda", Množství: 100, Objednáno: 150 }, { Příchuť: "Vanilka", Množství: 200, Objednáno: 20 }, { Příchuť: "Jahoda", Množství: 300, Objednáno: 0 }, { Příchuť: "Máta s čokoládou", Množství: 60, Objednáno: 100 }, { Příchuť: "Pistácie", Množství: 200, Objednáno: 10 } )
  2. Podívejte se na náhled aplikace, vyberte tlačítko a pak se stisknutím klávesy Esc vraťte do výchozího pracovního prostoru.
  3. V nabídce Soubor vyberte Kolekce a zobrazte kolekci, kterou jste právě vytvořili. Pak se stisknutím klávesy Esc vraťte do výchozího pracovního prostoru.

Sort

  1. Přidejte další tlačítko a nastavte jeho vlastnost OnSelect na tento vzorec:
    ClearCollect( PodlePrichute; Sort( Zmrzlina; Příchuť ) )

    Předchozí vzorec vytvoří druhou kolekci s názvem PodlePrichute, která obsahuje stejná data jako Zmrzlina. Nová kolekce ale obsahuje data seřazená podle abecedy ve vzestupném pořadí podle sloupce Příchuť.

  2. Stiskněte klávesu F5, vyberte nové tlačítko a pak stiskněte klávesu Esc.

  3. V nabídce Soubor vyberte Kolekce a zobrazte obě kolekce. Pak se stisknutím klávesy Esc vraťte do výchozího pracovního prostoru.

  4. Opakujte poslední tři kroky, ale změňte název kolekce, kterou chcete vytvořit, a nahraďte vzorec Sort jiným vzorcem z tabulky příkladů uvedené v této části výše používajících funkci Sort.

SortByColumns

  1. Přidejte další tlačítko a nastavte jeho vlastnost OnSelect na tento vzorec:
    ClearCollect( PodleMnozstvi; SortByColumns( Zmrzlina; "Množství"; Ascending; "Příchuť"; Descending ) )

    Předchozí vzorec vytvoří třetí kolekci s názvem PodleMnozství, která obsahuje stejná data jako Zmrzlina. Nová kolekce ale obsahuje data seřazená číselně podle sloupce Množství ve vzestupném pořadí a pak podle sloupce Příchuť v sestupném pořadí.

  2. Stiskněte klávesu F5, vyberte nové tlačítko a pak stiskněte klávesu Esc.

  3. V nabídce Soubor vyberte Kolekce a zobrazte všechny tři kolekce. Pak se stisknutím klávesy Esc vraťte do výchozího pracovního prostoru.

  4. Opakujte poslední tři kroky, ale změňte název kolekce, kterou chcete vytvořit, a nahraďte vzorec SortByColumns jiným vzorcem z tabulky příkladů uvedené v této části výše používajících funkci SortByColumns.

Poznámka

Můžete nám sdělit, jaké máte jazykové preference pro dokumentaci? Zúčastněte se krátkého průzkumu. (upozorňujeme, že tento průzkum je v angličtině)

Průzkum bude trvat asi sedm minut. Nejsou shromažďovány žádné osobní údaje (prohlášení o zásadách ochrany osobních údajů).