Filter-, Search- und LookUp-Funktionen in PowerAppsFilter, Search, and LookUp functions in PowerApps

Sucht nach einem oder mehreren Datensätzen in einer Tabelle.Finds one or more records in a table.

BeschreibungDescription

Die Filter-Funktion sucht Datensätze in einer Tabelle, die eine Formel erfüllt.The Filter function finds records in a table that satisfy a formula. 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.Use Filter to find a set of records that match one or more criteria and to discard those that don't.

Die LookUp-Funktion sucht den ersten Datensatz in einer Tabelle, der eine Formel erfüllt.The LookUp function finds the first record in a table that satisfies a formula. Verwenden Sie LookUp, um einen einzelnen Datensatz zu suchen, der eine oder mehrere Kriterien erfüllt.Use LookUp to find a single record that matches one or more criteria.

Bei beiden wird die Formel für jeden Datensatz der Tabelle ausgewertet.For both, the formula is evaluated for each record of the table. Datensätze, die TRUE ausgeben, sind im Ergebnis enthalten.Records that result in true are included in the result. Neben den normalen Operatoren der Formel können Sie die in- und exactin-Operatoren für Übereinstimmungen mit Teilzeichenfolgen verwenden.Besides the normal formula operators, you can use the in and exactin operators for substring matches.

Die Felder des Datensatzes, der derzeit verarbeitet wird, sind in der Formel verfügbar.Fields of the record currently being processed are available within the formula. Sie können einfach über den Namen darauf verweisen, wie Sie dies auch bei anderen Werten tun.You simply reference them by name as you would any other value. Außerdem können Sie überall in der App auf Steuerelementeigenschaften und andere Werte verweisen.You can also reference control properties and other values from throughout your app. Weitere Informationen finden Sie in den unten angegebenen Beispielen und im Artikel zur Verwendung von Datensatzbereichen.For more details, see the examples below and working with record scope.

Die Search-Funktion sucht Datensätze in einer Tabelle, die eine Zeichenfolge in eine ihrer Spalten enthalten.The Search function finds records in a table that contain a string in one of their columns. 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.The string may occur anywhere within the column; for example, searching for "rob" or "bert" would find a match in a column that contains "Robert". Bei Search wird die Groß-/Kleinschreibung beachtet.Searching is case-insensitive. Im Gegensatz zu Filter und LookUp, verwendet die Search-Funktion anstelle einer Formel eine einzelne Zeichenfolge für die Übereinstimmung.Unlike Filter and LookUp, the Search function uses a single string to match instead of a formula.

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.Filter and Search return a table that contains the same columns as the original table and the records that match the criteria. LookUp gibt nach dem Anwenden einer Formel, um den Datensatz auf einen einzelnen Wert zu reduzieren, nur den ersten gefundenen Datensatz zurück.LookUp returns only the first record found, after applying a formula to reduce the record to a single value. Wenn keine Datensätze gefunden wurden, geben Filter und Search eine leere Tabelle und LookUp leer zurück.If no records are found, Filter and Search return an empty table, and LookUp returns blank.

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. Filter, Search und LookUp ändern eine Tabelle nicht.Filter, Search, and LookUp don't modify a table. Stattdessen nehmen sie eine Tabelle als Argument und geben eine Tabelle, einen Datensatz oder einen einzelnen Wert daraus zurück.Instead, they take a table as an argument and return a table, a record, or a single value from it. Weitere Details erfahren Sie unter Arbeiten mit Tabellen.See working with tables for more details.

DelegierungDelegation

Nach Möglichkeit werden Filter- und Sortiervorgänge von PowerApps an die Datenquelle delegiert und die Seiten mit den Ergebnissen nur bei Bedarf bereitgestellt.When possible, PowerApps will delegate filter and sort operations to the data source and page through the results on demand. 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.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. Wenn der Benutzer einen Bildlauf durchführt, werden zusätzliche Daten aus der Datenquelle abgerufen.As the user scrolls, additional data is brought down from the data source. Das Ergebnis ist eine kürzere Startdauer für die App und Zugriff auf sehr große Datasets.The result is a faster start time for the app and access to very large data sets.

Allerdings ist die Delegierung ggf. nicht immer möglich.However, delegation may not always be possible. Es variiert, welche Funktionen und Operatoren in Datenquellen für die Delegierung unterstützt werden.Data sources vary on what functions and operators they support with delegation. 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.If complete delegation of a formula isn't possible, the authoring environment will flag the portion that can't be delegated with a warning. 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.When possible, consider changing the formula to avoid functions and operators that can't be delegated. Im Artikel mit der Liste der delegierbaren Datenquellen ist beschrieben, welche Datenquellen und Vorgänge delegiert werden können.The delegation list details which data sources and operations can be delegated.

Wenn die Delegierung nicht möglich ist, wird von PowerApps nur eine kleine Gruppe von Datensätzen zur lokalen Verarbeitung abgerufen.If delegation is not possible, PowerApps will pull down only a small set of records to work on locally. Filter- und Sortierfunktionen werden also auf eine reduzierte Gruppe von Datensätzen angewendet.Filter and sort functions will operate on a reduced set of records. Die im Katalog verfügbaren Daten bilden unter Umständen nicht das Gesamtbild ab, und dies kann für Benutzer verwirrend sein.What is available in the Gallery may not be the complete story, which could be confusing to users.

Weitere Informationen finden Sie unter Grundlagen der Delegierung.See the delegation overview for more information.

SyntaxSyntax

Filter( Tabelle, Formel1 [, Formel2, ... ] )Filter( Table, Formula1 [, Formula2, ... ] )

  • Table: erforderlich.Table - Required. Die zu suchende Tabelle.Table to search.
  • Formel(n): Erforderlich.Formula(s) - Required. Die Formel, anhand derer jeder Datensatz der Tabelle ausgewertet wird.The formula by which each record of the table is evaluated. Diese Funktion gibt alle Datensätze zurück, die zu WAHR ausgewertet werden.The function returns all records that result in true. Sie können auf Spalten innerhalb der Tabelle verweisen.You can reference columns within the table. Wenn Sie mehr als eine Formel angeben, werden die Ergebnisse aller Formeln mit einer And-Funktion kombiniert.If you supply more than one formula, the results of all formulas are combined with the And function.

Search( Table, SearchString, Column1 [, Column2, ... ] )Search( Table, SearchString, Column1 [, Column2, ... ] )

  • Table: erforderlich.Table - Required. Die zu suchende Tabelle.Table to search.
  • SearchString: Erforderlich.SearchString - Required. Die Zeichenfolge, nach der gesucht werden soll.The string to search for. Bei leer oder einer leeren Zeichenfolge werden alle Datensätze zurückgegeben.If blank or an empty string, all records are returned.
  • Column(s): Erforderlich.Column(s) - Required. Die Spaltennamen in der Tabelle, die gesucht werden sollen.The names of columns within Table to search. Die zu suchenden Spalten müssen Text enthalten.Columns to search must contain text. Spaltennamen müssen Zeichenfolgen und in doppelte Anführungszeichen eingeschlossen sein.Column names must be strings and enclosed in double quotes. Allerdings müssen die Spaltennamen statisch sein und können nicht mit einer Formel berechnet werden.However, the column names must be static and cannot be calculated with a formula. Wenn SearchString innerhalb der Daten für diese Spalten als eine teilweise Übereinstimmung gefunden wurde, wird der vollständige Datensatz zurückgegeben werden.If SearchString is found within the data of any of these columns as a partial match, the full record will be returned.

Hinweis

Bei Excel- oder SharePoint-Datenquellen, die Spaltennamen mit Leerzeichen enthalten, geben Sie jedes Leerzeichen als "_x0020_" an.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".

LookUp( Table, Formula [, ReductionFormula ] )LookUp( Table, Formula [, ReductionFormula ] )

  • Table: erforderlich.Table - Required. Die zu suchende Tabelle.Table to search. Auf der Benutzeroberfläche wird die Syntax oberhalb des Funktionsfelds als Quelle angezeigt.In the UI, the syntax is shown as source above the function box.
  • Formel: Erforderlich.Formula - Required. Die Formel, anhand derer jeder Datensatz der Tabelle ausgewertet wird.The formula by which each record of the table is evaluated. Die Funktion gibt den ersten Datensatz zurück, der als WAHR ausgewertet wird.The function returns the first record that results in true. Sie können auf Spalten innerhalb der Tabelle verweisen.You can reference columns within the table. Auf der Benutzeroberfläche wird die Syntax oberhalb des Funktionsfelds als Bedingungen angezeigt.In the UI, the syntax is shown as condition above the function box.
  • ReductionFormula: Optional.ReductionFormula - Optional. Diese Formel wird über den gefundenen Datensatz ausgewertet, anschließend wird der Datensatz auf einen einzigen Wert reduziert.This formula is evaluated over the record that was found, and then reduces the record to a single value. Sie können auf Spalten innerhalb der Tabelle verweisen.You can reference columns within the table. Wenn Sie diesen Parameter nicht verwenden, gibt die Funktion den gesamten Datensatz aus der Tabelle zurück.If you don't use this parameter, the function returns the full record from the table. Auf der Benutzeroberfläche wird die Syntax oberhalb des Funktionsfelds als Ergebnis angezeigt.In the UI, the syntax is shown as result above the function box.

BeispieleExamples

Die folgenden Beispiele verwenden die IceCream-Datenquelle:The following examples use the IceCream data source:

FormelFormula BeschreibungDescription ErgebnisResult
Filter( IceCream, OnOrder > 0 )Filter( IceCream, OnOrder > 0 ) Gibt Datensätze zurück, bei denen OnOrder größer als 0 ist.Returns records where OnOrder is greater than zero.
Filter( IceCream, Quantity + OnOrder > 225 )Filter( IceCream, Quantity + OnOrder > 225 ) Gibt Datensätze zurück, bei denen die Summe der Spalten Quantity und OnOrder größer als 225 ist.Returns records where the sum of Quantity and OnOrder columns is greater than 225.
Filter( IceCream, "chocolate" in Lower( Flavor ) )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.Returns records where the word "chocolate" appears in the Flavor name, independent of uppercase or lowercase letters.
Filter( IceCream, Quantity < 10 && OnOrder < 20 )Filter( IceCream, Quantity < 10 && OnOrder < 20 ) Gibt Datensätze zurück, bei denen Quantity kleiner als 10 und OnOrder kleiner als 20 ist.Returns records where the Quantity is less than 10 and OnOrder is less than 20. Keine Datensätze entsprechen diesen Kriterien, sodass eine leere Tabelle zurückgegeben wird.No records match these criteria, so an empty table is returned.
Search( IceCream, "choc", "Flavor" )Search( IceCream, "choc", "Flavor" ) Gibt Datensätze zurück, bei denen die Zeichenfolge „choc“ im Flavor-Namen auftaucht, unabhängig von Groß- oder Kleinbuchstaben.Returns records where the string "choc" appears in the Flavor name, independent of uppercase or lowercase letters.
Search( IceCream, "", "Flavor" )Search( IceCream, "", "Flavor" ) Da der Suchbegriff leer ist, werden alle Datensätze zurückgegeben.Because the search term is empty, all records are returned.
LookUp( IceCream, Flavor = "Chocolate", Quantity )LookUp( IceCream, Flavor = "Chocolate", Quantity ) Sucht einen Datensatz, bei dem Flavor „chocolate“ entspricht, von dem es einen gibt.Searches for a record with Flavor equal to "Chocolate", of which there is one. Für den ersten gefundenen Datensatz wird die Quantity dieses Datensatzes zurückgegeben.For the first record that's found, returns the Quantity of that record. 100100
LookUp( IceCream, Quantity > 150, Quantity + OnOrder )LookUp( IceCream, Quantity > 150, Quantity + OnOrder ) Sucht einen Datensatz mit Quantity größer als 100, von denen es mehrere gibt.Searches for a record with Quantity greater than 100, of which there are multiple. Für den ersten gefundenen Datensatz, welcher „Vanilla“-Flavor ist, wird die Summe der Spalten Quantity und OnOrder zurückgegeben.For the first record that's found, which is "Vanilla" Flavor, returns the sum of Quantity and OnOrder columns. 250250
LookUp( IceCream, Flavor = "Pistachio", OnOrder )LookUp( IceCream, Flavor = "Pistachio", OnOrder ) Sucht einen Datensatz, bei dem Flavor „Pistachio“ entspricht, von dem es keinen gibt.Searches for a record with Flavor equal to "Pistachio", of which there are none. Da keiner gefunden wurde, gibt LookUp blank zurück.Because none were found, Lookup returns blank. blankblank
LookUp( IceCream, Flavor = "Vanilla" )LookUp( IceCream, Flavor = "Vanilla" ) Sucht einen Datensatz, bei dem Flavor „Vanilla“ entspricht, von dem es einen gibt.Searches for a record with Flavor equal to "Vanilla", of which there is one. Da keine Reduction-Formel angegeben wurde, wird der gesamte Datensatz zurückgegeben.Since no reduction formula was supplied, the entire record is returned. { Flavor: "Vanilla", Quantity: 200, OnOrder: 75 }{ Flavor: "Vanilla", Quantity: 200, OnOrder: 75 }

Benutzererfahrung beim DurchsuchenSearch user experience

In vielen Apps können Sie ein oder mehrere Zeichen in ein Suchfeld eingeben, um eine Datensatzliste in einem großen Datensatz zu filtern.In many apps, you can type one or more characters into a search box to filter a list of records in a large data set. Während der Eingabe zeigt die Liste nur die Datensätze, die den Suchkriterien entsprechen.As you type, the list shows only those records that match the search criteria.

Die Beispiele im Rest dieses Themas zeigen die Ergebnisse der Suche in einer Liste namens Customers an, die diese Daten enthalten:The examples in the rest of this topic show the results of searching a list, named Customers, that contains this data:

Erstellen Sie ein Button-Steuerelement, und legen Sie dessen OnSelect-Eigenschaft auf folgende Formel fest, um diese Datenquelle als Sammlung zu erstellen:To create this data source as a collection, create a Button control and set its OnSelect property to this formula:

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" } ) )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.As in this example, you can show a list of records in a Gallery control at the bottom of a screen. 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.Near the top of the screen, you can add a Text input control, named SearchInput, so that users can specify which records interest them.

Während der Benutzer Zeichen in SearchInput eingibt, werden die Ergebnisse im Katalog automatisch gefiltert.As the user types characters in SearchInput, the results in the gallery are automatically filtered. 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.In this case, the gallery is configured to show records for which the name of the customer (not the name of the company) starts with the sequence of characters in SearchInput. Wenn der Benutzer co in das Suchfeld eingibt, zeigt der Katalog dies Ergebnisse:If the user types co in the search box, the gallery shows these results:

Legen Sie die Eigenschaft Elemente des Katalogsteuerelements auf eine der folgenden Formeln fest, um anhand der Spalte Name zu filtern:To filter based on the Name column, set the Items property of the gallery control to one of these formulas:

FormelFormula BeschreibungDescription ErgebnisResult
Filter( Customers, StartsWith( Name, SearchInput.Text ) )Filter( Customers, StartsWith( Name, SearchInput.Text ) ) Filtert die Customers-Datenquelle nach Datensätzen, in der die Suchzeichenfolge am Anfang der Spalte Name vorkommt.Filters the Customers data source for records in which the search string appears at the start of the Name column. Bei diesem Test wird die Groß-/Kleinschreibung beachtet.The test is case insensitive. Wenn der Benutzer co in das Suchfeld eingibt, zeigt der Katalog Colleen Jones und Cole Miller an.If the user types co in the search box, the gallery shows Colleen Jones and Cole Miller. Der Katalog zeigt nicht Mike Collins an, weil die Spalte Name dieses Datensatzes nicht mit der Suchzeichenfolge beginnt.The gallery doesn't show Mike Collins because the Name column for that record doesn't start with the search string.
Filter( Customers, SearchInput.Text in Name )Filter( Customers, SearchInput.Text in Name ) Filtert die Customers-Datenquelle nach Datensätzen, in der die Suchzeichenfolge am Anfang der Spalte Name vorkommt.Filters the Customers data source for records in which the search string appears anywhere in the Name column. Bei diesem Test wird die Groß-/Kleinschreibung beachtet.The test is case insensitive. 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.If the user types co in the search box, the gallery shows Colleen Jones, Cole Miller, and Mike Collins because the search string appears somewhere in the Name column of all of those records.
Search( Customers, SearchInput.Text, "Name" )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.Similar to using the in operator, the Search function searches for a match anywhere within the Name column of each record. Beachten Sie, dass Sie den Spaltennamen in doppelte Anführungszeichen setzen müssen.Note that you must enclose the column name in double quotation marks.

Sie können Ihre Suche auch so ausweiten, dass sie die Spalte Company sowie die Spalte Name enthält:You can expand your search to include the Company column as well as the Name column:

FormelFormula BeschreibungDescription ErgebnisResult
Filter( Customers, StartsWith( Name, SearchInput.Text ) || StartsWith( Company, SearchInput.Text ) )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).Filters the Customers data source for records in which either the Name column or the Company column starts with the search string (for example, co). The ||-Operator ist TRUE, wenn eine StartsWith-Funktion TRUE ist.The || operator is true if either StartsWith function is true.
Filter( Customers, SearchInput.Text in Name || SearchInput.Text in Company )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).Filters the Customers data source for records in which either the Name column or the Company column contains the search string (for example, co) anywhere within it.
Search( Customers, SearchInput.Text, "Name", "Company" )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).Similar to using the in operator, the Search function searches the Customers data source for records in which either the Name column or the Company column contains the search string (for example, co) anywhere within it. Die Search-Funktion ist einfacher zu lesen und schreiben als die Filter-Funktion, wenn Sie mehrere Spalten und mehrere in-Operatoren angeben möchten.The Search function is easier to read and write than Filter if you want to specify multiple columns and multiple in operators. Beachten Sie, dass Sie die Spaltennamen in doppelte Anführungszeichen setzen müssen.Note that you must enclose the names of the columns in double quotation marks.