Functies Filter, Zoeken en LookUp in PowerAppsFilter, Search, and LookUp functions in PowerApps

Zoekt een of meer records in een tabel.Finds one or more records in a table.

BeschrijvingDescription

De functie Filter zoekt records in een tabel die aan een formule voldoen.The Filter function finds records in a table that satisfy a formula. Gebruik Filter om een reeks records te vinden die overeenkomen met een of meer criteria en om criteria die niet overeenkomen te verwijderen.Use Filter to find a set of records that match one or more criteria and to discard those that don't.

De functie LookUp vindt de eerste record in een tabel die aan een formule voldoet.The LookUp function finds the first record in a table that satisfies a formula. Gebruik LookUp om één record te vinden die met een of meer criteria overeenkomt.Use LookUp to find a single record that matches one or more criteria.

De formule wordt in beide gevallen geëvalueerd voor elke record in de tabel.For both, the formula is evaluated for each record of the table. Records die resulteren in true worden in het resultaat opgenomen.Records that result in true are included in the result. Naast de normale operators van de formule kunt u de operators in en exactin gebruiken voor overeenkomsten in subtekenreeksen.Besides the normal formula operators, you can use the in and exactin operators for substring matches.

Velden van de record die op dat moment wordt verwerkt, zijn beschikbaar in de formule.Fields of the record currently being processed are available within the formula. U kunt deze velden gewoon bij naam noemen, net als met andere waarden.You simply reference them by name as you would any other value. U kunt in de hele app ook naar eigenschappen van besturingselementen en andere waarden verwijzen.You can also reference control properties and other values from throughout your app. Voor meer informatie bekijkt u de volgende voorbeelden en Werken met een recordbereik.For more details, see the examples below and working with record scope.

De functie Search zoekt records in een tabel met een tekenreeks in een van de kolommen.The Search function finds records in a table that contain a string in one of their columns. De tekenreeks kan op een willekeurige plaats in de kolom voorkomen. Zoeken naar "rob" of "bert" levert bijvoorbeeld een overeenkomst op in een kolom die "Robert" bevat.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". Zoeken is niet hoofdlettergevoelig.Searching is case-insensitive. De functie Search gebruikt, in tegenstelling tot Filter en LookUp, een tekenreeks voor een overeenkomst in plaats van een formule.Unlike Filter and LookUp, the Search function uses a single string to match instead of a formula.

Filter en Search retourneren een tabel die dezelfde kolommen bevat als de oorspronkelijke tabel, evenals de records die met de criteria overeenkomen.Filter and Search return a table that contains the same columns as the original table and the records that match the criteria. LookUp retourneert alleen de eerste record die wordt gevonden nadat een formule is toegepast om de record tot één waarde te beperken.LookUp returns only the first record found, after applying a formula to reduce the record to a single value. Als er geen records worden gevonden, retourneren Filter en Search een lege tabel en retourneert LookUp leeg.If no records are found, Filter and Search return an empty table, and LookUp returns blank.

Tabellen vormen een waarde in PowerApps, net als een tekenreeks of getal.Tables are a value in PowerApps, just like a string or number. Ze kunnen worden doorgegeven aan en geretourneerd uit functies.They can be passed to and returned from functions. Filter, Search en LookUp wijzigen een tabel niet.Filter, Search, and LookUp don't modify a table. In plaats daarvan nemen ze een tabel als een argument en retourneren ze een tabel of een record of enkele waarde eruit.Instead, they take a table as an argument and return a table, a record, or a single value from it. Zie working with tables (werken met tabellen) voor meer informatie.See working with tables for more details.

DelegeringDelegation

Indien mogelijk worden filter- en sorteerbewerkingen door PowerApps gedelegeerd naar de gegevensbron, waarna de resultaten op aanvraag per pagina worden weergegeven.When possible, PowerApps will delegate filter and sort operations to the data source and page through the results on demand. Als u bijvoorbeeld een app start waarin een besturingselement Galerie wordt weergegeven met daarin verschillende gegevens, wordt in eerste instantie alleen de eerste set met records overgebracht naar het apparaat.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. Als de gebruiker gaat scrollen, worden er aanvullende gegevens opgehaald uit de gegevensbron.As the user scrolls, additional data is brought down from the data source. Het resultaat is een snellere starttijd voor de app en toegang tot zeer grote gegevenssets.The result is a faster start time for the app and access to very large data sets.

Delegering is echter niet altijd mogelijk.However, delegation may not always be possible. Het verschilt per gegevensbron welke functies en operatoren ze ondersteunen voor delegering.Data sources vary on what functions and operators they support with delegation. Als volledige delegering van een formule niet mogelijk is, wordt er in de ontwerpomgeving een waarschuwing weergegeven bij het deel dat niet kan worden gedelegeerd.If complete delegation of a formula isn't possible, the authoring environment will flag the portion that can't be delegated with a warning. Een oplossing is dan om de formule zo aan te passen dat deze alleen functies en operatoren bevat die kunnen worden gedelegeerd.When possible, consider changing the formula to avoid functions and operators that can't be delegated. In deze lijst ziet u welke gegevensbronnen en bewerkingen kunnen worden gedelegeerd.The delegation list details which data sources and operations can be delegated.

Als delegering niet mogelijk is, wordt er door PowerApps slechts een klein aantal records opgehaald om lokaal mee te werken.If delegation is not possible, PowerApps will pull down only a small set of records to work on locally. De filter- en sorteerfuncties worden dan toegepast op een beperkte set records.Filter and sort functions will operate on a reduced set of records. De inhoud van het besturingselement Galerie is dan mogelijk niet volledig, wat verwarrend kan zijn voor gebruikers.What is available in the Gallery may not be the complete story, which could be confusing to users.

Zie Overzicht van delegeren voor meer informatie.See the delegation overview for more information.

SyntaxisSyntax

Filter( Table, Formula1 [, Formula2, ... ] )Filter( Table, Formula1 [, Formula2, ... ] )

  • Tabel - vereist.Table - Required. Te doorzoeken tabel.Table to search.
  • Formula(s) - vereist.Formula(s) - Required. De formule waarmee elke record van de tabel wordt geëvalueerd.The formula by which each record of the table is evaluated. De functie retourneert alle records die resulteren in true.The function returns all records that result in true. U kunt verwijzen naar kolommen in de tabel.You can reference columns within the table. Als u meer dan een formule opgeeft, worden de resultaten van alle formules gecombineerd met de functie And.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, ... ] )

  • Tabel - vereist.Table - Required. Te doorzoeken tabel.Table to search.
  • SearchString - vereist.SearchString - Required. De tekenreeks waarnaar moet worden gezocht.The string to search for. Bij leeg of een lege tekenreeks worden alle records geretourneerd.If blank or an empty string, all records are returned.
  • Column(s) - vereist.Column(s) - Required. De namen van de kolommen in de tabel waarbinnen moet worden gezocht.The names of columns within Table to search. Kolommen waarbinnen moet worden gezocht, moeten tekst bevatten.Columns to search must contain text. Kolomnamen moeten tekenreeksen zijn en worden omsloten door dubbele aanhalingstekens.Column names must be strings and enclosed in double quotes. De kolomnamen moeten echter statisch zijn en kunnen niet worden berekend met een formule.However, the column names must be static and cannot be calculated with a formula. Als SearchString als gedeeltelijke overeenkomst binnen de gegevens van een van deze kolommen wordt gevonden, zal de volledige record worden geretourneerd.If SearchString is found within the data of any of these columns as a partial match, the full record will be returned.

Notitie

Vervang elke spatie in SharePoint- en Excel-gegevensbronnen met kolomnamen met spaties door ‘_x0020_’.For SharePoint and Excel data sources that contain column names with spaces, specify each space as "_x0020_". Geef 'Naam kolom' bijvoorbeeld op als 'Naam_x0020_kolom'.For example, specify "Column Name" as "Column_x0020_Name".

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

  • Tabel - vereist.Table - Required. Te doorzoeken tabel.Table to search. De syntaxis wordt in de gebruikersinterface als bron boven het functievak weergegeven.In the UI, the syntax is shown as source above the function box.
  • Formule - vereist.Formula - Required. De formule waarmee elke record van de tabel wordt geëvalueerd.The formula by which each record of the table is evaluated. De functie retourneert de eerste record die resulteert in true.The function returns the first record that results in true. U kunt verwijzen naar kolommen in de tabel.You can reference columns within the table. De syntaxis wordt in de gebruikersinterface als voorwaarde boven het functievak weergegeven.In the UI, the syntax is shown as condition above the function box.
  • ReductionFormula - optioneel.ReductionFormula - Optional. Deze formule wordt geëvalueerd voor de record die is gevonden en reduceert de record vervolgens tot één waarde.This formula is evaluated over the record that was found, and then reduces the record to a single value. U kunt verwijzen naar kolommen in de tabel.You can reference columns within the table. Als u deze parameter niet gebruikt, retourneert de functie de volledige record uit de tabel.If you don't use this parameter, the function returns the full record from the table. De syntaxis wordt in de gebruikersinterface als resultaat boven het functievak weergegeven.In the UI, the syntax is shown as result above the function box.

VoorbeeldenExamples

De volgende voorbeelden gebruiken de gegevensbron IJs:The following examples use the IceCream data source:

FormuleFormula BeschrijvingDescription ResultaatResult
Filter( IJs, InBestelling > 0 )Filter( IceCream, OnOrder > 0 ) Retourneert records waarin InBestelling groter is dan nul.Returns records where OnOrder is greater than zero.
Filter( IJs, Hoeveelheid + InBestelling > 225 )Filter( IceCream, Quantity + OnOrder > 225 ) Retourneert records waarin de som van de kolommen Hoeveelheid en InBestelling groter is dan 225.Returns records where the sum of Quantity and OnOrder columns is greater than 225.
Filter( IJs, "chocola" in Lower( Smaak ) )Filter( IceCream, "chocolate" in Lower( Flavor ) ) Retourneert records waarin het woord "chocola" in de naam Smaak voorkomt, onafhankelijk van hoofdletters of kleine letters.Returns records where the word "chocolate" appears in the Flavor name, independent of uppercase or lowercase letters.
Filter( IJs, Hoeveelheid < 10 && InBestelling < 20 )Filter( IceCream, Quantity < 10 && OnOrder < 20 ) Retourneert records waarin Hoeveelheid minder is dan 10 en InBestelling is minder is dan 20.Returns records where the Quantity is less than 10 and OnOrder is less than 20. Er zijn geen records die met deze criteria overeenkomen. Daarom wordt een lege tabel geretourneerd.No records match these criteria, so an empty table is returned.
Search( IJs, "choc", "Smaak" )Search( IceCream, "choc", "Flavor" ) Retourneert records waarin de tekenreeks "choc" in de naam Smaak voorkomt, onafhankelijk van hoofdletters of kleine letters.Returns records where the string "choc" appears in the Flavor name, independent of uppercase or lowercase letters.
Search( IJs, "", "Smaak" )Search( IceCream, "", "Flavor" ) Omdat de zoekterm leeg is, worden alle records geretourneerd.Because the search term is empty, all records are returned.
LookUp( IJs, Smaak = "Chocola", Hoeveelheid )LookUp( IceCream, Flavor = "Chocolate", Quantity ) Zoekt naar een record waarvan Smaak gelijk is aan "Chocola"; daarvan is er één.Searches for a record with Flavor equal to "Chocolate", of which there is one. Retourneert de Hoeveelheid voor de eerste record die wordt gevonden.For the first record that's found, returns the Quantity of that record. 100100
LookUp( IJs, Hoeveelheid > 150, Hoeveelheid + InBestelling )LookUp( IceCream, Quantity > 150, Quantity + OnOrder ) Zoekt naar een record waarvan Hoeveelheid groter is dan 100; daarvan zijn er meerdere.Searches for a record with Quantity greater than 100, of which there are multiple. Retourneert voor de eerste record die wordt gevonden, dat is de Smaak "Vanille", de som van de kolommen Hoeveelheid en InBestelling.For the first record that's found, which is "Vanilla" Flavor, returns the sum of Quantity and OnOrder columns. 250250
LookUp( IJs, Smaak = "Pistache", InBestelling )LookUp( IceCream, Flavor = "Pistachio", OnOrder ) Zoekt naar een record waarvan Smaak gelijk is aan "Pistache"; daarvan zijn er geen.Searches for a record with Flavor equal to "Pistachio", of which there are none. Omdat er geen records zijn gevonden, retourneert Lookup leeg.Because none were found, Lookup returns blank. leegblank
LookUp( IJs, Smaak = "Vanille" )LookUp( IceCream, Flavor = "Vanilla" ) Zoekt naar een record waarvan Smaak gelijk is aan "Vanille"; daarvan is er één.Searches for a record with Flavor equal to "Vanilla", of which there is one. Omdat er geen verminderingsformule werd opgegeven, wordt de volledige record geretourneerd.Since no reduction formula was supplied, the entire record is returned. { Smaak: "Vanille", Hoeveelheid: 200, InBestelling: 75 }{ Flavor: "Vanilla", Quantity: 200, OnOrder: 75 }

Gebruikerservaring met betrekking tot zoekenSearch user experience

In veel apps kunt u een of meer tekens in een zoekvak typen om een lijst met records in een grote gegevensset te filteren.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. Terwijl u typt, geeft de lijst alleen die records weer die overeenkomen met de zoekcriteria.As you type, the list shows only those records that match the search criteria.

De voorbeelden in de rest van dit onderwerp tonen de resultaten van het doorzoeken van een lijst met de naam Klanten die deze gegevens bevat:The examples in the rest of this topic show the results of searching a list, named Customers, that contains this data:

Maak een besturingselement Knop en stel de eigenschap OnSelect ervan in op de volgende formule om deze gegevensbron als een verzameling te maken:To create this data source as a collection, create a Button control and set its OnSelect property to this formula:

ClearCollect( Klanten, Table( { Naam: "Fred Garcia", Bedrijf: "Northwind Traders" }, { Naam: "Cole Miller", Bedrijf: "Contoso" }, { Naam: "Glenda Johnson", Bedrijf: "Contoso" }, { Naam: "Mike Collins", Bedrijf: "Adventure Works" }, { Naam: "Colleen Jones", Bedrijf: "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" } ) )

Net als in dit voorbeeld kunt u een lijst met records in een galeriebesturingselement onder aan het scherm maken.As in this example, you can show a list of records in a Gallery control at the bottom of a screen. U kunt aan de bovenkant van het scherm een besturingselement Tekstinvoer met de naam Zoekinvoer toevoegen, zodat gebruikers kunnen opgeven in welke records ze geïnteresseerd zijn.Near the top of the screen, you can add a Text input control, named SearchInput, so that users can specify which records interest them.

Wanneer de gebruiker tekens in Zoekinvoer typt, worden de resultaten in de galerie automatisch gefilterd.As the user types characters in SearchInput, the results in the gallery are automatically filtered. In dit geval is de galerie geconfigureerd om records weer te geven waarin de naam van de klant (niet de naam van het bedrijf) begint met de reeks tekens in Zoekinvoer.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. Als de gebruiker co in het zoekvak typt, toont de galerie deze resultaten:If the user types co in the search box, the gallery shows these results:

U kunt filteren op basis van de kolom Naam door de eigenschap Items in het galeriebesturingselement op een van deze formules in te stellen:To filter based on the Name column, set the Items property of the gallery control to one of these formulas:

FormuleFormula BeschrijvingDescription ResultaatResult
Filter( Klanten, StartsWith( Naam, SearchInput.Text ) )Filter( Customers, StartsWith( Name, SearchInput.Text ) ) Filtert de gegevensbron Klanten voor records waarin de zoektekenreeks aan het begin van de kolom Naam wordt weergegeven.Filters the Customers data source for records in which the search string appears at the start of the Name column. De test is niet hoofdlettergevoelig.The test is case insensitive. Als de gebruiker co in het zoekvak typt, toont de galerie Colleen Jones en Cole Miller.If the user types co in the search box, the gallery shows Colleen Jones and Cole Miller. De galerie toont Mike Collins niet omdat de kolom Naam voor die record niet met de tekenreeks begint.The gallery doesn't show Mike Collins because the Name column for that record doesn't start with the search string.
Filter( Klanten, Zoekinvoer.Text in Naam )Filter( Customers, SearchInput.Text in Name ) Filtert de gegevensbron Klanten voor records waarin de zoektekenreeks op een willekeurige plaats in de kolom Naam wordt weergegeven.Filters the Customers data source for records in which the search string appears anywhere in the Name column. De test is niet hoofdlettergevoelig.The test is case insensitive. Als de gebruiker co in het zoekvak typt, toont de galerie Colleen Jones, Cole Miller en Mike Collins omdat de zoektekenreeks op een willekeurige plaats in de kolom Naam van al deze records verschijnt.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( Klanten, SearchInput.Text, "Naam" )Search( Customers, SearchInput.Text, "Name" ) De functie Search zoekt, net als de operator in, naar een overeenkomst op een willekeurige plaats in de kolom Naam voor elke record.Similar to using the in operator, the Search function searches for a match anywhere within the Name column of each record. Houd er rekening mee dat u de naam van de kolom tussen dubbele aanhalingstekens moet plaatsen.Note that you must enclose the column name in double quotation marks.

U kunt uw zoekopdracht uitbreiden om de kolom Bedrijf naast de kolom Naam op te nemen:You can expand your search to include the Company column as well as the Name column:

FormuleFormula BeschrijvingDescription ResultaatResult
Filter( Klanten, StartsWith( Naam, SearchInput.Text ) || StartsWith( Bedrijf, SearchInput.Text ) )Filter( Customers, StartsWith( Name, SearchInput.Text ) || StartsWith( Company, SearchInput.Text ) ) Filtert de gegevensbron Klanten op records waarin ofwel de kolom Naam ofwel de kolom Bedrijf met de zoektekenreeks (bijvoorbeeld co) begint.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). De operator || is true als een van beide StartsWith-functies true is.The || operator is true if either StartsWith function is true.
Filter( Klanten, SearchInput.Text in Naam || SearchInput.Text in Bedrijf )Filter( Customers, SearchInput.Text in Name || SearchInput.Text in Company ) Filtert de gegevensbron Klanten op records waarin ofwel de kolom Naam ofwel de kolom Bedrijf de zoektekenreeks (bijvoorbeeld co) op een willekeurige positie bevat.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( Klanten, SearchInput.Text, "Naam", "Bedrijf" )Search( Customers, SearchInput.Text, "Name", "Company" ) Net als de operator in zoekt de functie Search in de gegevensbron Klanten naar records waarin ofwel de kolom Naam ofwel de kolom Bedrijf de zoektekenreeks (bijvoorbeeld co) op een willekeurige plaats bevat.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. De functie Search is eenvoudiger te lezen en te schrijven dan Filter als u meerdere kolommen en meerdere in-operators wilt opgeven.The Search function is easier to read and write than Filter if you want to specify multiple columns and multiple in operators. Houd er rekening mee dat u de namen van de kolommen tussen dubbele aanhalingstekens moet plaatsen.Note that you must enclose the names of the columns in double quotation marks.