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

Beschreibung

Die Filter-Funktion sucht Datensätze in einer Tabelle, die eine Formel erfüllt. Verwenden Sie Filter, um ein Set von Datensätzen zu suchen, das eine oder mehrere Kriterien erfüllt, und um die zu verwerfen, die diese Kriterien nicht erfüllen.

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 eine oder mehrere Kriterien 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 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.

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.

Tabellen stellen in PowerApps einen Wert dar, genau wie Zeichenfolgen oder Zahlen. 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 und geben eine Tabelle, einen Datensatz oder einen einzelnen Wert daraus zurück. 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

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

  • Table: erforderlich. Die zu suchende Tabelle.
  • Formel(n): Erforderlich. Die Formel, anhand derer jeder Datensatz der Tabelle ausgewertet wird. 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( Table, SearchString, Column1 [, Column2, ... ] )

  • Table: erforderlich. Die zu suchende Tabelle.
  • SearchString: Erforderlich. Die Zeichenfolge, nach der gesucht werden soll. Bei leer oder einer leeren Zeichenfolge werden alle Datensätze zurückgegeben.
  • Column(s): Erforderlich. Die 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.

LookUp( Table, Formula [, ReductionFormula ] )

  • Table: erforderlich. Die zu suchende Tabelle. Auf der Benutzeroberfläche wird die Syntax oberhalb des Funktionsfelds als Quelle angezeigt.
  • Formula: erforderlich. Die Formel, anhand derer jeder Datensatz der Tabelle ausgewertet wird. 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.
  • ReductionFormula: 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, unabhängig von Groß- oder Kleinbuchstaben.
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, unabhängig von Groß- oder Kleinbuchstaben.
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, von dem es einen gibt. 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 100, 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, von dem es keinen gibt. Da keiner gefunden wurde, gibt LookUp blank zurück. blank
LookUp( IceCream, Flavor = "Vanilla" ) Sucht einen Datensatz, bei dem Flavor „Vanilla“ entspricht, von dem es einen gibt. Da keine Reduction-Formel 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 Datensatzliste in einem großen Datensatz zu filtern. Während der Eingabe zeigt die Liste nur die Datensätze, die den Suchkriterien entsprechen.

Die Beispiele im Rest dieses Themas zeigen die Ergebnisse der Suche in einer Liste namens Customers an, die diese Daten enthalten:

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

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 Katalogsteuerelement am unteren Rand des Bildschirms anzeigen. Fügen Sie im oberen Bereich des Bildschirms ein Steuerelement Texteingabe mit dem Namen SearchInput ein, sodass Benutzer angeben können, welche Datensätze für sie relevant sind.

Während 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 dies Ergebnisse:

Legen Sie die Eigenschaft Elemente des Katalogsteuerelements 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 beachtet. Wenn der Benutzer co in das Suchfeld eingibt, zeigt der Katalog Colleen Jones und Cole Miller an. Der Katalog zeigt nicht Mike Collins an, 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 am Anfang der Spalte Name vorkommt. Bei diesem Test wird die Groß-/Kleinschreibung 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 all 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). The ||-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 mit der Suchzeichenfolge beginnt (z.B. co).
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 an irgendeiner Stelle enthält (z.B. co). Die Search-Funktion ist einfacher zu lesen und 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.