Funktionen „Sort“ und „SortByColumns“Sort and SortByColumns functions in PowerApps

Zum Sortieren von Tabellen.Sorts a table.

BeschreibungDescription

Die Funktion Sort sortiert eine Tabelle basierend auf einer Formel.The Sort function sorts a table based on a formula.

Die Formel wird für jeden Datensatz der Tabelle ausgewertet, und die Ergebnisse werden zum Sortieren der Tabelle verwendet.The formula is evaluated for each record of the table, and the results are used to sort the table. Die Formel muss eine Zahl, eine Zeichenfolge oder einen Booleschen Wert zum Ergebnis haben; das Ergebnis darf keine Tabelle und kein Datensatz sein.The formula must result in a number, a string, or a Boolean value; it can't result in a table or a record.

Fields of the record currently being processed are available within the formula. You simply reference them by name as you would any other value. You can also reference control properties and other values from throughout your app. For more details, see the examples below and working with record scope.

Um zuerst nach einer Spalte und dann nach einer anderen zu sortieren, betten Sie eine Sort-Formel in eine andere ein.To sort first by one column and then by another, you embed a Sort formula within another. Beispielsweise können Sie diese Formel verwenden, um eine Tabelle Kontakte zuerst nach der Spalte Nachname und dann nach der Spalte Vorname zu sortieren: Sort( Sort( Kontakte, Nachname ), Vorname )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 )

Die Funktion SortByColumns kann ebenfalls verwendet werden, um eine Tabelle basierend auf einer oder mehreren Spalten zu sortieren.The SortByColumns function can also be used to sort a table based on one or more columns.

Die Parameterliste für SortByColumns gibt die Namen der Spalten, nach denen sortiert werden soll, und die Sortierungsrichtung pro Spalte an.The parameter list for SortByColumns provides the names of the columns to sort by and the sort direction per column. Die Sortierung erfolgt in der Reihenfolge der Parameter (zuerst wird nach der ersten Spalte sortiert, dann nach der zweiten usw.).Sorting is performed in the order of the parameters (sorted first by the first column, then the second, and so on). Spaltennamen werden als Zeichenfolgen angegeben, für deren direkte Aufnahme in die Parameterliste sind doppelte Anführungszeichen erforderlich.Column names are specified as strings, requiring double quotes if directly included in the parameter list. Beispiel: SortByColumns( Kundentabelle, "Nachname" ).For example, SortByColumns( CustomerTable, "LastName" ).

Sie können SortByColumns mit einer Dropdownliste oder einem Listenfeld kombinieren, um Benutzern die Auswahl der Spalte zu ermöglichen, auf der die Sortierung basieren soll.You can combine SortByColumns with a Drop down or List box control to enable users to select which column to sort by.

Über das aufsteigende oder absteigende Sortieren hinaus kann SortByColumns auf der Grundlage einer einspaltigen Wertetabelle sortieren.In addition to sorting ascending or descending, SortByColumns can sort based on a single column table of values. Beispielsweise können Sie datensatzbasiert nach dem Namen eines Wochentags sortieren, indem Sie [ "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag" ] als Sortierreihenfolge angeben.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 Datensätze, die Montag enthalten, werden zuerst aufgeführt, gefolgt von Dienstag usw.All records which have Monday" will come first, followed by Tuesday, and so on. Gefundene Datensätze, die in der Sortierungstabelle nicht vorkommen, werden an das Ende der Liste gesetzt.Records found that do not appear in the sort table are put at the end of the list.

Tabellen stellen in PowerApps einen Wert dar, genau wie Zeichenfolgen oder Zahlen.Tables are a value in PowerApps, just like a string or number. Sie können an Funktionen übergeben und von diesen zurückgegeben werden.They can be passed to and returned from functions. Sort und SortByColumn ändern eine Tabelle nicht; sie nehmen vielmehr eine Tabelle als Argument an und geben eine neue Tabelle zurück, die sortiert wurde.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. Weitere Details erfahren Sie unter Arbeiten mit Tabellen.See working with tables for more details.

Delegation

When possible, PowerApps will delegate filter and sort operations to the data source and page through the results on demand. 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. As the user scrolls, additional data is brought down from the data source. The result is a faster start time for the app and access to very large data sets.

However, delegation may not always be possible. Data sources vary on what functions and operators they support with delegation. If complete delegation of a formula isn't possible, the authoring environment will flag the portion that can't be delegated with a warning. When possible, consider changing the formula to avoid functions and operators that can't be delegated. The delegation list details which data sources and operations can be delegated.

If delegation is not possible, PowerApps will pull down only a small set of records to work on locally. Filter and sort functions will operate on a reduced set of records. What is available in the Gallery may not be the complete story, which could be confusing to users.

See the delegation overview for more information.

SyntaxSyntax

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

  • Table: erforderlich.Table - Required. Die zu sortierende Tabelle.Table to sort.
  • Formula: erforderlich.Formula - Required. Die Formel wird für jeden Datensatz der Tabelle ausgewertet, und die Ergebnisse werden zur Sortierung der Tabelle verwendet.This formula is evaluated for each record of the table, and the results are used to sort the table. Sie können auf Spalten innerhalb der Tabelle verweisen.You can reference columns within the table.
  • SortOrder: optional.SortOrder - Optional. Geben Sie SortOrder.Descending an, um die Tabelle in absteigender Reihenfolge zu sortieren.Specify SortOrder.Descending to sort the table in descending order. SortOrder.Ascending ist der Standardwert.SortOrder.Ascending is the default value.

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

  • Table: erforderlich.Table - Required. Die zu sortierende Tabelle.Table to sort.
  • ColumnName(s): erforderlich.ColumnName(s) - Required. Die Spaltennamen, nach denen sortiert werden soll, als Zeichenfolgen.The column names to sort on, as strings.
  • SortOrder(s): optional.SortOrder(s) - Optional. SortOrder.Ascending oder SortOrder.Descending.SortOrder.Ascending or SortOrder.Descending. SortOrder.Ascending ist der Standardwert.SortOrder.Ascending is the default. Wenn mehrere ColumnNames angegeben sind, müssen alle außer dem letzten einen SortOrder-Parameter umfassen.If multiple ColumnNames are supplied, all but the last column must include a SortOrder.

    Hinweis: Bei Excel- oder SharePoint-Datenquellen, die Spaltennamen mit Leerzeichen enthalten, geben Sie jedes Leerzeichen als "_X0020_" an.Note: For SharePoint and Excel data sources that contain column names with spaces, specify each space as "_x0020_". "Name der Spalte" wird z.B. als "Name_x0020_der_x0020_Spalte" angegeben.For example, specify "Column Name" as "Column_x0020_Name".

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

  • Table: erforderlich.Table - Required. Die zu sortierende Tabelle.Table to sort.
  • ColumnName: erforderlich.ColumnName - Required. Der Name der Spalte, nach der sortiert werden soll, als Zeichenfolge.The column name to sort on, as strings.
  • SortOrderTable: erforderlich.SortOrderTable - Required. Einspaltige Tabelle mit Werten, nach denen sortiert werden soll.Single column table of values to sort by.

    Hinweis: Bei Excel- oder SharePoint-Datenquellen, die Spaltennamen mit Leerzeichen enthalten, geben Sie jedes Leerzeichen als "_X0020_" an.Note: For SharePoint and Excel data sources that contain column names with spaces, specify each space as "_x0020_". "Name der Spalte" wird z.B. als "Name_x0020_der_x0020_Spalte" angegeben.For example, specify "Column Name" as "Column_x0020_Name".

BeispieleExamples

Für das folgende Beispiel verwenden wir die Speiseeis-Datenquelle, die die Daten in dieser Tabelle enthält:For the following examples, we'll use the IceCream data source, which contains the data in this table:

FormelFormula BeschreibungDescription ErgebnisResult
Sort( Speiseeis, Geschmacksrichtung )Sort( IceCream, Flavor )

SortByColumns( Speiseeis, "Geschmacksrichtung" )SortByColumns( IceCream, "Flavor" )
Sortiert Speiseeis nach deren Spalte Geschmacksrichtung.Sorts IceCream by its Flavor column. Die Spalte Geschmacksrichtung enthält Zeichenfolgen, daher wird die Tabelle alphabetisch sortiert.The Flavor column contains strings, so the table is sorted alphabetically. Die Standard-Sortierreihenfolge ist aufsteigend.By default, the sort order is ascending.
Sort( Speiseeis, Menge )Sort( IceCream, Quantity )

SortByColumns( Speiseeis, "Menge" )SortByColumns( IceCream, "Quantity" )
Sortiert Speiseeis nach deren Spalte Menge.Sorts IceCream by its Quantity column. Die Spalte Menge enthält Zahlen, daher wird die Tabelle numerisch sortiert.The Quantity column contains numbers, so the table is sorted numerically. Die Standard-Sortierreihenfolge ist aufsteigend.By default, the sort order is ascending.
Sort( Speiseeis, Menge, SortOrder.Descending )Sort( IceCream, Quantity, SortOrder.Descending )

SortByColumns( Speiseeis, "Menge", SortOrder.Descending )SortByColumns( IceCream, "Quantity", SortOrder.Descending )
Sortiert Speiseeis nach deren Spalte Menge.Sorts IceCream by its Quantity column. Die Spalte Menge enthält Zahlen, daher erfolgt die Sortierung numerisch.The Quantity column contains numbers, so the sort is done numerically. Die Sortierreihenfolge wurde als absteigend angegeben.The sort order has been specified as descending.
Sort( Speiseeis, Menge + Nachbestellt )Sort( IceCream, Quantity + OnOrder ) Sortiert Speiseeis für jeden Datensatz einzeln nach der Summe ihrer Spalten Menge und Nachbestellt.Sorts IceCream by the sum of its Quantity and OnOrder columns for each record individually. Die Summe ist eine Zahl, daher wird die Tabelle numerisch sortiert.The sum is a number, so the table is sorted numerically. Die Standard-Sortierreihenfolge ist aufsteigend.By default, the sort order is ascending. Da wir anhand einer Formel und nicht nach bloßen Spaltenwerten sortieren, gibt es kein Äquivalent, das SortByColumns verwendet.Since we are sorting by a formula and not by raw column values, there is no equivalent using SortByColumns.
Sort( Sort( Speiseeis, Nachbestellt ), Menge )Sort( Sort( IceCream, OnOrder ), Quantity )

SortByColumns( Speiseeis, "Nachbestellt", Aufsteigend, "Menge", Aufsteigend )SortByColumns( IceCream, "OnOrder", Ascending, "Quantity", Ascending )
Sortiert Speiseeis zuerst nach deren Spalte Nachbestellt und dann nach der Spalte Menge.Sorts IceCream first by its OnOrder column, and then by its Quantity column. Beachten Sie, dass „Pistazie“ in der ersten Sortierung basierend auf Nachbestellung über „Vanille“ aufstieg und sie dann gemeinsam basierend auf Menge an ihren passenden Platz rückten.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( Speiseeis, "Geschmacksrichtung", [ "Pistazie", "Erdbeer" ] )SortByColumns( IceCream, "Flavor", [ "Pistachio", "Strawberry" ] ) Sortiert Speiseeis nach deren Spalte Geschmacksrichtung, basierend auf der einspaltigen Tabelle, die „Pistazie“ und „Erdbeer“ enthält.Sorts IceCream by it's Flavor column based on the single column table containing "Pistachio" and "Strawberry". Datensätze mit der Geschmacksrichtung „Pistazie“ werden in den Ergebnissen zuerst angezeigt, gefolgt von Datensätzen, die „Erdbeer“ enthalten.Records which have a Flavor of "Pistachio" will appear first in the result, followed by records that contain "Strawberry". Werte in der Spalte Geschmacksrichtung, die nicht zugeordnet werden, wie etwa „Vanille“, werden nach den zugeordneten Werten aufgeführt.For values in the Flavor column that are not matched, such as "Vanilla", they will appear after the items that were matched.

Schritt für SchrittStep by step

Um diese Beispiele selbst auszuführen, erstellen Sie die Datenquelle Speiseeis als Sammlung:To run these examples yourself, create the IceCream data source as a collection:

  1. Fügen Sie eine Schaltfläche hinzu, und legen Sie ihre Eigenschaft OnSelect auf diese Formel fest:Add a button, and set its OnSelect property to this formula:
    ClearCollect( Speiseeis, { Geschmacksrichtung: "Schokolade", Menge: 100, Nachbestellt: 150 }, { Geschmacksrichtung: "Vanille", Menge: 200, Nachbestellt: 20 }, { Geschmacksrichtung: "Erdbeer", Menge: 300, Nachbestellt: 0 }, { Geschmacksrichtung: "Schoko-Minz", Menge: 60, Nachbestellt: 100 }, { Geschmacksrichtung: "Pistazie", Menge: 200, Nachbestellt: 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ühren Sie eine Vorschau der App aus, wählen Sie die Schaltfläche aus, und drücken Sie dann ESC, um zum Standardarbeitsbereich zurückzukehren.Preview the app, select the button, and then press Esc to return to the default workspace.
  3. Wählen Sie im Menü Datei das Element Sammlungen aus, um die soeben erstellte Sammlung anzuzeigen, und drücken Sie dann ESC, um zum Standardarbeitsbereich zurückzukehren.Select Collections on the File menu to display the collection that you just created, and then press Esc to return to the default workspace.

SortierenSort

  1. Fügen Sie eine weitere Schaltfläche hinzu, und legen Sie ihre Eigenschaft OnSelect auf diese Formel fest:Add another button, and set its OnSelect property to this formula:
    ClearCollect( SortByFlavor, Sort( Speiseeis, Geschmacksrichtung ) ) ClearCollect( SortByFlavor, Sort( IceCream, Flavor ) )

    Die vorstehende Formel erstellt eine zweite Sammlung mit dem Namen SortByFlavor, die die gleichen Daten wie Speiseeis enthält.The previous formula creates a second collection, named SortByFlavor, that contains the same data as Ice Cream. Die neue Sammlung enthält jedoch die Daten alphabetisch aufsteigend nach der Spalte Geschmacksrichtung sortiert.However, the new collection contains the data sorted alphabetically by the Flavor column in ascending order.

  2. Drücken Sie F5, wählen Sie die neue Schaltfläche aus, und drücken Sie dann ESC.Press F5, select the new button, and then press Esc.
  3. Wählen Sie im Menü Datei das Element Sammlungen aus, um beide Sammlungen anzuzeigen, und drücken Sie dann ESC, um zum Standardarbeitsbereich zurückzukehren.Select Collections on the File menu to display both collections, and then press Esc to return to the default workspace.
  4. Wiederholen Sie die letzten drei Schritte, ändern Sie jedoch den Namen der Sammlung, die Sie erstellen möchten, und ersetzen Sie die Formel Sort durch eine andere Formel aus der Tabelle mit Beispielen weiter oben in diesem Abschnitt, die Sort verwendet.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. Fügen Sie eine weitere Schaltfläche hinzu, und legen Sie ihre Eigenschaft OnSelect auf diese Formel fest:Add another button, and set its OnSelect property to this formula:
    ClearCollect( SortByQuantity, SortByColumns( Speiseeis, "Menge", Ascending, "Geschmacksrichtung", Descending ) ) ClearCollect( SortByQuantity, SortByColumns( IceCream, "Quantity", Ascending, "Flavor", Descending ) )

    Die vorstehende Formel erstellt eine dritte Sammlung mit dem Namen SortByQuantity, die die gleichen Daten wie Speiseeis enthält.The previous formula creates a third collection, named SortByQuantity, that contains the same data as Ice Cream. Die neue Sammlung enthält die Daten jedoch numerisch aufsteigend nach der Spalte Menge und dann absteigend nach der Spalte Geschmacksrichtung sortiert.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. Drücken Sie F5, wählen Sie die neue Schaltfläche aus, und drücken Sie dann ESC.Press F5, select the new button, and then press Esc.
  3. Wählen Sie im Menü Datei das Element Sammlungen aus, um alle drei Sammlungen anzuzeigen, und drücken Sie dann ESC, um zum Standardarbeitsbereich zurückzukehren.Select Collections on the File menu to display all three collections, and then press Esc to return to the default workspace.
  4. Wiederholen Sie die letzten drei Schritte, ändern Sie jedoch den Namen der Sammlung, die Sie erstellen möchten, und ersetzen Sie die Formel SortByColumns durch eine andere Formel aus der Tabelle mit Beispielen weiter oben in diesem Abschnitt, die SortByColumns verwendet.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.