Funkce Sort a SortByColumns v PowerAppsSort and SortByColumns functions in PowerApps

Seřadí tabulku.Sorts a table.

PopisDescription

Funkce Sort seřadí tabulku podle vzorce.The Sort function sorts a table based on a formula.

Vzorec se vyhodnocuje pro každý záznam tabulky a výsledky se používají k seřazení tabulky.The formula is evaluated for each record of the table, and the results are used to sort the table. Výsledkem vzorce musí být číslo, řetězec nebo logická hodnota. Jeho výsledkem nesmí být tabulka nebo záznam.The formula must result in a number, a string, or a Boolean value; it can't result in a table or a record.

Pole aktuálně zpracovávaného záznamu jsou dostupná ve vzorci.Fields of the record currently being processed are available within the formula. Můžete na ně jednoduše odkázat jejich názvem, stejně jako byste odkazovali na jakoukoli jinou hodnotu.You simply reference them by name as you would any other value. V celé aplikaci také můžete odkazovat na vlastnosti ovládacích prvků a jiné hodnoty.You can also reference control properties and other values from throughout your app. Další podrobnosti najdete v příkladech níže a v tématu o práci s oborem záznamů.For more details, see the examples below and working with record scope.

Pokud chcete provádět řazení nejprve podle jednoho sloupce a potom podle jiného, vložíte vzorec Sort do jiného vzorce.To sort first by one column and then by another, you embed a Sort formula within another. 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 ).For example, you can use this formula to sort a Contacts table first by a LastName column and then by a FirstName column: Sort( Sort( Contacts, LastName ), FirstName )

Funkci SortByColumns můžete také použít k seřazení tabulky podle jednoho nebo více sloupců.The SortByColumns function can also be used to sort a table based on one or more columns.

Seznam parametrů pro SortByColumns poskytuje názvy sloupců, podle kterých se má řadit, a směr řazení sloupce.The parameter list for SortByColumns provides the names of the columns to sort by and the sort direction per column. Řazení se provádí v pořadí parametrů (řazení nejprve podle prvního sloupce, potom podle druhého atd.)Sorting is performed in the order of the parameters (sorted first by the first column, then the second, and so on). Názvy sloupců jsou zadané jako řetězce, a v případě, že jsou zahrnuté přímo do seznamu parametrů, vyžadují dvojité uvozovky.Column names are specified as strings, requiring double quotes if directly included in the parameter list. Například SortByColumns( TabulkaZakazniku, "Prijmeni" ).For example, SortByColumns( CustomerTable, "LastName" ).

SortByColumns můžete zkombinovat s ovládacím prvkem Rozevírací nabídka nebo Pole se seznamem a umožnit tak uživatelům zvolit si, podle kterého sloupce se má řazení provést.You can combine SortByColumns with a Drop down or List box control to enable users to select which column to sort by.

Kromě vzestupného a sestupného řazení může SortByColumns řadit na základě tabulky s jedním sloupcem hodnot.In addition to sorting ascending or descending, SortByColumns can sort based on a single column table of values. 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" ].For example, you can sort record based on the name of a day of the week by supplying [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" ] as the sort order. Všechny záznamy, které obsahují pondělí, budou první, potom budou následovat záznamy s úterým a tak dále.All records which have Monday" will come first, followed by Tuesday, and so on. Záznamy, které se v řadicí tabulce nezobrazují, se zařadí na konec seznamu.Records found that do not appear in the sort table are put at the end of the list.

Tabulky jsou v PowerApps hodnotou, stejně jako třeba řetězec nebo číslo.Tables are a value in PowerApps, just like a string or number. Můžou se předávat funkcím a funkce je můžou vracet.They can be passed to and returned from functions. Funkce Sort a SortByColumn tabulku neupraví. Použijí ji jako argument a vrátí novou seřazenou tabulku.Sort and SortByColumn don't modify a table; instead they take a table as an argument and return a new table that has been sorted. Další podrobnosti najdete v části týkající se práce s tabulkami.See working with tables for more details.

DelegováníDelegation

Je-li to možné, PowerApps delegují operace filtrování a řazení na zdroj dat a výsledky prochází na požádání.When possible, PowerApps will delegate filter and sort operations to the data source and page through the results on demand. Pokud například spustíte aplikaci, v níž se zobrazuje ovládací prvek Galerie naplněný daty, nahraje se zpočátku do zařízení jen první sada záznamů.For example, when you start an app that shows a Gallery control filled with data, only the first set of records will be initially brought to the device. Další data se načtou ze zdroje dat při procházení.As the user scrolls, additional data is brought down from the data source. Výsledkem je rychlejší spouštění aplikace a přístup k velmi rozsáhlým datovým sadám.The result is a faster start time for the app and access to very large data sets.

Možnost delegování ale nemusí být vždy k dispozici.However, delegation may not always be possible. Zdroje dat se v podpoře funkcí a operátorů při delegování liší.Data sources vary on what functions and operators they support with delegation. Není-li úplné delegování vzorce možné, příslušná část se v prostředí pro vytváření označí příznakem s varováním.If complete delegation of a formula isn't possible, the authoring environment will flag the portion that can't be delegated with a warning. Pokud to lze, zvažte změnu vzorce tak, abyste nemuseli používat funkce a operátory nepodporující delegování.When possible, consider changing the formula to avoid functions and operators that can't be delegated. Podrobné informace o zdrojích dat a operacích, které delegování umožňují, najdete v seznamu delegování.The delegation list details which data sources and operations can be delegated.

Pokud není delegování možné, PowerApps stáhnou jen malou sadu záznamů pro lokální práci.If delegation is not possible, PowerApps will pull down only a small set of records to work on locally. Funkce filtrování a řazení tak budou pracovat s omezenou sadou záznamů.Filter and sort functions will operate on a reduced set of records. Data dostupná v ovládacím prvku Galerie, nemusí být kompletní, což může uživatele mást.What is available in the Gallery may not be the complete story, which could be confusing to users.

Další informace najdete v přehledu delegování.See the delegation overview for more information.

SyntaxeSyntax

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

  • Tabulka – povinné.Table - Required. Tabulka, která se má seřaditTable to sort.
  • Vzorec – povinné.Formula - Required. Tento vzorec se vyhodnocuje pro každý záznam tabulky a výsledky se používají k seřazení tabulky.This formula is evaluated for each record of the table, and the results are used to sort the table. Na sloupce v tabulce můžete odkazovat.You can reference columns within the table.
  • PořadíŘazení – volitelné.SortOrder - Optional. Pokud chcete řadit v sestupném pořadí, zadejte SortOrder.Descending.Specify SortOrder.Descending to sort the table in descending order. Výchozí hodnota je SortOrder.Ascending.SortOrder.Ascending is the default value.

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

  • Tabulka – povinné.Table - Required. Tabulka, která se má seřaditTable to sort.
  • NázevSloupce – povinné.ColumnName(s) - Required. Názvy sloupců, které se budou řadit, jako řetězce.The column names to sort on, as strings.
  • PořadíŘazení – volitelné.SortOrder(s) - Optional. SortOrder.Ascending nebo SortOrder.Descending.SortOrder.Ascending or SortOrder.Descending. Výchozí je SortOrder.Ascending.SortOrder.Ascending is the default. Pokud zadáte více položek NázevSloupce, musí všechny kromě poslední obsahovat PořadíŘazení.If multiple ColumnNames are supplied, all but the last column must include a SortOrder.

    Poznámka

    V případě sharepointových a excelových zdrojů dat obsahujících názvy sloupců s mezerami zadejte každou mezeru jako „_x0020_“.For SharePoint and Excel data sources that contain column names with spaces, specify each space as "_x0020_". Místo Název sloupce tedy zadejte Název_x0020_sloupce.For example, specify "Column Name" as "Column_x0020_Name".

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

  • Tabulka – povinné.Table - Required. Tabulka, která se má seřaditTable to sort.
  • NázevSloupce – povinné.ColumnName - Required. Název sloupce, který se použije k seřazení, jako řetězecThe column name to sort on, as strings.
  • TabulkaPořadíŘazení – povinné.SortOrderTable - Required. Tabulka s jedním sloupcem hodnot, podle kterých se má řaditSingle column table of values to sort by.

    Poznámka

    V případě sharepointových a excelových zdrojů dat obsahujících názvy sloupců s mezerami zadejte každou mezeru jako „_x0020_“.For SharePoint and Excel data sources that contain column names with spaces, specify each space as "_x0020_". Místo Název sloupce tedy zadejte Název_x0020_sloupce.For example, specify "Column Name" as "Column_x0020_Name".

PříkladyExamples

V následujících příkladech použijeme zdroj dat Zmrzlina, který obsahuje data v této tabulce:For the following examples, we'll use the IceCream data source, which contains the data in this table:

VzorecFormula PopisDescription VýsledekResult
Sort( Zmrzlina, Příchuť )Sort( IceCream, Flavor )

SortByColumns( Zmrzlina, "Příchuť" )SortByColumns( IceCream, "Flavor" )
Seřadí tabulku Zmrzlina podle sloupce Příchuť.Sorts IceCream by its Flavor column. Sloupec Příchuť obsahuje řetězce, proto se tabulka seřadí podle abecedy.The Flavor column contains strings, so the table is sorted alphabetically. Pořadí řazení je ve výchozím nastavení vzestupné.By default, the sort order is ascending.
Sort( Zmrzlina, Množství )Sort( IceCream, Quantity )

SortByColumns( Zmrzlina, "Množství" )SortByColumns( IceCream, "Quantity" )
Seřadí tabulku Zmrzlina podle sloupce Množství.Sorts IceCream by its Quantity column. Sloupec Množství obsahuje čísla, takže se tabulka seřadí podle čísel.The Quantity column contains numbers, so the table is sorted numerically. Pořadí řazení je ve výchozím nastavení vzestupné.By default, the sort order is ascending.
Sort( Zmrzlina, Množství, SortOrder.Descending )Sort( IceCream, Quantity, SortOrder.Descending )

SortByColumns( Zmrzlina, "Množství", SortOrder.Descending )SortByColumns( IceCream, "Quantity", SortOrder.Descending )
Seřadí tabulku Zmrzlina podle sloupce Množství.Sorts IceCream by its Quantity column. Sloupec Množství obsahuje čísla, takže se tabulka seřadí podle čísel.The Quantity column contains numbers, so the sort is done numerically. Pořadí řazení jsme zadali jako sestupné.The sort order has been specified as descending.
Sort( Zmrzlina, Množství + Objednáno )Sort( IceCream, Quantity + OnOrder ) Seřadí tabulku Zmrzlina podle součtu sloupců Množství a Objednáno pro každý záznam samostatně.Sorts IceCream by the sum of its Quantity and OnOrder columns for each record individually. Součet je číslo, proto bude tabulka seřazená číselně.The sum is a number, so the table is sorted numerically. Pořadí řazení je ve výchozím nastavení vzestupné.By default, the sort order is ascending. Vzhledem k tomu, že provádíme řazení podle vzorce a nikoli podle nezpracovaných hodnot sloupce, nemůžeme použít funkci SortByColumns.Since we are sorting by a formula and not by raw column values, there is no equivalent using SortByColumns.
Sort( Sort( Zmrzlina, Objednáno ), Množství )Sort( Sort( IceCream, OnOrder ), Quantity )

SortByColumns( Zmrzlina, "Objednáno", Ascending, "Množství", Ascending )SortByColumns( IceCream, "OnOrder", Ascending, "Quantity", Ascending )
Seřadí tabulku Zmrzlina nejprve podle sloupce Objednáno a potom podle sloupce Množství.Sorts IceCream first by its OnOrder column, and then by its Quantity column. 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í.Note that "Pistachio" rose above "Vanilla" in the first sort based on OnOrder, and then together they moved to their appropriate place based on Quantity.
SortByColumns( Zmrzlina, "Příchuť", [ "Pistácie", "Jahoda" ] )SortByColumns( IceCream, "Flavor", [ "Pistachio", "Strawberry" ] ) Seřadí tabulku Zmrzlina podle sloupce Příchuť na základě tabulky s jedním sloupcem obsahujícím hodnoty Pistácie a Jahoda.Sorts IceCream by it's Flavor column based on the single column table containing "Pistachio" and "Strawberry". 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.Records which have a Flavor of "Pistachio" will appear first in the result, followed by records that contain "Strawberry". 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.For values in the Flavor column that are not matched, such as "Vanilla", they will appear after the items that were matched.

Podrobný postupStep by step

Pokud si chcete tyto příklady vyzkoušet sami, vytvořte zdroj dat Zmrzlina jako kolekci:To run these examples yourself, create the IceCream data source as a collection:

  1. Přidejte tlačítko a nastavte jeho vlastnost OnSelect na tento vzorec:Add a button, and set its OnSelect property to this formula:
    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 } )ClearCollect( IceCream, { Flavor: "Chocolate", Quantity: 100, OnOrder: 150 }, { Flavor: "Vanilla", Quantity: 200, OnOrder: 20 }, { Flavor: "Strawberry", Quantity: 300, OnOrder: 0 }, { Flavor: "Mint Chocolate", Quantity: 60, OnOrder: 100 }, { Flavor: "Pistachio", Quantity: 200, OnOrder: 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.Preview the app, select the button, and then press Esc to return to the default workspace.
  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.Select Collections on the File menu to display the collection that you just created, and then press Esc to return to the default workspace.

SeřaditSort

  1. Přidejte další tlačítko a nastavte jeho vlastnost OnSelect na tento vzorec:Add another button, and set its OnSelect property to this formula:
    ClearCollect( PodlePrichute; Sort( Zmrzlina; Příchuť ) )ClearCollect( SortByFlavor, Sort( IceCream, Flavor ) )

    Předchozí vzorec vytvoří druhou kolekci s názvem PodlePrichute, která obsahuje stejná data jako Zmrzlina.The previous formula creates a second collection, named SortByFlavor, that contains the same data as Ice Cream. Nová kolekce ale obsahuje data seřazená podle abecedy ve vzestupném pořadí podle sloupce Příchuť.However, the new collection contains the data sorted alphabetically by the Flavor column in ascending order.

  2. Stiskněte klávesu F5, vyberte nové tlačítko a pak stiskněte klávesu Esc.Press F5, select the new button, and then press 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.Select Collections on the File menu to display both collections, and then press Esc to return to the default workspace.
  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.Repeat the last three steps, but change the name of the collection that you want to create, and replace the Sort formula with a different formula from the table of examples earlier in this section that uses Sort.

SortByColumnsSortByColumns

  1. Přidejte další tlačítko a nastavte jeho vlastnost OnSelect na tento vzorec:Add another button, and set its OnSelect property to this formula:
    ClearCollect( PodleMnozstvi; SortByColumns( Zmrzlina; "Množství"; Ascending; "Příchuť"; Descending ) )ClearCollect( SortByQuantity, SortByColumns( IceCream, "Quantity", Ascending, "Flavor", Descending ) )

    Předchozí vzorec vytvoří třetí kolekci s názvem PodleMnozství, která obsahuje stejná data jako Zmrzlina.The previous formula creates a third collection, named SortByQuantity, that contains the same data as Ice Cream. 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í.However, the new collection contains the data sorted numerically by the Quanity column in ascending order, and then by the Flavor column in descending order.

  2. Stiskněte klávesu F5, vyberte nové tlačítko a pak stiskněte klávesu Esc.Press F5, select the new button, and then press 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.Select Collections on the File menu to display all three collections, and then press Esc to return to the default workspace.
  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.Repeat the last three steps, but change the name of the collection that you want to create, and replace the SortByColumns formula with a different formula from the table of examples earlier in this section that uses SortByColumns.