Funktionerna Filter, Search och LookUp i PowerAppsFilter, Search, and LookUp functions in PowerApps

Hittar en eller flera poster i en tabell.Finds one or more records in a table.

BeskrivningDescription

Funktionen Filter söker efter poster i en tabell som uppfyller en formel.The Filter function finds records in a table that satisfy a formula. Använd Filter för att hitta postuppsättningar som matchar ett eller flera kriterier och ignorera alla andra.Use Filter to find a set of records that match one or more criteria and to discard those that don't.

Funktionen LookUp hittar den första posten i en tabell som uppfyller en formel.The LookUp function finds the first record in a table that satisfies a formula. Använd LookUp för att hitta en enda post som matchar ett eller flera kriterier.Use LookUp to find a single record that matches one or more criteria.

För båda två så utvärderas formeln för varje post i tabellen.For both, the formula is evaluated for each record of the table. Poster som resulterar i true inkluderas i resultatet.Records that result in true are included in the result. Förutom de normala formel-operatorerna, kan du använda operatorerna in och exactin för matchningar i understrängar.Besides the normal formula operators, you can use the in and exactin operators for substring matches.

Fields of the record currently being processed are available within the formula. You simply reference them by name as you would any other value. You can also reference control properties and other values from throughout your app. For more details, see the examples below and working with record scope.

Funktionen Search hittar poster i en tabell som innehåller en sträng i en av sina kolumner.The Search function finds records in a table that contain a string in one of their columns. Strängen kan finnas vart som helst inom kolumnen. Om du till exempel söker efter ”rob” eller ”bert” så skulle du få matchningar i en kolumn som innehåller ”Robert”.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". Sökningen är skiftlägeskänslig.Searching is case-insensitive. Till skillnad från Filter och LookUp så använder sig Search-funktionen av en enkel sträng för att matcha istället för en formel.Unlike Filter and LookUp, the Search function uses a single string to match instead of a formula.

Filter och Search returnerar en tabell som innehåller samma kolumner som den ursprungliga tabellen och de poster som matchar kriteriet.Filter and Search return a table that contains the same columns as the original table and the records that match the criteria. LookUp returnerar bara den första posten som hittas, efter att ha tillämpat en formel för att minska posten till ett enda värde.LookUp returns only the first record found, after applying a formula to reduce the record to a single value. Om inga poster hittas så returnerar Filter och Search en tom tabell och LookUp returnerar tom.If no records are found, Filter and Search return an empty table, and LookUp returns blank.

Tables är ett värde i PowerApps, precis som en sträng eller en siffra.Tables are a value in PowerApps, just like a string or number. De kan skickas till och returneras från funktioner.They can be passed to and returned from functions. Filter, Search, och LookUp ändrar inte en tabell.Filter, Search, and LookUp don't modify a table. De tar istället en tabell som ett argument och returnerar en tabell, en post eller ett enda värde från den.Instead, they take a table as an argument and return a table, a record, or a single value from it. Mer information finns i Arbeta med tabeller.See working with tables for more details.

Delegation

When possible, PowerApps will delegate filter and sort operations to the data source and page through the results on demand. 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. As the user scrolls, additional data is brought down from the data source. The result is a faster start time for the app and access to very large data sets.

However, delegation may not always be possible. Data sources vary on what functions and operators they support with delegation. If complete delegation of a formula isn't possible, the authoring environment will flag the portion that can't be delegated with a warning. When possible, consider changing the formula to avoid functions and operators that can't be delegated. The delegation list details which data sources and operations can be delegated.

If delegation is not possible, PowerApps will pull down only a small set of records to work on locally. Filter and sort functions will operate on a reduced set of records. What is available in the Gallery may not be the complete story, which could be confusing to users.

See the delegation overview for more information.

SyntaxSyntax

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

  • Table – obligatoriskt.Table - Required. Tabell som ska genomsökas.Table to search.
  • Formula(s) – obligatoriskt.Formula(s) - Required. Formeln utvärderas för varje post i tabellen.The formula by which each record of the table is evaluated. Funktionen returnerar alla poster som ger värdet sant.The function returns all records that result in true. Du kan referera till kolumner i tabellen.You can reference columns within the table. Om du anger mer än en formel, kombineras resultaten från alla formlerna med And-funktionen.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 – obligatoriskt.Table - Required. Tabell som ska genomsökas.Table to search.
  • SearchString – obligatoriskt.SearchString - Required. Strängen att söka efter.The string to search for. Om tom eller en tom sträng så returneras alla poster.If blank or an empty string, all records are returned.
  • Column(s) – obligatoriskt.Column(s) - Required. Namnen på de kolumner i Table som ska genomsökas.The names of columns within Table to search. De kolumner som ska genomsökas måste innehålla text.Columns to search must contain text. Kolumnnamnen måste vara strängar och omges av dubbla citattecken.Column names must be strings and enclosed in double quotes. Men kolumnnamnen måste vara statiska och kan inte beräknas med en formel.However, the column names must be static and cannot be calculated with a formula. Om SearchString hittas som partiell matchning i någon av kolumnernas data returneras den fullständiga posten.If SearchString is found within the data of any of these columns as a partial match, the full record will be returned.

Obs! För SharePoint- och Excel-datakällor som innehåller kolumnnamn med blanksteg, anges varje utrymme som ”_x0020_”.Note: For SharePoint and Excel data sources that contain column names with spaces, specify each space as "_x0020_". Ange till exempel "Kolumnens namn" som "Kolumnens_x0020_namn".For example, specify "Column Name" as "Column_x0020_Name".

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

  • Table – obligatoriskt.Table - Required. Tabell som ska genomsökas.Table to search. I användargränssnittet visas syntaxen som källa ovanför funktionsrutan.In the UI, the syntax is shown as source above the function box.
  • Formula – obligatoriskt.Formula - Required. Formeln utvärderas för varje post i tabellen.The formula by which each record of the table is evaluated. Funktionen returnerar den första posten med värdet sant.The function returns the first record that results in true. Du kan referera till kolumner i tabellen.You can reference columns within the table. I användargränssnittet visas syntaxen som villkor ovanför funktionsrutan.In the UI, the syntax is shown as condition above the function box.
  • ReductionFormula – valfritt.ReductionFormula - Optional. Den här formeln utvärderas för posten som hittades, vilket minskar posten till ett enda värde.This formula is evaluated over the record that was found, and then reduces the record to a single value. Du kan referera till kolumner i tabellen.You can reference columns within the table. Om den här parametern inte anges returnerar funktionen den fullständiga posten från tabellen.If you don't use this parameter, the function returns the full record from the table. I användargränssnittet visas syntaxen som resultat ovanför funktionsrutan.In the UI, the syntax is shown as result above the function box.

ExempelExamples

I följande exempel används datakällan IceCream:The following examples use the IceCream data source:

FormelFormula BeskrivningDescription ResultatResult
Filter(IceCream, OnOrder > 0)Filter( IceCream, OnOrder > 0 ) Returnerar poster där OnOrder är större än noll.Returns records where OnOrder is greater than zero.
Filter(IceCream, Quantity + OnOrder > 225)Filter( IceCream, Quantity + OnOrder > 225 ) Returnerar poster där summan av kolumnerna Quantity och OnOrder är större än 225.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 ) ) Returnerar poster där ordet "chocolate" visas för namnet Flavor, oavsett skiftläge för bokstäverna.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 ) Returnerar poster där Quantity är mindre än 10 och OnOrder är mindre än 20.Returns records where the Quantity is less than 10 and OnOrder is less than 20. Inga poster matchar dessa villkor så en tom tabell returneras.No records match these criteria, so an empty table is returned.
Search(IceCream, "choc", "Flavor")Search( IceCream, "choc", "Flavor" ) Returnerar poster där strängen ”choc” finns i namnet Flavor, oavsett skiftläge för bokstäverna.Returns records where the string "choc" appears in the Flavor name, independent of uppercase or lowercase letters.
Search(IceCream, "", "Flavor")Search( IceCream, "", "Flavor" ) Eftersom söktermen är tom, returneras alla poster.Because the search term is empty, all records are returned.
LookUp(IceCream, Flavor = "Chocolate", Quantity)LookUp( IceCream, Flavor = "Chocolate", Quantity ) Söker efter en post där Flavor är lika med "Chocolate", vilket det finns en av.Searches for a record with Flavor equal to "Chocolate", of which there is one. Den första posten som hittas, returnerar Quantity för den posten.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 ) Söker efter en post där Quantity är större än 100, vilket det finns flera av.Searches for a record with Quantity greater than 100, of which there are multiple. För den första posten som hittas, vilket är "Vanilla" Flavor, returneras summan av kolumnerna Quantity och OnOrder.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 ) Söker efter en post där Flavor är lika med "Pistachio", vilket det inte finns någon av.Searches for a record with Flavor equal to "Pistachio", of which there are none. Eftersom ingen hittades, returnerar Lookup blank.Because none were found, Lookup returns blank. blankblank
LookUp(IceCream, Flavor = "Vanilla")LookUp( IceCream, Flavor = "Vanilla" ) Söker efter en post där Flavor är lika med "Vanilla", vilket det finns en av.Searches for a record with Flavor equal to "Vanilla", of which there is one. Eftersom ingen reduktionsformel har angetts så returneras hela posten.Since no reduction formula was supplied, the entire record is returned. {Flavor: "Vanilla", Quantity: 200, OnOrder: 75}{ Flavor: "Vanilla", Quantity: 200, OnOrder: 75 }

Användarupplevelsen för sökningSearch user experience

I många appar kan du skriva ett eller flera tecken i en sökruta för att filtrera en lista med poster i en stor datauppsättning.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. När du skriver visar listan endast de poster som matchar sökvillkoren.As you type, the list shows only those records that match the search criteria.

Exemplen i resten av det här avsnittet visar resultaten från sökning av en lista som heter Customers och innehåller dessa data:The examples in the rest of this topic show the results of searching a list, named Customers, that contains this data:

Om du vill skapa den här datakällan som en samling skapar du först en Button-kontroll och ställer in dess egenskap OnSelect på följande formel: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" } ) )

Precis som i det här exemplet kan du visa en lista med poster i en gallerikontroll längst ned på skärmen.As in this example, you can show a list of records in a Gallery control at the bottom of a screen. Nära toppen på skärmen kan du lägga till en textinmatningskontroll som heter SearchInput så att användarna kan ange vilka poster som intresserar dem.Near the top of the screen, you can add a Text input control, named SearchInput, so that users can specify which records interest them.

När användaren skriver tecken i SearchInput, filtreras resultaten i galleriet automatiskt.As the user types characters in SearchInput, the results in the gallery are automatically filtered. I det här fallet har galleriet konfigurerats för att visa poster där kundens namn (inte namnet på företaget) börjar med teckenföljden i SearchInput.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. Om du skriver co i sökrutan visar galleriet följande resultat:If the user types co in the search box, the gallery shows these results:

Om du vill filtrera efter kolumnen Name ställer du in gallerikontrollens egenskap Items på någon av följande formler:To filter based on the Name column, set the Items property of the gallery control to one of these formulas:

FormelFormula BeskrivningDescription ResultatResult
Filter(Customers, StartsWith(Name, SearchInput.Text))Filter( Customers, StartsWith( Name, SearchInput.Text ) ) Filtrerar datakällan Customers efter poster där söksträngen visas i början av Name-kolumnen.Filters the Customers data source for records in which the search string appears at the start of the Name column. Testet är skiftlägesokänsligt.The test is case insensitive. Om användaren skriver co i sökrutan, visar galleriet Colleen Jones och Cole Miller.If the user types co in the search box, the gallery shows Colleen Jones and Cole Miller. Galleriet visar inte Mike Collins eftersom Name-kolumnen för den posten inte börjar med söksträngen.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 ) Filtrerar datakällan Customers för poster där söksträngen visas någonstans i kolumnen Name.Filters the Customers data source for records in which the search string appears anywhere in the Name column. Testet är skiftlägesokänsligt.The test is case insensitive. Om användaren skriver co i sökrutan, visar galleriet Colleen Jones Cole Miller och Mike Collins eftersom söksträngen finns någonstans i kolumnen Name för alla dessa poster.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" ) Ungefär som att använda operatorn in, så söker funktionen Search efter en matchning var som helst inom kolumnen Name för varje post.Similar to using the in operator, the Search function searches for a match anywhere within the Name column of each record. Observera att du måste skriva kolumnnamnet med dubbla citattecken.Note that you must enclose the column name in double quotation marks.

Du kan utöka din sökning att inkludera Company-kolumnen utöver Name-kolumnen:You can expand your search to include the Company column as well as the Name column:

FormelFormula BeskrivningDescription ResultatResult
Filter(Customers, StartsWith(Name, SearchInput.Text) || StartsWith(Company, SearchInput.Text))Filter( Customers, StartsWith( Name, SearchInput.Text ) || StartsWith( Company, SearchInput.Text ) ) Filtrerar datakällan Customers för poster där antingen Name-kolumnen eller Company-kolumnen börjar med söksträngen (t.ex. 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). Operatorn || är true om någon av StartsWith-funktionerna är true.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 ) Filtrerar datakällan Customers för poster där antingen Name-kolumnen eller Company-kolumnen innehåller söksträngen (t.ex. co) var som helst inom sig.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" ) Ungefär som att använda in-operatorn så söker Search-funktionen igenom datakällan Customers för poster där antingen Name-kolumnen eller Company-kolumnen innehåller söksträngen (t.ex. co) var som helst inom sig.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. Search-funktionen är lättare att läsa och skriva än Filter om du vill ange flera kolumner och flera in-operatorer.The Search function is easier to read and write than Filter if you want to specify multiple columns and multiple in operators. Observera att du måste skriva kolumnnamnen med dubbla citattecken.Note that you must enclose the names of the columns in double quotation marks.