Funkcie Filter, Search a LookUp v PowerAppsFilter, Search, and LookUp functions in PowerApps

Slúži k vyhľadaniu jedného alebo viacerých záznamov v tabuľke.Finds one or more records in a table.

PopisDescription

Funkcia Filter vyhľadá záznamy v tabuľke, ktoré vyhovujú vzorcu.The Filter function finds records in a table that satisfy a formula. Funkcia Filter slúži k vyhľadaniu súboru záznamov, ktoré vyhovujú jednému alebo viacerým kritériám, a k zahodeniu tých, ktoré kritériám nevyhovujú.Use Filter to find a set of records that match one or more criteria and to discard those that don't.

Funkcia LookUp vyhľadá prvý záznam v tabuľke, ktorý vyhovuje vzorcu.The LookUp function finds the first record in a table that satisfies a formula. Funkciu LookUp použite k vyhľadaniu jedného záznamu, ktorý spĺňa jedno alebo viac kritérií.Use LookUp to find a single record that matches one or more criteria.

V prípade oboch funkcií sa vzorec vyhodnocuje pre každý záznam tabuľky.For both, the formula is evaluated for each record of the table. Do výsledku sa zahrnú záznamy, ktorý výsledkom je hodnota true.Records that result in true are included in the result. Okrem bežných operátorov vzorca môžete použiť operátory in a exactin a vyhľadať zhody podreťazcov.Besides the normal formula operators, you can use the in and exactin operators for substring matches.

Polia práve spracúvaného záznamu sú k dispozícii vo vzorci.Fields of the record currently being processed are available within the formula. Jednoducho na ne odkážte podľa názvu ako pri akejkoľvek inej hodnote.You simply reference them by name as you would any other value. Môžete tiež odkazovať na vlastnosti ovládacích prvkov a iné hodnoty z vašej aplikácie.You can also reference control properties and other values from throughout your app. Ďalšie podrobnosti nájdete v nasledujúcich príkladoch a pri práci s rozsahom záznamu.For more details, see the examples below and working with record scope.

Funkcia Search vyhľadá záznamy v tabuľke, ktorá obsahuje reťazec v jednom zo svojich stĺpcov.The Search function finds records in a table that contain a string in one of their columns. Reťazec sa môže nachádzať kdekoľvek v stĺpci - napríklad hľadanie reťazcu „rob“ alebo „bert“ nájde zhodu v stĺpci, ktorý obsahuje reťazec „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". Vyhľadávanie nerozlišuje malé a veľké písmená.Searching is case-insensitive. Na rozdiel od funkcií Filter a LookUp, funkcia Search používa k vyhľadaniu zhody jeden reťazec namiesto vzorca.Unlike Filter and LookUp, the Search function uses a single string to match instead of a formula.

Funkcie Filter a Search vrátia tabuľku, ktorá obsahuje rovnaké stĺpce ako pôvodná tabuľka, a záznamy vyhovujúce zadaným kritériám.Filter and Search return a table that contains the same columns as the original table and the records that match the criteria. Funkcia LookUp použije vzorec k obmedzeniu záznamu na jednu hodnotu a vráti iba prvý nájdený záznam.LookUp returns only the first record found, after applying a formula to reduce the record to a single value. Ak sa nenájdu žiadne záznamy, funkcie Filter a Search vrátia prázdnu tabuľku a funkcia LookUp vráti prázdnu hodnotu.If no records are found, Filter and Search return an empty table, and LookUp returns blank.

Tabuľky sú v PowerApps hodnotou, rovnako ako napríklad reťazec alebo číslo.Tables are a value in PowerApps, just like a string or number. Môžu sa odovzdávať funkciám a funkcie ich môžu vracať.They can be passed to and returned from functions. Funkcie Filter, Search a LookUp nemenia tabuľku.Filter, Search, and LookUp don't modify a table. Namiesto toho vezmú tabuľku ako argument a vrátia tabuľku, záznam alebo jednu hodnotu z nej.Instead, they take a table as an argument and return a table, a record, or a single value from it. Ďalšie podrobnosti nájdete v časti venovanej práci s tabuľkami.See working with tables for more details.

DelegovanieDelegation

Ak je to možné, PowerApps delegujú operácie filtrovania a zoradenia na zdroj údajov a výsledky prechádzajú na požiadanie.When possible, PowerApps will delegate filter and sort operations to the data source and page through the results on demand. Ak napríklad spustíte aplikáciu, v ktorej sa zobrazuje ovládací prvok Galéria naplnený údajmi, nahrá sa najprv do zariadenia len prvá dávka záznamov.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. Ďalšie údaje sa načítajú zo zdroja údajov pri prechádzaní.As the user scrolls, additional data is brought down from the data source. Výsledkom je rýchlejšie spúšťanie aplikácie a prístup k veľmi rozsiahlym množinám údajov.The result is a faster start time for the app and access to very large data sets.

Možnosť delegovania ale nemusí byť vždy k dispozícii.However, delegation may not always be possible. Zdroje údajov sa v podpore funkcií a operátorov pri delegovaní líšia.Data sources vary on what functions and operators they support with delegation. Ak nie je úplné delegovanie vzorca možné, príslušná časť sa v prostredí pre vytváranie označí príznakom s varovaním.If complete delegation of a formula isn't possible, the authoring environment will flag the portion that can't be delegated with a warning. Ak je to možné, zvážte zmenu vzorca tak, aby ste nemuseli používať funkcie a operátory nepodporujúce delegovanie.When possible, consider changing the formula to avoid functions and operators that can't be delegated. Podrobné informácie o zdrojoch údajov a operáciach, ktoré umožňujú delegovanie, nájdete v zozname delegovania.The delegation list details which data sources and operations can be delegated.

V prípade, že delegovanie nie je možné, PowerApps stiahnu len malú dávku záznamov pre lokálnu prácu.If delegation is not possible, PowerApps will pull down only a small set of records to work on locally. Funkcie filtrovania a zoradenia tak budú pracovať s omedzenou množinou záznamov.Filter and sort functions will operate on a reduced set of records. Údaje dostupné v ovládacom prvku Galéria nemusia byť kompletné, čo môže používateľa miasť.What is available in the Gallery may not be the complete story, which could be confusing to users.

Ďalšie informácie nájdete v prehľade delegovania.See the delegation overview for more information.

SyntaxSyntax

Filter( Tabuľka, Vzorec1 [, Vzorec2, ... ] )Filter( Table, Formula1 [, Formula2, ... ] )

  • Tabuľka - povinné.Table - Required. Tabuľka, v ktorej sa má vyhľadávať.Table to search.
  • Vzorec - povinné.Formula(s) - Required. Vzorec, podľa ktorého sa vyhodnocuje každý záznam tabuľky.The formula by which each record of the table is evaluated. Funkcia vráti všetky záznamy, ktorých výsledkom je hodnota true.The function returns all records that result in true. Na stĺpce môžete v tabuľke odkazovať.You can reference columns within the table. Ak zadáte viac vzorcov, skombinujú sa výsledky všetkých vzorcov pomocou funkcie And.If you supply more than one formula, the results of all formulas are combined with the And function.

Search( Tabuľka, HľadanýReťazec, Stĺpec1 [, Stĺpec2, ... ] )Search( Table, SearchString, Column1 [, Column2, ... ] )

  • Tabuľka - povinné.Table - Required. Tabuľka, v ktorej sa má vyhľadávať.Table to search.
  • HľadanýReťazec - povinné.SearchString - Required. Reťazec, ktorý sa ma vyhľadať.The string to search for. Ak reťazec nezadáte alebo zadáte prázdny reťazec, vrátia sa všetky záznamy.If blank or an empty string, all records are returned.
  • Stĺpec - povinné.Column(s) - Required. Názvy stĺpcov v Tabuľke, v ktorých sa má vyhľadávať.The names of columns within Table to search. Stĺpce, v ktorých sa má vyhľadávať, musia obsahovať text.Columns to search must contain text. Názvy stĺpcov musia byť reťazce a musia byť uzavreté v dvojitých úvodzovkách.Column names must be strings and enclosed in double quotes. Názvy stĺpcov ale musia byť statické a nesmú sa vypočítavať pomocou vzorca.However, the column names must be static and cannot be calculated with a formula. Ak sa v údajoch ktoréhokoľvek stĺpca nájde HľadanýReťazec ako čiastočná zhoda, vráti sa celý záznam.If SearchString is found within the data of any of these columns as a partial match, the full record will be returned.

Poznámka

V prípade sharepointových a excelových zdrojov údajov obsahujúcich názvy stĺpcov s medzerami zadajte každú medzeru ako "_x0020_".For SharePoint and Excel data sources that contain column names with spaces, specify each space as "_x0020_". Namiesto "Názov stĺpca" teda zadajte "Názov_x0020_stĺpca".For example, specify "Column Name" as "Column_x0020_Name".

LookUp( Tabuľka, Vzorec [, RedukčnýVzorec ] )LookUp( Table, Formula [, ReductionFormula ] )

  • Tabuľka - povinné.Table - Required. Tabuľka, v ktorej sa má vyhľadávať.Table to search. V používateľskom rozhraní sa syntax zobrazí ako zdroj nad poľom funkcie.In the UI, the syntax is shown as source above the function box.
  • Vzorec - povinné.Formula - Required. Vzorec, podľa ktorého sa vyhodnocuje každý záznam tabuľky.The formula by which each record of the table is evaluated. Funkcia vráti prvý záznam, ktorého výsledkom je true.The function returns the first record that results in true. Na stĺpce môžete v tabuľke odkazovať.You can reference columns within the table. V používateľskom rozhraní sa syntax zobrazí ako podmienka nad poľom funkcie.In the UI, the syntax is shown as condition above the function box.
  • RedukčnýVzorec - voliteľné.ReductionFormula - Optional. Tento vzorec sa vyhodnotí nad nájdeným záznam a potom redukuje záznam na jedinú hodnotu.This formula is evaluated over the record that was found, and then reduces the record to a single value. Na stĺpce môžete v tabuľke odkazovať.You can reference columns within the table. Ak tento parameter nepoužijete, funkcia vráti celý záznam z tabuľky.If you don't use this parameter, the function returns the full record from the table. V používateľskom rozhraní sa syntax zobrazí ako výsledok nad poľom funkcie.In the UI, the syntax is shown as result above the function box.

PríkladyExamples

Nasledujúce príklady používajú zdroj údajov IceCream :The following examples use the IceCream data source:

VzorecFormula PopisDescription VýsledokResult
Filter( IceCream, OnOrder > 0 )Filter( IceCream, OnOrder > 0 ) Vráti záznamy, ktoré majú v stĺpci OnOrder hodnotu väčšiu ako nula.Returns records where OnOrder is greater than zero.
Filter( IceCream, Quantity + OnOrder > 225 )Filter( IceCream, Quantity + OnOrder > 225 ) Vráti záznamy, ktorých súčet stĺpcov Quantity a OnOrder je väčší ako 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 ) ) Vráti záznamy, ktoré v stĺpci Flavor obsahujú „chocolate“ bez ohľadu na to, či je tento reťazec uvedený veľkými alebo malými písmenami.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 ) Vráti záznamy, ktorých hodnota v stĺpci Quantityje menšia než 10 a hodnota v stĺpci OnOrder je menšia než 20.Returns records where the Quantity is less than 10 and OnOrder is less than 20. Týmto kritériám nevyhovujú žiadne záznamy, preto sa vráti prázdna tabuľka.No records match these criteria, so an empty table is returned.
Search( IceCream, "choc", "Flavor" )Search( IceCream, "choc", "Flavor" ) Vráti záznamy, ktoré majú v stĺpci Flavor „choc“ bez ohľadu na to, či je tento reťazec uvedený veľkými alebo malými písmenami.Returns records where the string "choc" appears in the Flavor name, independent of uppercase or lowercase letters.
Search( IceCream, "", "Flavor" )Search( IceCream, "", "Flavor" ) Keďže hľadaný výraz je prázdny, vrátia sa všetky záznamy.Because the search term is empty, all records are returned.
LookUp( IceCream, Flavor = "Chocolate", Quantity )LookUp( IceCream, Flavor = "Chocolate", Quantity ) Vyhľadá záznam, ktorý má v stĺpci Flavor reťazec „Chocolate“. V našom prípade vyhľadá jeden záznam.Searches for a record with Flavor equal to "Chocolate", of which there is one. Pre prvý nájdený záznam vráti hodnotu v stĺpci Quantity daného záznamu.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 ) Vyhľadá záznam, ktorý má v stĺpci Quantity hodnotu väčšiu než 150 – v našom prípade ide o viac záznamov.Searches for a record with Quantity greater than 100, of which there are multiple. Pre prvý nájdený záznam, čo je reťazec „Vanilla“ v stĺpci Flavor, vráti súčet hodnôt v stĺpcoch Quantity a 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 ) Vyhľadá záznam, ktorý v stĺpci Flavor obsahuje reťazec „Pistachio“ – v tomto prípade žiadny taký záznam neexistuje.Searches for a record with Flavor equal to "Pistachio", of which there are none. Pretože sa nenašli žiadne záznamy, funkcia Lookup vráti prázdnu hodnotu.Because none were found, Lookup returns blank. prázdna hodnotablank
LookUp( IceCream, Flavor = "Vanilla" )LookUp( IceCream, Flavor = "Vanilla" ) Vyhľadá sa záznam, ktorý má v stĺpci Flavor uvedené „Vanilla“ – v tomto prípade sa vyhľadá jeden záznam.Searches for a record with Flavor equal to "Vanilla", of which there is one. Pretože nebol zadaný žiadny redukčný vzorec, vráti sa celý záznam.Since no reduction formula was supplied, the entire record is returned. { Flavor: "Vanilla", Quantity: 200, OnOrder: 75 }{ Flavor: "Vanilla", Quantity: 200, OnOrder: 75 }

Vyhľadávanie v používateľskom prostredíSearch user experience

V mnohých aplikáciách môžete do vyhľadávacieho poľa zadať jeden alebo viac znakov a vyfiltrovať si tak z veľkého množstva údajov zoznam záznamov.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. Pri písaní zoznam priebežne zobrazuje len tie záznamy, ktoré vyhovujú kritériám vyhľadávania.As you type, the list shows only those records that match the search criteria.

Príklady vo zvyšnej časti tejto témy zobrazujú výsledky vyhľadávania v zozname Customers, ktorý obsahuje tieto údaje:The examples in the rest of this topic show the results of searching a list, named Customers, that contains this data:

Ak chcete vytvoriť tento zdroj údajov ako kolekciu, vytvorte Tlačidlo ovládať a jeho vlastnosť OnSelect nastavte na tento vzorec: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" } ) )

Rovnako ako v tomto príklade môžete zoznam záznamov zobraziť v ovládacom prvku Galérie v dolnej časti obrazovky.As in this example, you can show a list of records in a Gallery control at the bottom of a screen. Do hornej časti obrazovky môžete pridať ovládací prvok Zadávanie textu s názvom SearchInput, aby si používatelia mohli zobraziť len tie záznamy, ktoré ich zaujímajú.Near the top of the screen, you can add a Text input control, named SearchInput, so that users can specify which records interest them.

Pri zadávaní znakov do poľa SearchInput sa výsledky v galérii automaticky filtrujú.As the user types characters in SearchInput, the results in the gallery are automatically filtered. V tomto prípade je galéria nakonfigurovaná tak, aby sa zobrazovali záznamy, pri ktorých meno zákazníka (nie názov spoločnosti) začína sekvenciou znakov zadanou do poľa 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. Ak užívateľa do poľa vyhľadávania zadá co, galéria zobrazí tieto výsledky:If the user types co in the search box, the gallery shows these results:

Ak chcete filtrovať podľa stĺpca Name, nastavte vlastnosť Items ovládacieho prvku galérie na niektorý z týchto vzorcov:To filter based on the Name column, set the Items property of the gallery control to one of these formulas:

VzorecFormula PopisDescription VýsledokResult
Filter( Customers, StartsWith( Name, SearchInput.Text ) )Filter( Customers, StartsWith( Name, SearchInput.Text ) ) Zo zdroja údajov Customers vyfiltruje záznamy, v ktorých sa hľadaný reťazec v stĺpci Name vyskytuje na začiatku.Filters the Customers data source for records in which the search string appears at the start of the Name column. V teste sa nerozlišujú malé a veľké písmená.The test is case insensitive. Ak používateľa do vyhľadávacieho poľa zadá co, galéria zobrazí Colleen Jones a Cole Miller.If the user types co in the search box, the gallery shows Colleen Jones and Cole Miller. Galéria nezobrazí reťazec Mike Collins, pretože stĺpec Name pre tento záznam nezačína hľadaným reťazcom.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 ) Zo zdroja údajov Customers vyfiltruje záznamy, v ktorých sa hľadaný reťazec zobrazuje kdekoľvek v stĺpci Name.Filters the Customers data source for records in which the search string appears anywhere in the Name column. V teste sa nerozlišujú malé a veľké písmená.The test is case insensitive. Ak používateľ do vyhľadávacieho poľa zadá co, galéria zobrazí Colleen Jones, Cole Miller a Mike Collins, pretože vo všetkých týchto záznamoch sa hľadaný reťazec nachádza niekde v stĺpci Name.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" ) Podobne ako operátor in aj funkcia Search vyhľadá pre každý záznam zhodu kdekoľvek v stĺpci Name.Similar to using the in operator, the Search function searches for a match anywhere within the Name column of each record. Nezabúdajte na to, že názov stĺpca musíte uzavrieť do dvojitých úvodzoviek.Note that you must enclose the column name in double quotation marks.

Hľadanie môžete rozšíriť tak, aby zahŕňalo stĺpec Company a aj stĺpec Name:You can expand your search to include the Company column as well as the Name column:

VzorecFormula PopisDescription VýsledokResult
Filter( Customers, StartsWith( Name, SearchInput.Text ) || StartsWith( Company, SearchInput.Text ) )Filter( Customers, StartsWith( Name, SearchInput.Text ) || StartsWith( Company, SearchInput.Text ) ) Zo zdroja údajovCustomers vyfiltruje záznamy, v ktorých stĺpec Name alebo stĺpec Company začína hľadaným reťazcom (napríklad 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). Operátor || je true, ak je true aj niektorá z funkcií StartsWith.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 ) Zo zdroja Customers vyfiltruje záznamy, v ktorých sa niekde v stĺpci Name alebo Company nachádza hľadaný reťazec (napríklad 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" ) Podobne ako v prípade operátora in a funkcie Search vyhľadá v zdroji údajov Customers záznamy, v ktorých sa niekde v stĺpci Name alebo Company nachádza hľadaný reťazec (napríklad 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. V prípade, že chcete zadať viac stĺpcov a operátorov in, funkcia Search sa v porovnaní s funkciou Filter ľahšie číta a píše.The Search function is easier to read and write than Filter if you want to specify multiple columns and multiple in operators. Nezabúdajte na to, že názvy stĺpcov musíte uzavrieť do dvojitých úvodzoviek.Note that you must enclose the names of the columns in double quotation marks.