Funkcie Sort a SortByColumns v službe PowerAppsSort and SortByColumns functions in PowerApps

Zoradí tabuľku.Sorts a table.

PopisDescription

Funkcia Sort (Zoradiť) zoradí tabuľku podľa vzorca.The Sort function sorts a table based on a formula.

Vzorec sa vyhodnocuje pre každý záznam tabuľky a výsledky sa používajú na zoradenie tabuľky.The formula is evaluated for each record of the table, and the results are used to sort the table. Výsledkom vzorca musí byť číslo, reťazec alebo booleovská hodnota. Jeho výsledkom nesmie byť tabuľka ani 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.

Polia práve spracúvaného záznamu sú k dispozícii vo vzorci.Fields of the record currently being processed are available within the formula. Jednoducho na ne odkážte podľa názvu ako pri akejkoľvek inej hodnote.You simply reference them by name as you would any other value. Môžete tiež odkazovať na vlastnosti ovládacích prvkov a iné hodnoty z vašej aplikácie.You can also reference control properties and other values from throughout your app. Ďalšie podrobnosti nájdete v nasledujúcich príkladoch a pri práci s rozsahom záznamu.For more details, see the examples below and working with record scope.

Ak chcete zoradiť najprv podľa jedného stĺpca a potom podľa iného, vložte vzorec Sort do iného vzorca.To sort first by one column and then by another, you embed a Sort formula within another. Nasledujúci vzorec môžete napríklad použiť na zoradenie tabuľky Kontakty najprv podľa stĺpca Priezvisko a potom podľa stĺpca Meno Sort( Sort( Kontakty, Priezvisko ), Meno )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 )

Funkciu SortByColumns môžete tiež použiť na zoradenie tabuľky podľa jedného alebo viacerých stĺpcov.The SortByColumns function can also be used to sort a table based on one or more columns.

Zoznam parametrov pre možnosť SortByColumns poskytuje názvy stĺpcov, podľa ktorých sa má zoraďovať, a smer zoradenia stĺpca.The parameter list for SortByColumns provides the names of the columns to sort by and the sort direction per column. Zoradenie sa vykonáva v poradí parametrov (zoradenie najprv podľa prvého stĺpca, potom podľa druhého atď.).Sorting is performed in the order of the parameters (sorted first by the first column, then the second, and so on). Názvy stĺpcov sú zadané ako reťazce a v prípade, že sú zahrnuté priamo do zoznamu parametrov, vyžadujú dvojité úvodzovky.Column names are specified as strings, requiring double quotes if directly included in the parameter list. Napríklad SortByColumns( TabuľkaZákazníkov, "Priezvisko" ).For example, SortByColumns( CustomerTable, "LastName" ).

Funkciu SortByColumns môžete skombinovať s ovládacím prvkom Rozbaľovací zoznam alebo Zoznam a umožniť tak používateľom zvoliť si, podľa ktorého stĺpca sa má zoradenie vykonať.You can combine SortByColumns with a Drop down or List box control to enable users to select which column to sort by.

Okrem vzostupného a zostupného zoradenia môže funkcia SortByColumns zoraďovať podľa tabuľky s jedným stĺpcom hodnôt.In addition to sorting ascending or descending, SortByColumns can sort based on a single column table of values. Môžete napríklad zoradiť záznamy na základe názvu dňa v týždni tak, že ako poradie zoradenia zadáte [ "pondelok", "utorok", "streda", "štvrtok", "piatok", "sobota", "nedeľa" ].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šetky záznamy, ktoré obsahujú pondelok, budú prvé, potom budú nasledovať záznamy s utorkom a tak ďalej.All records which have Monday" will come first, followed by Tuesday, and so on. Záznamy, ktoré sa v tabuľke zoradenia nezobrazujú, sa zaradia na koniec zoznamu.Records found that do not appear in the sort table are put at the end of the list.

Tabuľky sú v službe PowerApps hodnotou, rovnako ako napríklad reťazec alebo číslo.Tables are a value in PowerApps, just like a string or number. Môžu sa odovzdávať funkciám a funkcie ich môžu vracať.They can be passed to and returned from functions. Funkcie Sort a SortByColumn tabuľku neupravia. Použijú ju ako argument a vrátia novú zoradenú tabuľku.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. Ďalšie podrobnosti nájdete v časti týkajúcej sa práce s tabuľkami.See working with tables for more details.

DelegovanieDelegation

Ak je to možné, PowerApps delegujú operácie filtrovania a zoradenia na zdroj údajov a výsledky prechádzajú na požiadanie.When possible, PowerApps will delegate filter and sort operations to the data source and page through the results on demand. Ak napríklad spustíte aplikáciu, v ktorej sa zobrazuje ovládací prvok Galéria naplnený údajmi, nahrá sa najprv do zariadenia len prvá dávka záznamov.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. Ďalšie údaje sa načítajú zo zdroja údajov pri prechádzaní.As the user scrolls, additional data is brought down from the data source. Výsledkom je rýchlejšie spúšťanie aplikácie a prístup k veľmi rozsiahlym množinám údajov.The result is a faster start time for the app and access to very large data sets.

Možnosť delegovania ale nemusí byť vždy k dispozícii.However, delegation may not always be possible. Zdroje údajov sa v podpore funkcií a operátorov pri delegovaní líšia.Data sources vary on what functions and operators they support with delegation. Ak nie je úplné delegovanie vzorca možné, príslušná časť sa v prostredí pre vytváranie označí príznakom s varovaní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. Ak je to možné, zvážte zmenu vzorca tak, aby ste nemuseli používať funkcie a operátory nepodporujúce delegovanie.When possible, consider changing the formula to avoid functions and operators that can't be delegated. Podrobné informácie o zdrojoch údajov a operáciach, ktoré umožňujú delegovanie, nájdete v zozname delegovania.The delegation list details which data sources and operations can be delegated.

V prípade, že delegovanie nie je možné, PowerApps stiahnu len malú dávku záznamov pre lokálnu prácu.If delegation is not possible, PowerApps will pull down only a small set of records to work on locally. Funkcie filtrovania a zoradenia tak budú pracovať s omedzenou množinou záznamov.Filter and sort functions will operate on a reduced set of records. Údaje dostupné v ovládacom prvku Galéria nemusia byť kompletné, čo môže používateľa miasť.What is available in the Gallery may not be the complete story, which could be confusing to users.

Ďalšie informácie nájdete v prehľade delegovania.See the delegation overview for more information.

SyntaxSyntax

Sort( Tabuľka, Vzorec [, PoradieZoradenia ] )Sort( Table, Formula [, SortOrder ] )

  • Tabuľka – povinné.Table - Required. Tabuľka na zoradenie.Table to sort.
  • Vzorec – povinné.Formula - Required. Tento vzorec sa vyhodnocuje pre každý záznam tabuľky a výsledky sa používajú na zoradenie tabuľky.This formula is evaluated for each record of the table, and the results are used to sort the table. Na stĺpce môžete v tabuľke odkazovať.You can reference columns within the table.
  • PoradieZoradenia – voliteľné.SortOrder - Optional. Ak chcete zoradiť v zostupnom poradí, zadajte SortOrder.Descending.Specify SortOrder.Descending to sort the table in descending order. Predvolená hodnota je SortOrder.Ascending.SortOrder.Ascending is the default value.

SortByColumns( Tabuľka, NázovStĺpca1 [, PoradieZoradenia1, NázovStĺpca2, PoradieZoradenia2, ... ] )SortByColumns( Table, ColumnName1 [, SortOrder1, ColumnName2, SortOrder2, ... ] )

  • Tabuľka – povinné.Table - Required. Tabuľka na zoradenie.Table to sort.

  • NázovStĺpca – povinné.ColumnName(s) - Required. Názvy stĺpcov, ktoré sa budú zoraďovať, ako reťazce.The column names to sort on, as strings.

  • PoradiaZoradenia – voliteľné.SortOrder(s) - Optional. SortOrder.Ascending alebo SortOrder.Descending.SortOrder.Ascending or SortOrder.Descending. Predvolená hodnota je SortOrder.Ascending.SortOrder.Ascending is the default. Ak zadáte viac položiek NázvyStĺpca, musia všetky okrem poslednej obsahovať PoradieZoradenia.If multiple ColumnNames are supplied, all but the last column must include a SortOrder.

    Poznámka

    V prípade sharepointových a excelových zdrojov údajov obsahujúcich názvy stĺpcov s medzerami zadajte každú medzeru ako „_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".

SortByColumns( Tabuľka, NázovStĺpca, TabuľkaPoradiaZoradenia )SortByColumns( Table, ColumnName, SortOrderTable )

  • Tabuľka – povinné.Table - Required. Tabuľka na zoradenie.Table to sort.

  • NázovStĺpca – povinné.ColumnName - Required. Názov stĺpca, ktorý sa použije na zoradenie, ako reťazec.The column name to sort on, as strings.

  • TabuľkaPoradiaZoradenia – povinné.SortOrderTable - Required. Tabuľka s jedným stĺpcom hodnôt, podľa ktorých sa má zoraďovať.Single column table of values to sort by.

    Poznámka

    V prípade sharepointových a excelových zdrojov údajov obsahujúcich názvy stĺpcov s medzerami zadajte každú medzeru ako „_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

V nasledujúcich príkladoch použijeme zdroj údajov IceCream, ktorý obsahuje údaje v tejto tabuľke:For the following examples, we'll use the IceCream data source, which contains the data in this table:

VzorecFormula PopisDescription VýsledokResult
Sort( IceCream, Flavor )Sort( IceCream, Flavor )

SortByColumns( IceCream, "Flavor" )SortByColumns( IceCream, "Flavor" )
Zoradí tabuľku IceCream podľa stĺpca Flavor.Sorts IceCream by its Flavor column. Stĺpec Flavor obsahuje reťazce, preto sa tabuľka zoradí podľa abecedy.The Flavor column contains strings, so the table is sorted alphabetically. Poradie zoradenia je v predvolenom nastavení vzostupné.By default, the sort order is ascending.
Sort( IceCream, Quantity )Sort( IceCream, Quantity )

SortByColumns( IceCream, "Quantity" )SortByColumns( IceCream, "Quantity" )
Zoradí tabuľku IceCream podľa stĺpca Quantity.Sorts IceCream by its Quantity column. Stĺpec Quantity obsahuje čísla, takže sa tabuľka zoradí podľa čísel.The Quantity column contains numbers, so the table is sorted numerically. Poradie zoradenia je v predvolenom nastavení vzostupné.By default, the sort order is ascending.
Sort( IceCream, Quantity, SortOrder.Descending )Sort( IceCream, Quantity, SortOrder.Descending )

SortByColumns( IceCream, "Quantity", SortOrder.Descending )SortByColumns( IceCream, "Quantity", SortOrder.Descending )
Zoradí tabuľku IceCream podľa stĺpca Quantity.Sorts IceCream by its Quantity column. Stĺpec Quantity obsahuje čísla, takže sa tabuľka zoradí podľa čísel.The Quantity column contains numbers, so the sort is done numerically. Poradie zoradenia bolo zadané ako zostupné.The sort order has been specified as descending.
Sort( IceCream, Quantity + OnOrder )Sort( IceCream, Quantity + OnOrder ) Zoradí tabuľku IceCream podľa súčtu stĺpcov Quantity a OnOrder pre každý záznam samostatne.Sorts IceCream by the sum of its Quantity and OnOrder columns for each record individually. Súčet je číslo, preto bude tabuľka zoradená číselne.The sum is a number, so the table is sorted numerically. Poradie zoradenia je v predvolenom nastavení vzostupné.By default, the sort order is ascending. Vzhľadom na to, že zoraďujeme podľa vzorca a nie podľa nespracovaných hodnôt stĺpca, nemôžeme použiť funkciu SortByColumns.Since we are sorting by a formula and not by raw column values, there is no equivalent using SortByColumns.
Sort( Sort( IceCream, OnOrder ), Quantity )Sort( Sort( IceCream, OnOrder ), Quantity )

SortByColumns( IceCream, "OnOrder", Ascending, "Quantity", Ascending )SortByColumns( IceCream, "OnOrder", Ascending, "Quantity", Ascending )
Zoradí tabuľku IceCream najprv podľa stĺpca OnOrder a potom podľa stĺpca Quantity.Sorts IceCream first by its OnOrder column, and then by its Quantity column. Všimnite si, že hodnota Pistachio je v prvom zoradení podľa možnosti OnOrder pred hodnotou Vanilla a že potom sa spoločne presunuli na ich príslušné miesto podľa možnosti Quantity.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( IceCream, "Flavor", [ "Pistachio", "Strawberry" ] )SortByColumns( IceCream, "Flavor", [ "Pistachio", "Strawberry" ] ) Zoradí tabuľku IceCream podľa stĺpca Flavor na základe tabuľky s jedným stĺpcom obsahujúcim hodnoty Pistachio a Strawberry.Sorts IceCream by it's Flavor column based on the single column table containing "Pistachio" and "Strawberry". Záznamy, ktoré majú možnosť Flavor s hodnotou Pistachio sa vo výsledku budú zobrazovať prvé, po nich budú nasledovať záznamy obsahujúce príchuť Strawberry.Records which have a Flavor of "Pistachio" will appear first in the result, followed by records that contain "Strawberry". Hodnoty v stĺpci Flavor, pri ktorých sa nenašla zhoda, napr. Vanilla, sa zobrazia až po položkách, pri ktorých sa zhoda 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

Ak si chcete tieto príklady vyskúšať sami, vytvorte zdroj údajov IceCream ako kolekciu:To run these examples yourself, create the IceCream data source as a collection:

  1. Pridajte tlačidlo a nastavte jeho vlastnosť OnSelect na tento vzorec:Add a button, and set its OnSelect property to this formula:
    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 } )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. Pozrite si ukážku aplikácie, vyberte tlačidlo a potom sa stlačením klávesa Esc vráťte do predvoleného pracovného priestoru.Preview the app, select the button, and then press Esc to return to the default workspace.
  3. V ponuke Súbor vyberte položku Kolekcie a zobrazte kolekciu, ktorú ste práve vytvorili. Potom sa stlačením klávesa Esc vráťte do predvoleného pracovného priestoru.Select Collections on the File menu to display the collection that you just created, and then press Esc to return to the default workspace.

Funkcia SortSort

  1. Pridajte ďalšie tlačidlo a nastavte jeho vlastnosť OnSelect na tento vzorec:Add another button, and set its OnSelect property to this formula:
    ClearCollect( SortByFlavor, Sort( IceCream, Flavor ) )ClearCollect( SortByFlavor, Sort( IceCream, Flavor ) )

    Predchádzajúci vzorec vytvorí druhú kolekciu s názvom SortByFlavor, ktorá obsahuje rovnaké údaje ako Ice Cream.The previous formula creates a second collection, named SortByFlavor, that contains the same data as Ice Cream. Nová kolekcia však obsahuje údaje zoradené podľa abecedy vo vzostupnom poradí podľa stĺpca Flavor.However, the new collection contains the data sorted alphabetically by the Flavor column in ascending order.

  2. Stlačte kláves F5, vyberte nové tlačidlo a potom stlačte kláves Esc.Press F5, select the new button, and then press Esc.

  3. V ponuke Súbor vyberte položku Kolekcie a zobrazte obe kolekcie. Potom sa stlačením klávesa Esc vráťte do predvoleného pracovného priestoru.Select Collections on the File menu to display both collections, and then press Esc to return to the default workspace.

  4. Zopakujte posledné tri kroky, ale zmeňte názov kolekcie, ktorú chcete vytvoriť, a nahraďte vzorec Sort iným vzorcom z tabuľky príkladov uvedenej v tejto časti vyššie používajúcej funkciu 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.

Funkcia SortByColumnsSortByColumns

  1. Pridajte ďalšie tlačidlo a nastavte jeho vlastnosť OnSelect na tento vzorec:Add another button, and set its OnSelect property to this formula:
    ClearCollect( SortByQuantity, SortByColumns( IceCream, "Quantity", Ascending, "Flavor", Descending ) )ClearCollect( SortByQuantity, SortByColumns( IceCream, "Quantity", Ascending, "Flavor", Descending ) )

    Predchádzajúci vzorec vytvorí tretiu kolekciu s názvom SortByQuantity, ktorá obsahuje rovnaké údaje ako Ice Cream.The previous formula creates a third collection, named SortByQuantity, that contains the same data as Ice Cream. Nová kolekcia však obsahuje údaje zoradené číselne podľa stĺpca Quanity vo vzostupnom poradí a potom podľa stĺpca Flavor v zostupnom poradí.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. Stlačte kláves F5, vyberte nové tlačidlo a potom stlačte kláves Esc.Press F5, select the new button, and then press Esc.

  3. V ponuke Súbor vyberte položku Kolekcie a zobrazte všetky tri kolekcie. Potom sa stlačením klávesa Esc vráťte do predvoleného pracovného priestoru.Select Collections on the File menu to display all three collections, and then press Esc to return to the default workspace.

  4. Zopakujte posledné tri kroky, ale zmeňte názov kolekcie, ktorú chcete vytvoriť, a nahraďte vzorec SortByColumns iným vzorcom z tabuľky príkladov uvedenej v tejto časti vyššie používajúcej funkciu 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.