A PowerApps Filter, Search és LookUp függvényeFilter, Search, and LookUp functions in PowerApps

Egy tábla egy vagy több rekordjának megkeresésére szolgál.Finds one or more records in a table.

LeírásDescription

A Filter függvény megkeresi egy adott tábla azon rekordjait, amelyek megfelelnek egy bizonyos képletnek.The Filter function finds records in a table that satisfy a formula. A Filter használatával megkeresheti azokat a rekordokat, amelyek megfelelnek egy vagy több feltételnek, és elvetheti a többi rekordot.Use Filter to find a set of records that match one or more criteria and to discard those that don't.

A LookUp függvény megkeresi egy adott tábla első olyan rekordját, amely megfelel egy bizonyos képletnek.The LookUp function finds the first record in a table that satisfies a formula. A LookUp használatával megkereshet egyetlen olyan rekordot, amely megfelel egy vagy több feltételnek.Use LookUp to find a single record that matches one or more criteria.

Mindkét esetben a rendszer a tábla minden rekordjánál kiértékeli a feltételt.For both, the formula is evaluated for each record of the table. Az eredmények közé azok a rekordok kerülnek be, amelyek igaz eredményt adnak.Records that result in true are included in the result. A képletek normál operátorai mellett az in és exactin operátorok is használhatók a karakterláncrészletekhez.Besides the normal formula operators, you can use the in and exactin operators for substring matches.

Az aktuálisan feldolgozott rekord mezői elérhetők a képletben.Fields of the record currently being processed are available within the formula. Ezekre más értékekhez hasonlóan, egyszerűen név alapján hivatkozhat.You simply reference them by name as you would any other value. Az alkalmazás vezérlőtulajdonságaira és más értékeire is hivatkozhat.You can also reference control properties and other values from throughout your app. További részletekért tekintse meg az alábbi példákat, valamint a rekord hatókörével kapcsolatos munkáról szóló cikket.For more details, see the examples below and working with record scope.

A Search függvény megkeresi egy adott tábla azon rekordjait, amelyeknek az egyik oszlopában megtalálható egy bizonyos karakterlánc.The Search function finds records in a table that contain a string in one of their columns. A karakterlánc az oszlopon belül bárhol előfordulhat; például a „rob” és a „bert” kifejezésekre keresve egyaránt megtalálja az oszlopokban a „Robert” karakterláncot tartalmazó találatokat.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". A keresés nem különbözteti meg a kis- és nagybetűket.Searching is case-insensitive. A Filter és a LookUp függvényekkel ellentétben a Search egyetlen karakterlánc alapján keresi a találatokat, nem egy képlet alapján.Unlike Filter and LookUp, the Search function uses a single string to match instead of a formula.

A Filter és a Search egy olyan táblát adnak vissza, amely ugyanazokat az oszlopokat tartalmazza, mint az eredeti tábla, és a feltételeknek megfelelő rekordokat.Filter and Search return a table that contains the same columns as the original table and the records that match the criteria. A LookUp csak az első megtalált rekordot adja vissza, miután egy képlet alkalmazásával a rekordot egyetlen értékre csökkenti le.LookUp returns only the first record found, after applying a formula to reduce the record to a single value. Ha nincsenek megfelelő rekordok, a Filter és Search egy üres táblát adnak vissza, a LookUp pedig egy üres eredményt.If no records are found, Filter and Search return an empty table, and LookUp returns blank.

A PowerAppsban a táblák éppúgy értékek, mint a karakterláncok vagy a számok,Tables are a value in PowerApps, just like a string or number. így függvények alapjául és eredményeként is szolgálhatnak.They can be passed to and returned from functions. A Filter, a Search és a LookUp nem módosítják a táblákat.Filter, Search, and LookUp don't modify a table. Ehelyett argumentumként kezelik a táblákat, amelyek alapján egy másik táblát, rekordot vagy egyetlen értéket adnak vissza.Instead, they take a table as an argument and return a table, a record, or a single value from it. További részleteket a táblákkal való munkával foglalkozó témakörben talál.See working with tables for more details.

DelegálásDelegation

Amikor lehetséges, a PowerApps delegálja a szűrési és rendezési műveleteket az adatforrásnak, és igény szerint lapozza végig az eredményeket.When possible, PowerApps will delegate filter and sort operations to the data source and page through the results on demand. Ha például elindít egy alkalmazást, amelyben egy adatokkal feltöltött Gyűjtemény vezérlőelem jelenik meg, a rendszer kezdetben csak az első néhány rekordot tölti le az eszközre.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. Ahogy a felhasználó görget, úgy lesznek további adatok letöltve az adatforrásból.As the user scrolls, additional data is brought down from the data source. Ennek köszönhetően az alkalmazás rövidebb idő alatt elindul, és nagyon nagy méretű adathalmazokhoz is hozzá lehet férni.The result is a faster start time for the app and access to very large data sets.

A delegálás azonban nem biztos, hogy mindig lehetséges.However, delegation may not always be possible. Az adatforrások eltérő függvényeket és operátorokat támogatnak delegálással.Data sources vary on what functions and operators they support with delegation. Ha egy képlet teljes delegálása nem lehetséges, a fejlesztői környezet egy figyelmeztetéssel megjelöli azt a részét, amely nem delegálható.If complete delegation of a formula isn't possible, the authoring environment will flag the portion that can't be delegated with a warning. Amennyiben lehetséges, fontolja meg a képlet módosítását a nem delegálható függvények és operátorok használatának elkerülése érdekében.When possible, consider changing the formula to avoid functions and operators that can't be delegated. A delegálási listában található meg részletesen, hogy mely adatforrások és műveletek delegálhatók.The delegation list details which data sources and operations can be delegated.

Ha a delegálás nem lehetséges, a PowerApps csak a rekordok egy kis készletét kéri le helyi használatra.If delegation is not possible, PowerApps will pull down only a small set of records to work on locally. A szűrő- és rendezőfüggvények a rekordok egy csökkentett készletét fogják használni.Filter and sort functions will operate on a reduced set of records. Előfordulhat, hogy a Gyűjteményben nem érhető el minden elem, ami a felhasználók számára zavaró lehet.What is available in the Gallery may not be the complete story, which could be confusing to users.

További információkat a delegálás áttekintésében találhat.See the delegation overview for more information.

SzintaxisSyntax

Filter( Tábla, Képlet1 [, Képlet2, ... ] )Filter( Table, Formula1 [, Formula2, ... ] )

  • Tábla – Kötelező.Table - Required. A kereséshez használni kívánt tábla.Table to search.
  • Képlet(ek) – Kötelező.Formula(s) - Required. A képletek, amelyek alapján a rendszer kiértékeli a tábla egyes rekordjait.The formula by which each record of the table is evaluated. A függvény visszaadja az összes olyan rekordot, amelyek igaz eredményt adnak.The function returns all records that result in true. A hivatkozás alapjául a táblában szereplő oszlopok használhatók.You can reference columns within the table. Ha egynél több képletet ad meg, akkor a képletek eredményeit az And függvénnyel kell kombinálni.If you supply more than one formula, the results of all formulas are combined with the And function.

Search( Tábla, Keresési karakterlánc, Oszlop 1 [, Oszlop 2, ... ] )Search( Table, SearchString, Column1 [, Column2, ... ] )

  • Tábla – Kötelező.Table - Required. A kereséshez használni kívánt tábla.Table to search.
  • Keresési karakterlánc – kötelező.SearchString - Required. A keresendő karakterlánc.The string to search for. Ha ez üres vagy egy üres karakterlánc, akkor a rendszer az összes rekordot visszaadja.If blank or an empty string, all records are returned.
  • Oszlop(ok) – kötelező.Column(s) - Required. A kereséshez használni kívánt oszlopok nevei a Táblában.The names of columns within Table to search. A keresés céljaként megadott oszlopoknak szöveget kell tartalmazniuk.Columns to search must contain text. Az oszlopok neveinek karakterláncoknak kell lenniük, és dupla idézőjelek közé kell őket tenni.Column names must be strings and enclosed in double quotes. Azonban az oszlopok neveinek statikusnak kell lenniük, és nem lehet őket egy képlettel kiszámítani.However, the column names must be static and cannot be calculated with a formula. Ha a rendszer bármelyik oszlop adataiban megtalálja a Keresési karakterláncot részleges egyezésként, akkor a teljes rekordot visszaadja.If SearchString is found within the data of any of these columns as a partial match, the full record will be returned.

Megjegyzés

Azoknál a SharePoint- és Excel-adatforrásoknál, amelyek szóközzel ellátott oszlopneveket tartalmaznak, minden szóközt „_x0020_”-ként adjon meg.For SharePoint and Excel data sources that contain column names with spaces, specify each space as "_x0020_". Például a „Column Name” oszlopot „Column_x0020_Name” értékként adja meg.For example, specify "Column Name" as "Column_x0020_Name".

LookUp( Tábla, Képlet [, Csökkentési képlet ] )LookUp( Table, Formula [, ReductionFormula ] )

  • Tábla – Kötelező.Table - Required. A kereséshez használni kívánt tábla.Table to search. A felhasználói felületen a szintaxis mint forrás jelenik meg a függvénymező felett.In the UI, the syntax is shown as source above the function box.
  • Képlet – Kötelező.Formula - Required. A képletek, amelyek alapján a rendszer kiértékeli a tábla egyes rekordjait.The formula by which each record of the table is evaluated. A függvény visszaadja az első olyan rekordot, amely igaz eredményt ad.The function returns the first record that results in true. A hivatkozás alapjául a táblában szereplő oszlopok használhatók.You can reference columns within the table. A felhasználói felületen a szintaxis mint feltétel jelenik meg a függvénymező felett.In the UI, the syntax is shown as condition above the function box.
  • Csökkentési képlet – nem kötelező.ReductionFormula - Optional. A rendszer kiértékeli a megtalált rekordot e képlet alapján, majd egyetlen értékre csökkenti a rekordot.This formula is evaluated over the record that was found, and then reduces the record to a single value. A hivatkozás alapjául a táblában szereplő oszlopok használhatók.You can reference columns within the table. Ha nem használja ezt a paramétert, akkor a függvény a teljes rekordot adja vissza a táblából.If you don't use this parameter, the function returns the full record from the table. A felhasználói felületen a szintaxis mint eredmény jelenik meg a függvénymező felett.In the UI, the syntax is shown as result above the function box.

PéldákExamples

A következő példák az IceCream (Jégkrém) adatforrást használják:The following examples use the IceCream data source:

KépletFormula LeírásDescription EredményResult
Filter( IceCream, OnOrder > 0 )Filter( IceCream, OnOrder > 0 ) Visszaadja azokat a rekordokat, ahol az OnOrder (Rendelés) nagyobb, mint nulla.Returns records where OnOrder is greater than zero.
Filter( IceCream, Quantity + OnOrder > 225 )Filter( IceCream, Quantity + OnOrder > 225 ) Visszaadja azokat a rekordokat, ahol a Quantity (Mennyiség) és az OnOrder (Rendelés) oszlopok összege nagyobb, mint 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 ) ) Visszaadja azokat a rekordokat, ahol a „chocolate” (csokoládé) szó megjelenik a Flavor (Íz) névben, függetlenül a kis- és nagybetűktől.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 ) Visszaadja azokat a rekordokat, ahol a Quantity (Mennyiség) kisebb, mint 10 és az OnOrder (Rendelés) kisebb, mint 20.Returns records where the Quantity is less than 10 and OnOrder is less than 20. Ezeknek a feltételeknek egy rekord sem felel meg, így a függvény egy üres táblát ad vissza.No records match these criteria, so an empty table is returned.
Search( IceCream, "choc", "Flavor" )Search( IceCream, "choc", "Flavor" ) Visszaadja azokat a rekordokat, ahol a „choc” karakterlánc megjelenik a Flavor (Íz) névben, függetlenül a kis- és nagybetűktől.Returns records where the string "choc" appears in the Flavor name, independent of uppercase or lowercase letters.
Search( IceCream, "", "Flavor" )Search( IceCream, "", "Flavor" ) Mivel a keresési kifejezés üres, ez a függvény minden rekordot visszaad.Because the search term is empty, all records are returned.
LookUp( IceCream, Flavor = "Chocolate", Quantity )LookUp( IceCream, Flavor = "Chocolate", Quantity ) Egy olyan rekordot keres, ahol a Flavor (Íz) értéke „Chocolate” (csokoládé), amiből egy darab található.Searches for a record with Flavor equal to "Chocolate", of which there is one. Az első megtalált rekordnak visszaadja a Quantity (Mennyiség) értékét.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 ) Egy olyan rekordot keres, ahol a Quantity (Mennyiség) nagyobb, mint 100, amiből több is található.Searches for a record with Quantity greater than 100, of which there are multiple. Az első megtalált rekordnak, ahol egyébként a Flavor (Íz) értéke „Vanilla”, visszaadja a Quantity (Mennyiség) és az OnOrder (Rendelés) oszlopok értékeinek összegét.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 ) Egy olyan rekordot keres, ahol a Flavor (Íz) értéke „Pistachio” (pisztácia), amiből egy sem található.Searches for a record with Flavor equal to "Pistachio", of which there are none. Mivel nem található ilyen, a LookUp egy üres eredményt ad vissza.Because none were found, Lookup returns blank. üresblank
LookUp( IceCream, Flavor = "Vanilla" )LookUp( IceCream, Flavor = "Vanilla" ) Megkeres egy olyan rekordot, ahol a Flavor (Íz) értéke „Vanilla”, amiből egy darab található.Searches for a record with Flavor equal to "Vanilla", of which there is one. Mivel nem lett megadva csökkentési képlet, a függvény az egész rekordot visszaadja.Since no reduction formula was supplied, the entire record is returned. { Flavor: "Vanilla", Quantity: 200, OnOrder: 75 }{ Flavor: "Vanilla", Quantity: 200, OnOrder: 75 }

Keresési felhasználói élménySearch user experience

Sok alkalmazásban ha beírunk egy vagy több karaktert a keresőmezőbe, azzal szűrni lehet a nagy méretű adatkészletek rekordjainak listáját.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. A karakterek begépelésével a listában csak azok a rekordok jelennek meg, amelyek megfelelnek a keresési feltételeknek.As you type, the list shows only those records that match the search criteria.

A témakör további részében található példák egy Customers (Ügyfelek) nevű lista keresési eredményeit mutatják, amely a következő adatokat tartalmazza:The examples in the rest of this topic show the results of searching a list, named Customers, that contains this data:

Ha ezt az adatforrást szeretné létrehozni gyűjteményként, akkor hozzon létre egy Gomb vezérlőelemet, és az OnSelect tulajdonság értékeként adja meg a következő képletet: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" } ) )

Ahogy a példában is látható, megjeleníthet egy rekordlistát egy Katalógus vezérlőelemben a képernyő alján.As in this example, you can show a list of records in a Gallery control at the bottom of a screen. A képernyő tetején megadhat egy Szövegbevitel vezérlőelemet, SearchInput (Keresés bemenete) névvel, így a felhasználók megadhatják, hogy milyen rekordok érdeklik őket.Near the top of the screen, you can add a Text input control, named SearchInput, so that users can specify which records interest them.

Ahogy a felhasználó begépeli a karaktereket a SearchInput mezőbe, a rendszer automatikusan szűri a katalógus eredményeit.As the user types characters in SearchInput, the results in the gallery are automatically filtered. Ebben az esetben a katalógus arra van konfigurálva, hogy megjelenítse azon rekordokat, ahol a felhasználó neve (nem a vállalat neve) a SearchInput mezőben megadott karakterlánccal kezdődik.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. Ha a felhasználó begépeli a co karaktereket a keresőmezőbe, a katalógus a következő eredményeket jeleníti meg:If the user types co in the search box, the gallery shows these results:

A Name (Név) oszlop alapján történő szűréshez a katalógus vezérlőelem Elemek tulajdonságának értékeként adja meg a következő képletek valamelyikét:To filter based on the Name column, set the Items property of the gallery control to one of these formulas:

KépletFormula LeírásDescription EredményResult
Filter( Customers, StartsWith( Name, SearchInput.Text ) )Filter( Customers, StartsWith( Name, SearchInput.Text ) ) Kiszűri a Customers (Ügyfelek) adatforrásból azon rekordokat, ahol a keresési karakterlánc szerepel a Name (Név) oszlop elején.Filters the Customers data source for records in which the search string appears at the start of the Name column. Az teszt nem különbözteti meg a kis- és nagybetűket.The test is case insensitive. Ha a felhasználó begépeli a co karaktereket a keresőmezőbe, a katalógusban megjelenik Colleen Jones és Cole Miller.If the user types co in the search box, the gallery shows Colleen Jones and Cole Miller. Mike Collins nem jelenik meg a katalógusban, mivel a rekord Name (Név) oszlopának nem az elején szerepel a keresési karakterlánc.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 ) Kiszűri a Customers (Ügyfelek) adatforrásból azon rekordokat, ahol a keresési karakterlánc a Name (Név) oszlopban bárhol szerepel.Filters the Customers data source for records in which the search string appears anywhere in the Name column. Az teszt nem különbözteti meg a kis- és nagybetűket.The test is case insensitive. Ha a felhasználó begépeli a co karaktereket a keresőmezőbe, a katalógusban megjelenik Colleen Jones, Cole Miller és Mike Collins is, mivel a keresési karakterlánc mindegyik rekord esetében szerepel valahol a Name (Név) oszlopban.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" ) Az in operátor működéséhez hasonlóan a Search függvény az egyes rekordok Name (Név) mezőin belül bárhol keresi az egyezéseket.Similar to using the in operator, the Search function searches for a match anywhere within the Name column of each record. Vegye figyelembe, hogy az oszlop nevét dupla idézőjelbe ("") kell tenni.Note that you must enclose the column name in double quotation marks.

Kiterjesztheti a keresést úgy, hogy a Company (Vállalat) és a Name (Név) oszlopban is keressen:You can expand your search to include the Company column as well as the Name column:

KépletFormula LeírásDescription EredményResult
Filter( Customers, StartsWith( Name, SearchInput.Text ) || StartsWith( Company, SearchInput.Text ) )Filter( Customers, StartsWith( Name, SearchInput.Text ) || StartsWith( Company, SearchInput.Text ) ) Kiszűri a Customers (Ügyfelek) adatforrásból azon rekordokat, ahol a keresési karakterlánc (például co) szerepel akár a Name (Név), akár a Company (Vállalat) oszlop elején.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). Az || operátor akkor igaz, ha bármelyik StartsWith függvény igaz.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 ) Kiszűri a Customers (Ügyfelek) adatforrásból azon rekordokat, ahol a keresési karakterlánc (például co) bárhol szerepel akár a Name (Név), akár a Company (Vállalat) oszlopban.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" ) Az in operátor működéséhez hasonlóan a Search függvény kiszűri a Customers (Ügyfelek) adatforrásból azon rekordokat, ahol a keresési karakterlánc (például co) bárhol szerepel akár a Name (Név), akár a Company (Vállalat) oszlopban.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. A Search függvényt könnyebb olvasni és megírni, mint a Filter függvényt, ha több oszlopot és több in operátort szeretnénk megadni.The Search function is easier to read and write than Filter if you want to specify multiple columns and multiple in operators. Vegye figyelembe, hogy az oszlopok neveit dupla idézőjelbe ("") kell tenni.Note that you must enclose the names of the columns in double quotation marks.