Funktionerne SORTER og SortByColumns i PowerAppsSort and SortByColumns functions in PowerApps

Sorterer en tabel.Sorts a table.

BeskrivelseDescription

Funktionen SORTER sorterer en tabel på basis af en formel.The Sort function sorts a table based on a formula.

Formlen evalueres for hver post i tabellen, og resultaterne bruges til at sortere tabellen.The formula is evaluated for each record of the table, and the results are used to sort the table. Formlen skal resultere i et tal, en streng eller en boolesk værdi. Den kan ikke resultere i en tabel 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.

Felter i den post, der behandles i øjeblikket, er tilgængelige i formlen.Fields of the record currently being processed are available within the formula. Du refererer til dem ved navn, som du ville gøre med en hvilken som helst anden værdi.You simply reference them by name as you would any other value. Du kan også referere til egenskaber for kontrolelementer og andre værdier fra hele din app.You can also reference control properties and other values from throughout your app. Yderligere oplysninger finder du i nedenstående eksempler og i arbejde med postområde.For more details, see the examples below and working with record scope.

Hvis du først vil sortere efter én kolonne og derefter efter en anden, skal du integrere én Sorter-formel i en anden.To sort first by one column and then by another, you embed a Sort formula within another. Du kan f.eks. bruge denne formel til at sortere en tabel med Kontakter, først efter kolonnen LastName og derefter efter kolonnen 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 )

Funktionen SortByColumns funktion kan også bruges til at sortere en tabel på basis af en eller flere kolonner.The SortByColumns function can also be used to sort a table based on one or more columns.

Parameterlisten for SortByColumns indeholder navnene på de kolonner, der skal sorteres efter, og sorteringsretningen for hver kolonne.The parameter list for SortByColumns provides the names of the columns to sort by and the sort direction per column. Sorteringen udføres i parameterrækkefølgen (sorteres først efter den første kolonne, derefter den anden osv.).Sorting is performed in the order of the parameters (sorted first by the first column, then the second, and so on). Kolonnenavne er angivet som strenge, der kræver dobbelte anførselstegn, hvis de medtages direkte på parameterlisten.Column names are specified as strings, requiring double quotes if directly included in the parameter list. F.eks. SortByColumns (CustomerTable, "LastName").For example, SortByColumns( CustomerTable, "LastName" ).

Du kan kombinere SortByColumns med et kontrolelement af typen Rulleliste eller Liste for at gøre det muligt for brugerne at vælge, hvilken kolonne der skal sorteres efter.You can combine SortByColumns with a Drop down or List box control to enable users to select which column to sort by.

Ud over at sortere i stigende eller faldende rækkefølge kan SortByColumns sortere på basis af en enkelt kolonnetabel med værdier.In addition to sorting ascending or descending, SortByColumns can sort based on a single column table of values. Du kan f.eks. sortere poster på basis af navnet på en ugedag ved at angive ["mandag", "tirsdag", "onsdag", "torsdag", "fredag", "lørdag", "søndag"] som sorteringsrækkefølgen.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. Alle poster, der har mandag " kommer først, efterfulgt af tirsdag og så videre.All records which have Monday" will come first, followed by Tuesday, and so on. Fundne poster, der ikke vises i sorteringstabellen, placeres i slutningen af listen.Records found that do not appear in the sort table are put at the end of the list.

Tabeller er en værdi i PowerApps, ligesom en streng eller et tal.Tables are a value in PowerApps, just like a string or number. De kan overføres til og der returneres fra funktioner.They can be passed to and returned from functions. SORTER og SortByColumn ændrer ikke en tabel, i stedet tager de en tabel som et argument og returnerer en ny tabel, der er sorteret.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. Se Arbejde med tabeller for at få flere oplysninger.See working with tables for more details.

DelegeringDelegation

Når det er muligt, vil der blive uddelegeret filtrerings- og sorteringshandlinger til datakilden i PowerApps, og resultaterne vil blive gennemgået efter behov.When possible, PowerApps will delegate filter and sort operations to the data source and page through the results on demand. Når du f.eks. starter en app, som viser kontrolelementet Gallery, der er fyldt med data, er det kun det første sæt poster, der vil blive vist på enheden.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 brugeren ruller, hentes flere data fra datakilden.As the user scrolls, additional data is brought down from the data source. Appen starter hurtigere, og du får hurtigere adgang til meget store datasæt.The result is a faster start time for the app and access to very large data sets.

Det er dog ikke altid muligt at uddelegere.However, delegation may not always be possible. Det er forskelligt fra datakilde til datakilde, hvilke funktioner og handlinger de understøtter ved delegering.Data sources vary on what functions and operators they support with delegation. Hvis du ikke kan delegere en formel fuldt ud, forsynes den del, der ikke kan uddelegeres, med en advarsel af oprettelsesmiljøet.If complete delegation of a formula isn't possible, the authoring environment will flag the portion that can't be delegated with a warning. Når det er muligt, kan du overveje at ændre formlen for at undgå funktioner og handlinger, der ikke kan uddelegeres.When possible, consider changing the formula to avoid functions and operators that can't be delegated. Delegeringslisten indeholder oplysninger om, hvilke datakilder og handlinger der kan uddelegeres.The delegation list details which data sources and operations can be delegated.

Hvis der ikke kan uddelegeres, henter PowerApps kun et lille sæt poster, du kan arbejde med lokalt.If delegation is not possible, PowerApps will pull down only a small set of records to work on locally. Filtrerings- og sorteringsfunktionerne fungerer sammen med et reduceret sæt poster.Filter and sort functions will operate on a reduced set of records. Det, der er tilgængeligt i kontrolelementet Gallery, er muligvis ikke det hele, hvilket kan være forvirrende for brugerne.What is available in the Gallery may not be the complete story, which could be confusing to users.

Du kan finde flere oplysninger i oversigten over uddelegering.See the delegation overview for more information.

SyntaksSyntax

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

  • Table – påkrævet.Table - Required. Tabel, der skal sorteres.Table to sort.
  • Formula – påkrævet.Formula - Required. Denne formel evalueres for hver post i tabellen, og resultaterne bruges til at sortere tabellen.This formula is evaluated for each record of the table, and the results are used to sort the table. Du kan referere til kolonner i tabellen.You can reference columns within the table.
  • SortOrder – valgfri.SortOrder - Optional. Angiv SortOrder.Descending for at sortere tabellen i faldende rækkefølge.Specify SortOrder.Descending to sort the table in descending order. SortOrder.Ascending er standardværdien.SortOrder.Ascending is the default value.

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

  • Table – påkrævet.Table - Required. Tabel, der skal sorteres.Table to sort.
  • ColumnName(s) – påkrævet.ColumnName(s) - Required. De kolonnenavne, der skal sorteres efter, som strenge.The column names to sort on, as strings.
  • SortOrder(s) – valgfri.SortOrder(s) - Optional. SortOrder.Ascending eller SortOrder.Descending.SortOrder.Ascending or SortOrder.Descending. SortOrder.Ascending er standardværdien.SortOrder.Ascending is the default. Hvis der angives flere ColumnNames, skal de alle undtagen den sidste kolonne omfatte en SortOrder.If multiple ColumnNames are supplied, all but the last column must include a SortOrder.

    Bemærk

    For de SharePoint- og Excel-datakilder, der indeholder kolonnenavne med mellemrum, skal du angive hvert mellemrum som "_x0020_".For SharePoint and Excel data sources that contain column names with spaces, specify each space as "_x0020_". Du skal f.eks. angive "Kolonnens navn" som "Kolonnens_x0020_navn".For example, specify "Column Name" as "Column_x0020_Name".

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

  • Table – påkrævet.Table - Required. Tabel, der skal sorteres.Table to sort.
  • ColumnName – påkrævet.ColumnName - Required. Det kolonnenavn, der skal sorteres efter, som strenge.The column name to sort on, as strings.
  • SortOrderTable – påkrævet.SortOrderTable - Required. Enkelt kolonnetabel med værdier, der skal sorteres efter.Single column table of values to sort by.

    Bemærk

    For de SharePoint- og Excel-datakilder, der indeholder kolonnenavne med mellemrum, skal du angive hvert mellemrum som "_x0020_".For SharePoint and Excel data sources that contain column names with spaces, specify each space as "_x0020_". Du skal f.eks. angive "Kolonnens navn" som "Kolonnens_x0020_navn".For example, specify "Column Name" as "Column_x0020_Name".

EksemplerExamples

I følgende eksempler bruger vi IceCream-datakilden, som indeholder dataene i denne tabel:For the following examples, we'll use the IceCream data source, which contains the data in this table:

FormelFormula BeskrivelseDescription ResultatResult
Sort( IceCream, Flavor )Sort( IceCream, Flavor )

SortByColumns( IceCream, "Flavor" )SortByColumns( IceCream, "Flavor" )
Sorterer IceCream efter kolonnen Flavor.Sorts IceCream by its Flavor column. Kolonnen Flavor indeholder strenge, så tabellen sorteres alfabetisk.The Flavor column contains strings, so the table is sorted alphabetically. Sorteringsrækkefølgen er som standard stigende.By default, the sort order is ascending.
Sort( IceCream, Quantity )Sort( IceCream, Quantity )

SortByColumns( IceCream, "Quantity" )SortByColumns( IceCream, "Quantity" )
Sorterer IceCream efter kolonnen Quantity.Sorts IceCream by its Quantity column. Kolonnen Quantity indeholder tal, så tabellen sorteres numerisk.The Quantity column contains numbers, so the table is sorted numerically. Sorteringsrækkefølgen er som standard stigende.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 )
Sorterer IceCream efter kolonnen Quantity.Sorts IceCream by its Quantity column. Kolonnen Quantity indeholder tal, så sorteringen udføres numerisk.The Quantity column contains numbers, so the sort is done numerically. Sorteringsrækkefølgen er angivet som faldende.The sort order has been specified as descending.
Sort( IceCream, Quantity + OnOrder )Sort( IceCream, Quantity + OnOrder ) Sorterer IceCream efter summen af kolonnerne Quantity og OnOrder enkeltvist for hver post.Sorts IceCream by the sum of its Quantity and OnOrder columns for each record individually. Summen er et tal, så tabellen sorteres numerisk.The sum is a number, so the table is sorted numerically. Sorteringsrækkefølgen er som standard stigende.By default, the sort order is ascending. Da vi sorterer efter en formel og ikke efter rå kolonneværdier, er der er ingen tilsvarende sortering med 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 )
Sorterer først IceCream efter kolonnen OnOrder og derefter efter kolonnen Quantity.Sorts IceCream first by its OnOrder column, and then by its Quantity column. Bemærk, at "Pistachio" lå højere end "Vanilla" i den første sortering baseret på OnOrder, og derefter blev begge varianter flyttet til den korrekte placering baseret på 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" ] ) Sorterer IceCream efter kolonnen Flavor på basis af tabellen med en enkelt kolonne, der omfatter "Pistachio" og "Strawberry".Sorts IceCream by it's Flavor column based on the single column table containing "Pistachio" and "Strawberry". Poster, der har "Pistachio" som Flavor, vises først i resultatet efterfulgt af poster, der indeholder "Strawberry".Records which have a Flavor of "Pistachio" will appear first in the result, followed by records that contain "Strawberry". Værdier i den Flavor-kolonne, der ikke findes resultater for, f.eks. "Vanilla", vises efter de elementer, der blev fundet resultater for.For values in the Flavor column that are not matched, such as "Vanilla", they will appear after the items that were matched.

Trin for trinStep by step

Hvis du selv skal køre disse eksempler, skal du oprette datakilden IceCream som en samling:To run these examples yourself, create the IceCream data source as a collection:

  1. Tilføj en knap, og angive dens OnSelect-egenskab til denne formel: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. Få vist appen, klik på knappen, og tryk derefter på Esc for at vende tilbage til standardarbejdsområdet.Preview the app, select the button, and then press Esc to return to the default workspace.
  3. Vælg Samlinger i menuen Filer for at få vist den samling, du lige har oprettet, og tryk derefter på Esc for at vende tilbage til standardarbejdsområdet.Select Collections on the File menu to display the collection that you just created, and then press Esc to return to the default workspace.

SortérSort

  1. Tilføj en anden knap, og angiv dens OnSelect-egenskab til denne formel:Add another button, and set its OnSelect property to this formula:
    ClearCollect( SortByFlavor, Sort( IceCream, Flavor ) )ClearCollect( SortByFlavor, Sort( IceCream, Flavor ) )

    Den tidligere formel opretter en anden samling med navnet SortByFlavor, som indeholder de samme data som IceCream.The previous formula creates a second collection, named SortByFlavor, that contains the same data as Ice Cream. Den nye samling indeholder imidlertid dataene sorteret alfabetisk efter kolonnen Flavor i stigende rækkefølge.However, the new collection contains the data sorted alphabetically by the Flavor column in ascending order.

  2. Tryk på F5, vælg den nye knap, og tryk derefter på Esc.Press F5, select the new button, and then press Esc.
  3. Vælg Samlinger i menuen Filer for at få vist begge samlinger, og tryk derefter på Esc for at vende tilbage til standardarbejdsområdet.Select Collections on the File menu to display both collections, and then press Esc to return to the default workspace.
  4. Gentag de sidste tre trin, men rediger navnet på den samling, du vil oprette, og erstat formlen Sort formel med en anden formel fra tabellen i eksemplerne tidligere i dette afsnit, der bruger 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. Tilføj en anden knap, og angiv dens OnSelect-egenskab til denne formel: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 ) )

    Den tidligere formel opretter en tredje samling med navnet SortByQuantity, som indeholder de samme data som IceCream.The previous formula creates a third collection, named SortByQuantity, that contains the same data as Ice Cream. Den nye samling indeholder imidlertid dataene sorteret numerisk efter kolonnen Quantity i stigende rækkefølge og derefter efter kolonnen Flavor i faldende rækkefølge.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. Tryk på F5, vælg den nye knap, og tryk derefter på Esc.Press F5, select the new button, and then press Esc.
  3. Vælg Samlinger i menuen Filer for at få vist alle tre samlinger, og tryk derefter på Esc for at vende tilbage til standardarbejdsområdet.Select Collections on the File menu to display all three collections, and then press Esc to return to the default workspace.
  4. Gentag de sidste tre trin, men rediger navnet på den samling, du vil oprette, og erstat formlen SortByColumns formel med en anden formel fra tabellen i eksemplerne tidligere i dette afsnit, der bruger 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.