Filter, Search und Lookup-Funktionen in powerappsFilter, Search, and LookUp functions in Power Apps

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üllen.The Filter function finds records in a table that satisfy a formula. Mit Filter finden Sie Datensätze, die mindestens ein Kriterium erfüllen; Datensätze, die kein Kriterium erfüllen, werden verworfen.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 mindestens ein Kriterium 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 aktuell verarbeiteten Datensatzes, sind in der Formel verfügbar.Fields of the record currently being processed are available within the formula. Sie wenden, wie bei einem beliebigen anderen Wert, einfach per Name verwiesen.You simply reference them by name as you would any other value. Sie können auch Eigenschaften von Steuerelementen und andere Werte aus Ihrer App verweisen.You can also reference control properties and other values from throughout your app. Weitere Details finden Sie in den folgenden Beispielen und unter Arbeiten mit Datensatzumfang.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 sind ein Wert in Power apps, wie z. b. eine Zeichenfolge oder eine Zahl.Tables are a value in Power Apps, 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 entgegen 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

Sofern möglich,erfolgt in Power Apps eine Filterdelegation und Vorgangssortierung bei Bedarf anhand der Ergebnisse entsprechend der Datenquelle.When possible, Power Apps 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 Galerie-Steuerelementfeld mit Daten enthalten ist, wird anfänglich nur die erste Datensatzgruppe zum 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. Beim Scrollen werden weitere Daten aus der Datenquelle übertragen.As the user scrolls, additional data is brought down from the data source. Das führt bei der App zu einer schnelleren Startzeit und einem schnelleren Zugriff auf umfangreiche Datensets.The result is a faster start time for the app and access to very large data sets.

Allerdings ist eine Delegierung gegebenenfalls nicht immer möglich.However, delegation may not always be possible. Die von Datenquellen in Bezug auf Delegation unterstützten Funktionen und Operatoren unterscheiden sich.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 Anteil, der nicht delegiert werden kann, in der Erstellungsumgebung mit einer Warnung gekennzeichnet.If complete delegation of a formula isn't possible, the authoring environment will flag the portion that can't be delegated with a warning. Denken Sie möglichst über eine Änderung der Formel nach, um 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. In der Delegierungsliste werden die Datenquellen und Vorgänge, die nicht delegiert werden können, genau aufgeführt.The delegation list details which data sources and operations can be delegated.

Wenn keine Delegierung möglich ist, überträgt Power Apps nur wenige Datensatzgruppen zur lokalen Bearbeitung.If delegation is not possible, Power Apps will pull down only a small set of records to work on locally. Filter- und Sortierungsfunktionen arbeiten dann mit weniger Datensatzgruppen.Filter and sort functions will operate on a reduced set of records. In der Galerie ist möglicherweise nicht alles verfügbar und das könnte 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 Überblick über Delegation.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. Formel, anhand derer die einzelnen Datensätze in der Tabelle ausgewertet werden.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( Tabelle; Suchzeichenfolge; Spalte1 [; Spalte2; ... ] )Search( Table; SearchString; Column1 [; Column2; ... ] )

  • Table: erforderlich.Table - Required. die zu suchende Tabelle.Table to search.
  • Suchzeichenfolge (erforderlich):SearchString - Required. 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.
  • Spalte(n) (erforderlich):Column(s) - Required. 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 Suchzeichenfolge als Teilergebnis innerhalb der Daten einer Spalte gefunden wird, 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( Tabelle; Formel [; Reduzierformel ] )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.
  • Formula: Erforderlich.Formula - Required. Formel, anhand derer die einzelnen Datensätze in der Tabelle ausgewertet werden.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.
  • Reduzierformel (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. Die Groß-/Kleinschreibung wird hierbei nicht berücksichtigt.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. Die Groß-/Kleinschreibung wird hierbei nicht berücksichtigt.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. Hierzu gibt es einen passenden Datensatz.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. Hierzu gibt es keinen passenden Datensatz.Searches for a record with Flavor equal to "Pistachio", of which there are none. Deswegen 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. Hierzu gibt es einen passenden Datensatz.Searches for a record with Flavor equal to "Vanilla", of which there is one. Da keine Reduzierformel 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 gefilterte Liste mit Datensätzen aus einem großen Datenbestand zu erzeugen.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 nachfolgenden Beispiele zeigen Ergebnisse der Suche in einer Liste namens Customers an, die die folgenden Daten enthält: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 Texteingabe-Steuerelement 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.

Wenn 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 die folgenden Ergebnisse:If the user types co in the search box, the gallery shows these results:

Legen Sie die Eigenschaft Items 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 nicht 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. Mike Collins wird nicht im Katalog angezeigt, 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 nicht 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 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). Der || -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 die Suchzeichenfolge (z.B. co) an beliebiger Stelle enthält.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 (z.B. co) an beliebiger Stelle enthält.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 zu 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.