Filter-, Search- und LookUp-Funktionen in Power Apps

Sucht nach einem oder mehreren Datensätzen in einer Tabelle.

Beschreibung

Die Filter-Funktion sucht Datensätze in einer Tabelle, die eine Formel erfüllen. Mit Filter finden Sie Datensätze, die mindestens ein Kriterium erfüllen; Datensätze, die kein Kriterium erfüllen, werden verworfen.

Die LookUp-Funktion sucht den ersten Datensatz in einer Tabelle, der eine Formel erfüllt. Verwenden Sie LookUp, um einen einzelnen Datensatz zu suchen, der mindestens ein Kriterium erfüllt.

Bei beiden wird die Formel für jeden Datensatz der Tabelle ausgewertet. Datensätze, die TRUE ausgeben, sind im Ergebnis enthalten. Neben den normalen Operatoren der Formel können Sie die in- und exactin-Operatoren für Übereinstimmungen mit Teilzeichenfolgen verwenden.

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.

Die Search-Funktion sucht Datensätze in einer Tabelle, die eine Zeichenfolge in eine ihrer Spalten enthalten. Die Zeichenfolge kann an einer beliebigen Stelle innerhalb der Spalte auftreten. Beispielsweise würde die Suche nach „rob“ oder „bert“ eine Übereinstimmung in einer Spalte finden, die „Robert“ enthält. Bei Search wird die Groß-/Kleinschreibung beachtet. Im Gegensatz zu Filter und LookUp, verwendet die Search-Funktion anstelle einer Formel eine einzelne Zeichenfolge für die Übereinstimmung.

Filter und Search geben eine Tabelle zurück, die dieselben Spalten wie die ursprüngliche Tabelle und die Datensätze enthält, die den Kriterien entsprechen. LookUp gibt nach dem Anwenden einer Formel, um den Datensatz auf einen einzelnen Wert zu reduzieren, nur den ersten gefundenen Datensatz zurück. Wenn keine Datensätze gefunden wurden, geben Filter und Search eine leere Tabelle und LookUp leer zurück.

Wie Zeichenfolgen und Zahlen sind auch Tabellen in Power Apps Werte. Sie können an Funktionen übergeben und von diesen zurückgegeben werden. Filter, Search und LookUp ändern eine Tabelle nicht. Stattdessen nehmen sie eine Tabelle als Argument entgegen und geben eine Tabelle, einen Datensatz oder einen einzelnen Wert daraus zurück. 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

Filter( Tabelle, Formel1 [, Formel2, ... ] )

  • Table – Erforderlich. die zu suchende Tabelle.
  • Formula(s) – Erforderlich. Formel, anhand derer die einzelnen Datensätze in der Tabelle ausgewertet werden. Diese Funktion gibt alle Datensätze zurück, die zu WAHR ausgewertet werden. Sie können auf Spalten innerhalb der Tabelle verweisen. Wenn Sie mehr als eine Formel angeben, werden die Ergebnisse aller Formeln mit einer And-Funktion kombiniert.

Search( Tabelle, Suchzeichenfolge, Spalte1 [, Spalte2, ... ] )

  • Table – Erforderlich. die zu suchende Tabelle.
  • Suchzeichenfolge (erforderlich): Zeichenfolge, nach der gesucht werden soll. Bei leer oder einer leeren Zeichenfolge werden alle Datensätze zurückgegeben.
  • Spalte(n) (erforderlich): Spaltennamen in der Tabelle, die gesucht werden sollen. Die zu suchenden Spalten müssen Text enthalten. Spaltennamen müssen Zeichenfolgen und in doppelte Anführungszeichen eingeschlossen sein. Allerdings müssen die Spaltennamen statisch sein und können nicht mit einer Formel berechnet werden. Wenn SearchString innerhalb der Daten für diese Spalten als eine teilweise Übereinstimmung gefunden wurde, wird der vollständige Datensatz zurückgegeben werden.

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.

LookUp( Tabelle, Formel [, Reduzierformel ] )

  • Table – Erforderlich. die zu suchende Tabelle. Auf der Benutzeroberfläche wird die Syntax oberhalb des Funktionsfelds als Quelle angezeigt.
  • Formula – Erforderlich. Formel, anhand derer die einzelnen Datensätze in der Tabelle ausgewertet werden. Die Funktion gibt den ersten Datensatz zurück, der als WAHR ausgewertet wird. Sie können auf Spalten innerhalb der Tabelle verweisen. Auf der Benutzeroberfläche wird die Syntax oberhalb des Funktionsfelds als Bedingungen angezeigt.
  • Reduzierformel (optional): Diese Formel wird über den gefundenen Datensatz ausgewertet, anschließend wird der Datensatz auf einen einzigen Wert reduziert. Sie können auf Spalten innerhalb der Tabelle verweisen. Wenn Sie diesen Parameter nicht verwenden, gibt die Funktion den gesamten Datensatz aus der Tabelle zurück. Auf der Benutzeroberfläche wird die Syntax oberhalb des Funktionsfelds als Ergebnis angezeigt.

Beispiele

Die folgenden Beispiele verwenden die IceCream -Datenquelle:

Formel Beschreibung Ergebnis
Filter( IceCream, OnOrder > 0 ) Gibt Datensätze zurück, bei denen OnOrder größer als 0 ist.
Filter( IceCream, Quantity + OnOrder > 225 ) Gibt Datensätze zurück, bei denen die Summe der Spalten Quantity und OnOrder größer als 225 ist.
Filter( IceCream, "chocolate" in Lower( Flavor ) ) Gibt Datensätze zurück, bei denen das Wort „chocolate“ im Flavor-Namen auftaucht. Die Groß-/Kleinschreibung wird hierbei nicht berücksichtigt.
Filter( IceCream, Quantity < 10 && OnOrder < 20 ) Gibt Datensätze zurück, bei denen Quantity kleiner als 10 und OnOrder kleiner als 20 ist. Keine Datensätze entsprechen diesen Kriterien, sodass eine leere Tabelle zurückgegeben wird.
Search( IceCream, "choc", "Flavor" ) Gibt Datensätze zurück, bei denen die Zeichenfolge „choc“ im Flavor-Namen auftaucht. Die Groß-/Kleinschreibung wird hierbei nicht berücksichtigt.
Search( IceCream, "", "Flavor" ) Da der Suchbegriff leer ist, werden alle Datensätze zurückgegeben.
LookUp( IceCream, Flavor = "Chocolate", Quantity ) Sucht einen Datensatz, bei dem Flavor „chocolate“ entspricht. Hierzu gibt es einen passenden Datensatz. Für den ersten gefundenen Datensatz wird die Quantity dieses Datensatzes zurückgegeben. 100
LookUp( IceCream, Quantity > 150, Quantity + OnOrder ) Sucht einen Datensatz mit Quantity größer als 150, von denen es mehrere gibt. Für den ersten gefundenen Datensatz, welcher „Vanilla“-Flavor ist, wird die Summe der Spalten Quantity und OnOrder zurückgegeben. 250
LookUp( IceCream, Flavor = "Pistachio", OnOrder ) Sucht einen Datensatz, bei dem Flavor „Pistachio“ entspricht. Hierzu gibt es keinen passenden Datensatz. Deswegen gibt LookUp blank zurück. leer
LookUp( IceCream, Flavor = "Vanilla" ) Sucht einen Datensatz, bei dem Flavor „Vanilla“ entspricht. Hierzu gibt es einen passenden Datensatz. Da keine Reduzierformel angegeben wurde, wird der gesamte Datensatz zurückgegeben. { Flavor: "Vanilla", Quantity: 200, OnOrder: 75 }

Benutzererfahrung beim Durchsuchen

In vielen Apps können Sie ein oder mehrere Zeichen in ein Suchfeld eingeben, um eine gefilterte Liste mit Datensätzen aus einem großen Datenbestand zu erzeugen. Während der Eingabe zeigt die Liste nur die Datensätze, die den Suchkriterien entsprechen.

Die nachfolgenden Beispiele zeigen Ergebnisse der Suche in einer Liste namens Customers an, die die folgenden Daten enthält:

Um diese Datenquelle als Sammlung zu erstellen, erstellen Sie ein Button-Steuerelement, und legen Sie dessen OnSelect-Eigenschaft auf folgende Formel fest:

ClearCollect( Customers, Table( { Name: "Fred Garcia", Company: "Northwind Traders" }, { Name: "Cole Miller", Company: "Contoso" }, { Name: "Glenda Johnson", Company: "Contoso" }, { Name: "Mike Collins", Company: "Adventure Works" }, { Name: "Colleen Jones", Company: "Adventure Works" } ) )

Sie können wie in diesem Beispiel eine Datensatzliste in einem Gallery-Steuerelement am unteren Rand eines Bildschirms anzeigen. Fügen Sie im oberen Bereich des Bildschirms ein Text input-Steuerelement mit dem Namen SearchInput hinzu, sodass Benutzer angeben können, welche Datensätze für sie relevant sind.

Wenn der Benutzer Zeichen in SearchInput eingibt, werden die Ergebnisse im Katalog automatisch gefiltert. In diesem Fall ist der Katalog so konfiguriert, dass er Datensätze anzeigt, für die der Name des Kunden (nicht der Namen des Unternehmens) mit der Zeichensequenz in SearchInput beginnt. Wenn der Benutzer co in das Suchfeld eingibt, zeigt der Katalog die folgenden Ergebnisse:

Legen Sie die Items-Eigenschaft des Katalog-Steuerelements auf eine der folgenden Formeln fest, um anhand der Spalte Name zu filtern:

Formel Beschreibung Ergebnis
Filter( Customers, StartsWith( Name, SearchInput.Text ) ) Filtert die Customers-Datenquelle nach Datensätzen, in der die Suchzeichenfolge am Anfang der Spalte Name vorkommt. Bei diesem Test wird die Groß-/Kleinschreibung nicht beachtet. Wenn der Benutzer co in das Suchfeld eingibt, zeigt der Katalog Colleen Jones und Cole Miller an. Mike Collins wird nicht im Katalog angezeigt, weil die Spalte Name dieses Datensatzes nicht mit der Suchzeichenfolge beginnt.
Filter( Customers, SearchInput.Text in Name ) Filtert die Customers-Datenquelle nach Datensätzen, in der die Suchzeichenfolge an einer beliebigen Stelle in der Spalte Name vorkommt. Bei diesem Test wird die Groß-/Kleinschreibung nicht beachtet. Wenn der Benutzer co in das Suchfeld eingibt, zeigt der Katalog Colleen Jones, Cole Miller und Mike Collins an, da die Suchzeichenfolge an einer beliebigen Stelle in der Spalte Name dieser Datensätze vorkommt.
Search( Customers, SearchInput.Text, "Name" ) Die Search-Funktion wird so ähnlich wie der in-Operator verwendet und sucht nach einer Übereinstimmung in der Spalte Name in jedem Datensatz. Beachten Sie, dass Sie den Spaltennamen in doppelte Anführungszeichen setzen müssen.

Sie können Ihre Suche auch so ausweiten, dass sie die Spalte Company sowie die Spalte Name enthält:

Formel Beschreibung Ergebnis
Filter( Customers, StartsWith( Name, SearchInput.Text ) || StartsWith( Company, SearchInput.Text ) ) Filtert die Customers-Datenquelle nach Datensätzen, in denen entweder die Spalte Name oder die Spalte Company mit der Suchzeichenfolge beginnt (z. B. co). Der ||-Operator ist true, wenn eine StartsWith-Funktion true ist.
Filter( Customers, SearchInput.Text in Name || SearchInput.Text in Company ) Filtert die Customers-Datenquelle nach Datensätzen, in denen entweder die Spalte Name oder die Spalte Company die Suchzeichenfolge (z. B. co) an beliebiger Stelle enthält.
Search( Customers, SearchInput.Text, "Name", "Company" ) Die Search-Funktion wird so ähnlich wie der in-Operator verwendet und durchsucht die Customers-Datenquelle nach Datensätzen, in denen entweder die Name-Spalte oder die Company-Spalte die Suchzeichenfolge (z. B. co) an beliebiger Stelle enthält. Die Search-Funktion ist einfacher zu lesen und zu schreiben als die Filter-Funktion, wenn Sie mehrere Spalten und mehrere in-Operatoren angeben möchten. Beachten Sie, dass Sie die Spaltennamen in doppelte Anführungszeichen setzen müssen.