Funktionerna Sort och SortByColumns i Microsoft PowerAppsSort and SortByColumns functions in PowerApps

Sorterar en tabell.Sorts a table.

BeskrivningDescription

Funktionen Sort sorterar en tabell utifrån en formel.The Sort function sorts a table based on a formula.

Formeln utvärderas för varje post i tabellen, och resultaten används för att sortera tabellen.The formula is evaluated for each record of the table, and the results are used to sort the table. Formeln måste resultera i ett tal, en sträng eller ett booleskt värde. Den kan inte resultera i en tabell eller en post.The formula must result in a number, a string, or a Boolean value; it can't result in a table or a record.

Fält i en aktuella posten är tillgängliga i formeln.Fields of the record currently being processed are available within the formula. Du bara referera till dem med deras namn, precis som ett annat värde.You simply reference them by name as you would any other value. Du kan också referera till kontrollegenskaper och andra värden i hela din app.You can also reference control properties and other values from throughout your app. Mer information finns i exemplen nedan och arbeta med postomfång.For more details, see the examples below and working with record scope.

Om du vill sortera efter en viss kolumn först och sedan efter en annan, bäddar du in en Sort-formler i varandra.To sort first by one column and then by another, you embed a Sort formula within another. Du kan t.ex. använda den här formeln för att sortera en Contacts-tabell, först efter kolumnen LastName och sedan efter kolumnen FirstName: Sort (Sort (Contacts, LastName), FirstName)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 )

Du kan även använda funktionen SortByColumns om du vill sortera en tabell utifrån en eller flera kolumner.The SortByColumns function can also be used to sort a table based on one or more columns.

Parameterlistan för SortByColumns innehåller namnen på de kolumner som du vill sortera efter och sorteringsordningen per kolumn.The parameter list for SortByColumns provides the names of the columns to sort by and the sort direction per column. Sorteringen genomförs i den ordning som parametrarna ligger (först efter den första kolumnen, sedan efter den andra osv).Sorting is performed in the order of the parameters (sorted first by the first column, then the second, and so on). Kolumnnamnen anges som strängar, och kräver dubbla citattecken om ed inkluderas direkt i parameterlistan.Column names are specified as strings, requiring double quotes if directly included in the parameter list. Exempel: SortByColumns (CustomerTable, "LastName").For example, SortByColumns( CustomerTable, "LastName" ).

Du kan kombinera SortByColumns med en nedrullningsbar listruta eller vanlig listruta så att användarna kan välja vilken kolumn de ska sortera efter.You can combine SortByColumns with a Drop down or List box control to enable users to select which column to sort by.

Förutom att sortera i stigande eller fallande ordning kan SortByColumns sortera efter en enkolumnstabell med värden.In addition to sorting ascending or descending, SortByColumns can sort based on a single column table of values. Du kan t.ex. göra en postbaserad sortering efter veckodagarnas namn genom att ange ["måndag", "tisdag", "onsdag", "torsdag", "fredag", "lördag", "söndag"] som sorteringsordning.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. Alla poster som innehåller måndag kommer först, därefter tisdag osv.All records which have Monday" will come first, followed by Tuesday, and so on. Poster som inte förekommer i sorteringstabellen placeras i slutet av listan.Records found that do not appear in the sort table are put at the end of the list.

Tables är ett värde i PowerApps, precis som en sträng eller en siffra.Tables are a value in PowerApps, just like a string or number. De kan skickas till och returneras från funktioner.They can be passed to and returned from functions. Sort och SortByColumn ändrar inte en tabell, utan använder istället tabellen som ett argument och returnerar en ny tabell som har sorterats.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. Mer information finns i Arbeta med tabeller.See working with tables for more details.

DelegeringDelegation

När så är möjligt, delegerar PowerApps filter och sortering till datakällan och bläddrar igenom resultaten på begäran.When possible, PowerApps will delegate filter and sort operations to the data source and page through the results on demand. När du till exempel startar en app som visar en gallerikontroll fylld med data, kommer bara den första uppsättningen poster inledningsvis att föras till enheten.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. När användaren rullar sidan hämtas ytterligare data ned från datakällan.As the user scrolls, additional data is brought down from the data source. Resultatet är snabbare starttid för appen och åtkomst till mycket stora datauppsättningar.The result is a faster start time for the app and access to very large data sets.

Dock är det kanske inte alltid möjligt att delegera.However, delegation may not always be possible. Datakällor varierar i förhållande till vilka funktioner och operatörer som de stödjer med delegering.Data sources vary on what functions and operators they support with delegation. Om fullständig delegering av en formel inte är möjligt, kommer utvecklingsmiljön att flagga den del som inte kan delegeras med en varning.If complete delegation of a formula isn't possible, the authoring environment will flag the portion that can't be delegated with a warning. Om möjligt bör du överväga att ändra formeln för att undvika funktioner och operatörer som inte kan delegeras.When possible, consider changing the formula to avoid functions and operators that can't be delegated. I delegeringslistan redovisas vilka datakällor och åtgärder som kan delegeras.The delegation list details which data sources and operations can be delegated.

Om delegering inte är möjligt, drar PowerApps endast ned en liten uppsättning poster som den arbetar på lokalt.If delegation is not possible, PowerApps will pull down only a small set of records to work on locally. Filtrerings- och sorteringsfunktioner fungerar på en reducerad uppsättning poster.Filter and sort functions will operate on a reduced set of records. Det som är tillgängligt i galleriet kanske inte är hela uppsättningen, vilket kan vara förvirrande för användarna.What is available in the Gallery may not be the complete story, which could be confusing to users.

Mer information finns i Översikt över delegering.See the delegation overview for more information.

SyntaxSyntax

Sort (Table, Formula [, SortOrder])Sort( Table, Formula [, SortOrder ] )

  • Table – obligatoriskt.Table - Required. Tabell som ska sorteras.Table to sort.
  • Formula – obligatoriskt.Formula - Required. Den här formeln utvärderas för varje post i tabellen, och resultaten används för att sortera tabellen.This formula is evaluated for each record of the table, and the results are used to sort the table. Du kan referera till kolumner i tabellen.You can reference columns within the table.
  • SortOrder – valfritt.SortOrder - Optional. Ange SortOrder.Descending om du vill sortera tabellen i fallande ordning.Specify SortOrder.Descending to sort the table in descending order. SortOrder.Ascending är standard.SortOrder.Ascending is the default value.

SortByColumns (Table, ColumnName1 [, SortOrder1, ColumnName2, SortOrder2, ...])SortByColumns( Table, ColumnName1 [, SortOrder1, ColumnName2, SortOrder2, ... ] )

  • Table – obligatoriskt.Table - Required. Tabell som ska sorteras.Table to sort.
  • ColumnName(s) – obligatoriskt.ColumnName(s) - Required. De kolumnnamn som sorteringen ska baseras på, som strängar.The column names to sort on, as strings.
  • SortOrder(s) – valfritt.SortOrder(s) - Optional. SortOrder.Ascending eller SortOrder.Descending.SortOrder.Ascending or SortOrder.Descending. SortOrder.Ascending är standard.SortOrder.Ascending is the default. Om flera ColumnNames tillhandahålls måste alla kolumner utom den sista inkludera SortOrder.If multiple ColumnNames are supplied, all but the last column must include a SortOrder.

    Anteckning

    För SharePoint- och Excel-datakällor som innehåller kolumnnamn med blanksteg, anges varje utrymme som ”_x0020_”.For SharePoint and Excel data sources that contain column names with spaces, specify each space as "_x0020_". Ange till exempel "Kolumnens namn" som "Kolumnens_x0020_namn".For example, specify "Column Name" as "Column_x0020_Name".

SortByColumns (Table, ColumnName, SortOrderTable)SortByColumns( Table, ColumnName, SortOrderTable )

  • Table – obligatoriskt.Table - Required. Tabell som ska sorteras.Table to sort.
  • ColumnName – obligatoriskt.ColumnName - Required. Det kolumnnamn som sorteringen ska baseras på, som strängar.The column name to sort on, as strings.
  • SortOrderTable – obligatoriskt.SortOrderTable - Required. Enkolumnstabell med värden att sortera efter.Single column table of values to sort by.

    Anteckning

    För SharePoint- och Excel-datakällor som innehåller kolumnnamn med blanksteg, anges varje utrymme som ”_x0020_”.For SharePoint and Excel data sources that contain column names with spaces, specify each space as "_x0020_". Ange till exempel "Kolumnens namn" som "Kolumnens_x0020_namn".For example, specify "Column Name" as "Column_x0020_Name".

ExempelExamples

I följande exempel använder vi datakällan IceCream, vilken innehåller de data som visas i den här tabellen:For the following examples, we'll use the IceCream data source, which contains the data in this table:

FormelFormula BeskrivningDescription ResultatResult
Sort (IceCream, Smak)Sort( IceCream, Flavor )

SortByColumns (IceCream, "Smak")SortByColumns( IceCream, "Flavor" )
Sorterar IceCream efter kolumnen Smak.Sorts IceCream by its Flavor column. Kolumnen Smak innehåller strängar, så tabellen sorteras alfabetiskt.The Flavor column contains strings, so the table is sorted alphabetically. Sorteringsordningen är stigande som standard.By default, the sort order is ascending.
Sort (IceCream, Quantity)Sort( IceCream, Quantity )

SortByColumns (IceCream, "Kvantitet")SortByColumns( IceCream, "Quantity" )
Sorterar IceCream efter kolumnen Kvantitet.Sorts IceCream by its Quantity column. Kolumnen Kvantitet innehåller tal, så tabellen sorteras numeriskt.The Quantity column contains numbers, so the table is sorted numerically. Sorteringsordningen är stigande som standard.By default, the sort order is ascending.
Sort (IceCream, Kvantitet, SortOrder.Descending)Sort( IceCream, Quantity, SortOrder.Descending )

SortByColumns (IceCream, "Kvantitet", SortOrder.Descending)SortByColumns( IceCream, "Quantity", SortOrder.Descending )
Sorterar IceCream efter kolumnen Kvantitet.Sorts IceCream by its Quantity column. Kolumnen Kvantitet innehåller tal, så sorteringen är numerisk.The Quantity column contains numbers, so the sort is done numerically. Sorteringsordningen har angetts som fallande.The sort order has been specified as descending.
Sort (IceCream, Kvantitet + OnOrder)Sort( IceCream, Quantity + OnOrder ) Sorterar IceCream efter summan i kolumnerna Kvantitet och OnOrder för varje enskild post.Sorts IceCream by the sum of its Quantity and OnOrder columns for each record individually. Summan är ett tal, så tabellen sorteras numeriskt.The sum is a number, so the table is sorted numerically. Sorteringsordningen är stigande som standard.By default, the sort order is ascending. Eftersom vi sorterar efter en formel och inte kolumnernas rådata så finns det ingen motsvarighet till SortByColumns.Since we are sorting by a formula and not by raw column values, there is no equivalent using SortByColumns.
Sort (Sort (IceCream, OnOrder), Kvantitet)Sort( Sort( IceCream, OnOrder ), Quantity )

SortByColumns (IceCream, "OnOrder", Ascending, "Kvantitet", Ascending)SortByColumns( IceCream, "OnOrder", Ascending, "Quantity", Ascending )
Sorterar först IceCream efter kolumnen OnOrder och sedan efter kolumnen Kvantitet.Sorts IceCream first by its OnOrder column, and then by its Quantity column. Observera att "Pistaschmandel" hamnade före "Vanilj" i den första sorteringen, som utgick från OnOrder, varefter de fick sin slutliga plats utifrån Kvantitet.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, "Smak", [ "Pistaschmandel", "Jordgubb" ])SortByColumns( IceCream, "Flavor", [ "Pistachio", "Strawberry" ] ) Sorterar IceCream efter kolumnen Smak baserat på den enkolumnstabell som innehåller "Pistaschmandel" och "Jordgubb".Sorts IceCream by it's Flavor column based on the single column table containing "Pistachio" and "Strawberry". Poster där Smak har värdet "Pistaschmandel" visas först i resultatet, följt av poster som innehåller "Jordgubb".Records which have a Flavor of "Pistachio" will appear first in the result, followed by records that contain "Strawberry". När det gäller värden i kolumnen Smak som saknar matchning, t.ex. "Vanilj", så visas de efter de objekt som kunde matchas.For values in the Flavor column that are not matched, such as "Vanilla", they will appear after the items that were matched.

Steg för stegStep by step

Om du vill köra dessa exempel själv skapar du datakällan IceCream som en samling:To run these examples yourself, create the IceCream data source as a collection:

  1. Lägg till en knapp och ge dess egenskap OnSelect egenskapen följande formel:Add a button, and set its OnSelect property to this formula:
    ClearCollect (IceCream, {Smak: "Choklad", Kvantitet: 100, OnOrder: 150 }, {Smak: "Vanilj", Kvantitet: 200, OnOrder: 20 }, {Smak: "Jordgubb", Kvantitet: 300, OnOrder: 0 }, {Smak: "Mintchoklad", Kvantitet: 60, OnOrder: 100 }, {Smak: "Pistaschmandel", Kvantitet: 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. Förhandsgranska appen, välj knappen och återgå sedan till standardarbetsytan genom att trycka på Esc.Preview the app, select the button, and then press Esc to return to the default workspace.
  3. Om du vill visa den samling som du just har skapat väljer du SamlingarArkiv-menyn och återgår sedan till standardarbetsytan genom att trycka på Esc.Select Collections on the File menu to display the collection that you just created, and then press Esc to return to the default workspace.

SorteraSort

  1. Lägg till en knapp och ge dess OnSelect-egenskap följande formel:Add another button, and set its OnSelect property to this formula:
    ClearCollect( SortByFlavor, Sort( IceCream, Flavor ) )ClearCollect( SortByFlavor, Sort( IceCream, Flavor ) )

    Den föregående formeln skapar en andra samling, med namnet SortByFlavor, som innehåller samma data som Ice Cream.The previous formula creates a second collection, named SortByFlavor, that contains the same data as Ice Cream. Den nya samlingen innehåller dock data som sorterats alfabetiskt i stigande ordning efter kolumnen Smak.However, the new collection contains the data sorted alphabetically by the Flavor column in ascending order.

  2. Tryck på F5, välj den nya knappen och tryck på Esc.Press F5, select the new button, and then press Esc.
  3. Om du vill visa båda samlingarna väljer du SamlingarArkiv-menyn och återgår sedan till standardarbetsytan genom att trycka på Esc.Select Collections on the File menu to display both collections, and then press Esc to return to the default workspace.
  4. Upprepa de senaste tre stegen, men ändra namnet på den samling som du vill skapa och ersätt formeln Sort formel med en annan formel från tabellen med exempel tidigare i det här avsnittet där Sort används.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. Lägg till en knapp och ge dess OnSelect-egenskap följande formel:Add another button, and set its OnSelect property to this formula:
    ClearCollect (SortByQuantity, SortByColumns (IceCream, ”Kvantitet”, Ascending, ”Smak”, Descending))ClearCollect( SortByQuantity, SortByColumns( IceCream, "Quantity", Ascending, "Flavor", Descending ) )

    Den föregående formeln skapar en tredje samling, med namnet SortByQuantity, som innehåller samma data som Ice Cream.The previous formula creates a third collection, named SortByQuantity, that contains the same data as Ice Cream. Den nya samlingen innehåller dock data som sorterats numeriskt i stigande ordning efter kolumnen Kvantitet och sedan i fallande ordning efter kolumnen Smak.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. Tryck på F5, välj den nya knappen och tryck på Esc.Press F5, select the new button, and then press Esc.
  3. Om du vill visa alla tre samlingarna väljer du SamlingarArkiv-menyn och återgår sedan till standardarbetsytan genom att trycka på Esc.Select Collections on the File menu to display all three collections, and then press Esc to return to the default workspace.
  4. Upprepa de senaste tre stegen, men ändra namnet på den samling som du vill skapa och ersätt formeln SortByColumns formel med en annan formel från tabellen med exempel tidigare i det här avsnittet där SortByColumns används.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.