Funktionen „Sort“ und „SortByColumns“ in Power Apps

Zum Sortieren einer Tabelle.

Beschreibung

Die Funktion Sort sortiert eine Tabelle basierend auf einer Formel.

Die Formel wird für jeden Datensatz der Tabelle ausgewertet, und die Ergebnisse werden zum Sortieren der Tabelle verwendet. Die Formel muss eine Zahl, eine Zeichenfolge oder einen Booleschen Wert zum Ergebnis haben; das Ergebnis darf keine Tabelle und kein Datensatz sein.

Die Felder des aktuell verarbeiteten Datensatzes sind in der Formel verfügbar. Verwenden Sie den ThisRecord-Operator, oder referenzieren Sie Felder einfach namentlich wie jeden anderen Wert. Der As-Operator kann auch verwendet werden, um den zu verarbeitenden Datensatz zu benennen, wodurch Ihre Formel leichter verständlich wird und verschachtelte Datensätze zugänglich werden. Weitere Informationen finden Sie in den folgenden Beispielen und unter Arbeiten mit Datensatzumfang.

Um zuerst nach einer Spalte und dann nach einer anderen zu sortieren, betten Sie eine Sort-Formel in eine andere ein. Beispielsweise können Sie diese Formel verwenden, um eine Tabelle Contacts zuerst nach der Spalte LastName und dann nach der Spalte FirstName zu sortieren: Sort( Sort( Contacts, LastName ), FirstName )

Die Funktion SortByColumns kann ebenfalls verwendet werden, um eine Tabelle basierend auf einer oder mehreren Spalten zu sortieren.

Die Parameterliste für SortByColumns gibt die Namen der Spalten, nach denen sortiert werden soll, und die Sortierungsrichtung pro Spalte an. Die Sortierung erfolgt in der Reihenfolge der Parameter (zuerst wird nach der ersten Spalte sortiert, dann nach der zweiten usw.). Spaltennamen werden als Zeichenfolgen angegeben; für deren direkte Aufnahme in die Parameterliste sind doppelte Anführungszeichen erforderlich. Beispiel: SortByColumns( CustomerTable, "LastName" ).

Sie können SortByColumns mit einem Drop down- oder einem List box-Steuerelement kombinieren, um Benutzern die Auswahl der Spalte zu ermöglichen, auf der die Sortierung basieren soll.

Über das aufsteigende oder absteigende Sortieren hinaus kann SortByColumns auf der Grundlage einer einspaltigen Wertetabelle sortieren. Beispielsweise können Sie datensatzbasiert nach dem Namen eines Wochentags sortieren, indem Sie [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" ] als Sortierreihenfolge angeben. Alle Datensätze, die Monday enthalten, werden zuerst aufgeführt, gefolgt von Tuesday usw. Gefundene Datensätze, die in der Sortierungstabelle nicht vorkommen, werden an das Ende der Liste gesetzt.

Wie Zeichenfolgen und Zahlen sind auch Tabellen in Power Apps Werte. Sie können an Funktionen übergeben und von diesen zurückgegeben werden. 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. Weitere Details erfahren Sie unter Arbeiten mit Tabellen.

Delegierung

Sofern möglich,erfolgt in Power Apps eine Filterdelegation und Vorgangssortierung bei Bedarf anhand der Ergebnisse entsprechend der Datenquelle. Wenn Sie beispielsweise eine App starten, in der ein Galerie-Steuerelementfeld mit Daten enthalten ist, wird anfänglich nur die erste Datensatzgruppe zum Gerät übertragen. Beim Scrollen werden weitere Daten aus der Datenquelle übertragen. Das führt bei der App zu einer schnelleren Startzeit und einem schnelleren Zugriff auf umfangreiche Datensets.

Allerdings ist eine Delegierung gegebenenfalls nicht immer möglich. Die von Datenquellen in Bezug auf Delegation unterstützten Funktionen und Operatoren unterscheiden sich. Falls die vollständige Delegierung einer Formel nicht möglich ist, wird der Anteil, der nicht delegiert werden kann, in der Erstellungsumgebung mit einer Warnung gekennzeichnet. Denken Sie möglichst über eine Änderung der Formel nach, um Funktionen und Operatoren zu vermeiden, die nicht delegiert werden können. In der Delegierungsliste werden die Datenquellen und Vorgänge, die nicht delegiert werden können, genau aufgeführt.

Wenn keine Delegierung möglich ist, überträgt Power Apps nur wenige Datensatzgruppen zur lokalen Bearbeitung. Filter- und Sortierungsfunktionen arbeiten dann mit weniger Datensatzgruppen. In der Galerie ist möglicherweise nicht alles verfügbar und das könnte für Benutzer verwirrend sein.

Weitere Informationen finden Sie unter Überblick über Delegation.

Syntax

Sort( Table, Formula [, SortOrder ] )

  • Table – Erforderlich. Die zu sortierende Tabelle.
  • Formula – Erforderlich. Diese Formel wird für jeden Datensatz der Tabelle ausgewertet, und die Ergebnisse werden zum Sortieren der Tabelle verwendet. Sie können auf Spalten innerhalb der Tabelle verweisen.
  • SortOrder – Optional. Geben Sie SortOrder.Descending an, um die Tabelle in absteigender Reihenfolge zu sortieren. SortOrder.Ascending ist der Standardwert.

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

  • Table – Erforderlich. Die zu sortierende Tabelle.

  • ColumnName(s) – Erforderlich. Die Spaltennamen, nach denen sortiert werden soll, als Zeichenfolgen.

  • SortOrder(s) – Optional. SortOrder.Ascending oder SortOrder.Descending. SortOrder.Ascending ist der Standardwert. Wenn mehrere ColumnNames angegeben werden, müssen alle außer der letzten Spalte ein SortOrder umfassen.

    Hinweis

    Bei SharePoint- und Excel-Datenquellen, die Spaltennamen mit Leerzeichen enthalten, geben Sie jedes Leerzeichen als "_x0020_" an. Geben Sie zum Beispiel "Column Name" als "Column_x0020_Name" an.

SortByColumns( Table, ColumnName, SortOrderTable )

  • Table – Erforderlich. Die zu sortierende Tabelle.

  • ColumnName – Erforderlich. Der Spaltenname, nach dem sortiert werden soll, als Zeichenfolge.

  • SortOrderTable – Erforderlich. Einspaltige Tabelle mit Werten, nach denen sortiert werden soll.

    Hinweis

    Bei SharePoint- und Excel-Datenquellen, die Spaltennamen mit Leerzeichen enthalten, geben Sie jedes Leerzeichen als "_x0020_" an. Geben Sie zum Beispiel "Column Name" als "Column_x0020_Name" an.

Beispiele

Für das folgende Beispiel verwenden wir die IceCream-Datenquelle, die die Daten in dieser Tabelle enthält:

Formel Beschreibung Ergebnis
Sort( IceCream, Flavor )

SortByColumns( IceCream, "Flavor" )
Sortiert IceCream nach deren Spalte Flavor. Die Spalte Flavor enthält Zeichenfolgen, daher wird die Tabelle alphabetisch sortiert. Die Standardsortierreihenfolge ist aufsteigend.
Sort( IceCream, Quantity )

SortByColumns( IceCream, "Quantity" )
Sortiert IceCream nach deren Spalte Quantity. Die Spalte Quantity enthält Zahlen, daher wird die Tabelle numerisch sortiert. Die Standardsortierreihenfolge ist aufsteigend.
Sort( IceCream, Quantity, SortOrder.Descending )

SortByColumns( IceCream, "Quantity", SortOrder.Descending )
Sortiert IceCream nach deren Spalte Quantity. Die Spalte Quantity enthält Zahlen, daher erfolgt die Sortierung numerisch. Die Sortierreihenfolge wurde als absteigend angegeben.
Sort( IceCream, Quantity + OnOrder ) Sortiert IceCream für jeden Datensatz einzeln nach der Summe ihrer Spalten Quantity und OnOrder. Die Summe ist eine Zahl, daher wird die Tabelle numerisch sortiert. Die Standardsortierreihenfolge ist aufsteigend. Da wir anhand einer Formel und nicht nach bloßen Spaltenwerten sortieren, gibt es kein Äquivalent, das SortByColumns verwendet.
Sort( Sort( IceCream, OnOrder ), Quantity )

SortByColumns( IceCream, "OnOrder", Ascending, "Quantity", Ascending )
Sortiert IceCream zuerst nach deren Spalte OnOrder und dann nach der Spalte Quantity. Beachten Sie, dass „Pistachio“ in der ersten Sortierung basierend auf OnOrder über „Vanilla“ aufstieg und sie dann gemeinsam basierend auf Quantity an ihren passenden Platz rückten.
SortByColumns( IceCream, "Flavor", [ "Pistachio", "Strawberry" ] ) Sortiert IceCream nach deren Spalte Flavor, basierend auf der einspaltigen Tabelle, die „Pistachio“ und „Strawberry“ enthält. Datensätze mit „Pistachio“ als Flavor werden in den Ergebnissen zuerst angezeigt, gefolgt von Datensätzen, die „Strawberry“ enthalten. Werte in der Spalte Flavor, die nicht zugeordnet werden, wie etwa „Vanilla“, werden nach den zugeordneten Werten aufgeführt.

Schritt für Schritt

Um diese Beispiele selbst auszuführen, erstellen Sie die IceCream-Datenquelle als eine Sammlung:

  1. Fügen Sie eine Schaltfläche hinzu, und legen Sie ihre Eigenschaft OnSelect auf diese Formel fest:
    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.
  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.

Sort

  1. Fügen Sie eine weitere Schaltfläche hinzu, und legen Sie ihre Eigenschaft OnSelect auf diese Formel fest:
    ClearCollect( SortByFlavor, Sort( IceCream, Flavor ) )

    Die vorherige Formel erstellt eine zweite Sammlung mit dem Namen SortByFlavor, die die gleichen Daten wie Ice Cream enthält. Die neue Sammlung enthält jedoch die Daten alphabetisch aufsteigend nach der Spalte Flavor sortiert.

  2. Drücken Sie F5, wählen Sie die neue Schaltfläche aus und drücken Sie dann 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.

  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.

SortByColumns

  1. Fügen Sie eine weitere Schaltfläche hinzu, und legen Sie ihre Eigenschaft OnSelect auf diese Formel fest:
    ClearCollect( SortByQuantity, SortByColumns( IceCream, "Quantity", Ascending, "Flavor", Descending ) )

    Die vorherige Formel erstellt eine dritte Sammlung mit dem Namen SortByQuantity, die die gleichen Daten wie Ice Cream enthält. Die neue Sammlung enthält die Daten jedoch numerisch aufsteigend nach der Spalte Quantity und dann absteigend nach der Spalte Flavor sortiert.

  2. Drücken Sie F5, wählen Sie die neue Schaltfläche aus und drücken Sie dann 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.

  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.