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 záznamu, ktorý sa momentálne spracúva, sú k dispozícii v rámci vzorca. Jednoducho môžete na ne odkázať pomocou názvu, rovnako ako v prípade hociktorej inej hodnoty. V rámci aplikácie môžete tiež odkázať na vlastnosti ovládacích prvkov a ďalšie hodnoty. Ďalšie podrobnosti nájdete v príkladoch nižšie a v téme, ako pracovať s rozsahom záznamu.

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.

Delegovanie

Keď to bude možné, portál PowerApps bude delegovať operácie filtrovania a zoradenia na zdroj údajov a prechádzať stranami výsledkov na požiadanie. Keď napríklad spustíte aplikáciu, v ktorej sa zobrazuje ovládací prvok Galéria plný údajov, v zariadení sa najprv sprístupní iba prvá množina záznamov. Keď sa bude používateľ posúvať ďalej, zo zdroja údajov sa prenesú ďalšie údaje. Výsledkom bude rýchlejšie spustenie aplikácie a prístup k veľmi veľkým množinám údajov.

Delegovanie však nemusí byť vždy možné. Zdroje údajov sa líšia v tom, ktoré funkcie a operátory podporujú spolu s delegovaním. Ak úplné delegovanie vzorca nie je možné, prostredie vytvárania označí tú časť, ktorú nemožno delegovať, príznakom s upozornením. Ak je to možné, zvážte zmenu vzorca, aby ste sa vyhli funkciám a operátorom, ktoré nemožno delegovať. Zoznam delegovania podrobne uvádza, ktorá zdroje údajov a operácie možno delegovať.

Ak delegovanie nie je možné, portál PowerApps stiahne iba malú množinu záznamov na lokálnu prácu. Funkcie filtrovania a zoradenia budú fungovať na obmedzenej množine záznamov. Obsah dostupný v Galérii nemusí byť úplný, čo môže používateľov zmiasť.

Ďalšie informácie nájdete v prehľade delegovania.

SyntaxSyntax

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

  • Table – povinné.Table - Required. Tabuľka, v ktorej sa má vyhľadávať.Table to search.
  • Formula(s) - 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( Table, SearchString, Column1 [, Column2, ... ] )Search( Table, SearchString, Column1 [, Column2, ... ] )

  • Table – povinné.Table - Required. Tabuľka, v ktorej sa má vyhľadávať.Table to search.
  • SearchString - 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 SearchString 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( Table, Formula [, ReductionFormula ] )LookUp( Table, Formula [, ReductionFormula ] )

  • Table – 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.
  • Formula – 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.
  • ReductionFormula - 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.