Zum Sortieren von Tabellen.

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 Datensatzes, der derzeit verarbeitet wird, sind in der Formel verfügbar. Sie können einfach über den Namen darauf verweisen, wie Sie dies auch bei anderen Werten tun. Außerdem können Sie überall in der App auf Steuerelementeigenschaften und andere Werte verweisen. Weitere Informationen finden Sie in den unten angegebenen Beispielen und im Artikel zur Verwendung von Datensatzbereichen.

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 Kontakte zuerst nach der Spalte Nachname und dann nach der Spalte Vorname zu sortieren: Sort( Sort( Kontakte, Nachname ), Vorname )

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( Kundentabelle, "Nachname" ).

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.

Ü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 [ "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag" ] als Sortierreihenfolge angeben. Alle Datensätze, die Montag enthalten, werden zuerst aufgeführt, gefolgt von Dienstag usw. Gefundene Datensätze, die in der Sortierungstabelle nicht vorkommen, werden an das Ende der Liste gesetzt.

Tabellen stellen in PowerApps einen Wert dar, genau wie Zeichenfolgen oder Zahlen. 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

Nach Möglichkeit werden Filter- und Sortiervorgänge von PowerApps an die Datenquelle delegiert und die Seiten mit den Ergebnissen nur bei Bedarf bereitgestellt. Wenn Sie beispielsweise eine App starten, in der ein mit Daten gefülltes Katalog-Steuerelement angezeigt wird, wird zuerst nur die erste Gruppe mit Datensätzen auf das Gerät übertragen. Wenn der Benutzer einen Bildlauf durchführt, werden zusätzliche Daten aus der Datenquelle abgerufen. Das Ergebnis ist eine kürzere Startdauer für die App und Zugriff auf sehr große Datasets.

Allerdings ist die Delegierung ggf. nicht immer möglich. Es variiert, welche Funktionen und Operatoren in Datenquellen für die Delegierung unterstützt werden. Falls die vollständige Delegierung einer Formel nicht möglich ist, wird der Teil, der nicht delegiert werden kann, in der Erstellungsumgebung mit einer Warnung versehen. Erwägen Sie nach Möglichkeit, die Formel zu ändern, um die Verwendung von Funktionen und Operatoren zu vermeiden, die nicht delegiert werden können. Im Artikel mit der Liste der delegierbaren Datenquellen ist beschrieben, welche Datenquellen und Vorgänge delegiert werden können.

Wenn die Delegierung nicht möglich ist, wird von PowerApps nur eine kleine Gruppe von Datensätzen zur lokalen Verarbeitung abgerufen. Filter- und Sortierfunktionen werden also auf eine reduzierte Gruppe von Datensätzen angewendet. Die im Katalog verfügbaren Daten bilden unter Umständen nicht das Gesamtbild ab, und dies kann für Benutzer verwirrend sein.

Weitere Informationen finden Sie unter Grundlagen der Delegierung.

Syntax

Sort( Table, Formula [, SortOrder ] )

  • Table: erforderlich. Die zu sortierende Tabelle.
  • Formula: erforderlich. Die Formel wird für jeden Datensatz der Tabelle ausgewertet, und die Ergebnisse werden zur Sortierung 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 sind, müssen alle außer dem letzten einen SortOrder-Parameter umfassen.

    Hinweis: Bei Excel- oder SharePoint-Datenquellen, die Spaltennamen mit Leerzeichen enthalten, geben Sie jedes Leerzeichen als "_X0020_" an. "Name der Spalte" wird z.B. als "Name_x0020_der_x0020_Spalte" angegeben.

SortByColumns( Table, ColumnName, SortOrderTable )

  • Table: erforderlich. Die zu sortierende Tabelle.
  • ColumnName: erforderlich. Der Name der Spalte, nach der sortiert werden soll, als Zeichenfolge.
  • SortOrderTable: erforderlich. Einspaltige Tabelle mit Werten, nach denen sortiert werden soll.

    Hinweis: Bei Excel- oder SharePoint-Datenquellen, die Spaltennamen mit Leerzeichen enthalten, geben Sie jedes Leerzeichen als "_X0020_" an. "Name der Spalte" wird z.B. als "Name_x0020_der_x0020_Spalte" angegeben.

Beispiele

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

Formel Beschreibung Ergebnis
Sort( Speiseeis, Geschmacksrichtung )

SortByColumns( Speiseeis, "Geschmacksrichtung" )
Sortiert Speiseeis nach deren Spalte Geschmacksrichtung. Die Spalte Geschmacksrichtung enthält Zeichenfolgen, daher wird die Tabelle alphabetisch sortiert. Die Standard-Sortierreihenfolge ist aufsteigend.
Sort( Speiseeis, Menge )

SortByColumns( Speiseeis, "Menge" )
Sortiert Speiseeis nach deren Spalte Menge. Die Spalte Menge enthält Zahlen, daher wird die Tabelle numerisch sortiert. Die Standard-Sortierreihenfolge ist aufsteigend.
Sort( Speiseeis, Menge, SortOrder.Descending )

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

SortByColumns( Speiseeis, "Nachbestellt", Aufsteigend, "Menge", Aufsteigend )
Sortiert Speiseeis zuerst nach deren Spalte Nachbestellt und dann nach der Spalte Menge. 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.
SortByColumns( Speiseeis, "Geschmacksrichtung", [ "Pistazie", "Erdbeer" ] ) Sortiert Speiseeis nach deren Spalte Geschmacksrichtung, basierend auf der einspaltigen Tabelle, die „Pistazie“ und „Erdbeer“ enthält. Datensätze mit der Geschmacksrichtung „Pistazie“ werden in den Ergebnissen zuerst angezeigt, gefolgt von Datensätzen, die „Erdbeer“ enthalten. Werte in der Spalte Geschmacksrichtung, die nicht zugeordnet werden, wie etwa „Vanille“, werden nach den zugeordneten Werten aufgeführt.

Schritt für Schritt

Um diese Beispiele selbst auszuführen, erstellen Sie die Datenquelle Speiseeis als Sammlung:

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

  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.

Sortieren

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

    Die vorstehende Formel erstellt eine zweite Sammlung mit dem Namen SortByFlavor, die die gleichen Daten wie Speiseeis enthält. Die neue Sammlung enthält jedoch die Daten alphabetisch aufsteigend nach der Spalte Geschmacksrichtung 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( Speiseeis, "Menge", Ascending, "Geschmacksrichtung", Descending ) )

    Die vorstehende Formel erstellt eine dritte Sammlung mit dem Namen SortByQuantity, die die gleichen Daten wie Speiseeis enthält. Die neue Sammlung enthält die Daten jedoch numerisch aufsteigend nach der Spalte Menge und dann absteigend nach der Spalte Geschmacksrichtung 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.