Funkce Filter, Search a LookUp v Power Apps

Slouží k vyhledání jednoho nebo více záznamů v tabulce.

Podívejte se na toto video a zjistěte, jak používat funkce Filter, Search a LookUp:

Popis

Funkce Filter vyhledá záznamy v tabulce, které vyhovují vzorci. Funkce Filter slouží k vyhledání sady záznamů, které odpovídají jednomu nebo více kritériím, a k zahození těch, které kritéria nesplňují.

Funkce LookUp vyhledá první záznam v tabulce, který vyhovuje vzorci. Funkci LookUp použijte k vyhledání jednoho záznamu, který splňuje jedno nebo více kritérií.

U obou funkcí se vzorec vyhodnocuje pro každý záznam tabulky. Do výsledku se zahrnou záznamy, jejichž výsledkem je hodnota true. Kromě běžných operátorů vzorce můžete použít operátory in a exactin a vyhledat shody podřetězců.

[!INCLUDE [record-scope]../../includes/record-scope.md)]

Funkce Search vyhledá záznamy v tabulce, která obsahuje řetězec v jednom ze svých sloupců. Řetězec se může nacházet kdekoli ve sloupci – například hledání řetězce „rob“ nebo „bert“ najde shodu ve sloupci, který obsahuje řetězec „Robert“. Při hledání se nerozlišují malá a velká písmena. Na rozdíl od funkcí Filter a LookUp funkce Search používá k vyhledání shody jeden řetězec místo vzorce.

Funkce Filter a Search vrátí tabulku, která obsahuje stejné sloupce jako původní tabulka, a záznamy odpovídající zadaným kritériím. LookUp použije vzorec k omezení záznamu na jednu hodnotu a vrátí jenom první nalezený záznam. Pokud se nenajdou žádné záznamy, funkce Filter a Search vrátí prázdnou tabulku a funkce LookUp vrátí prázdnou hodnotu.

Tabulky jsou v Power Apps hodnotou, stejně jako třeba řetězec nebo číslo. Můžou se předávat funkcím a funkce je můžou vracet. Funkce Filter, Search a LookUp tabulku nezmění. Místo toho vezmou tabulku jako argument a vrátí tabulku, záznam nebo jednu hodnotu z ní. Další podrobnosti najdete v části týkající se práce s tabulkami.

[!INCLUDE [delegation]../../includes/delegation.md)]

Syntaxe

Filter(Tabulka*, Vzorec1 [, Vzorec2, ... ] )

  • Tabulka – povinné. Tabulka, ve které se má vyhledávat
  • Vzorec – povinné. Vzorec, podle kterého se vyhodnocuje každý záznam tabulky. Funkce vrátí všechny záznamy, jejichž výsledkem je hodnota true. Na sloupce v tabulce můžete odkazovat. Pokud zadáte více vzorců, zkombinují se výsledky všech vzorců pomocí funkce And.

Search(Tabulka*, Hledaný_řetězec, Sloupec1 [, Sloupec2, ... ] )

  • Tabulka – povinné. Tabulka, ve které se má vyhledávat
  • Hledaný_řetězec – povinné. Řetězec, který se má vyhledat. Pokud řetězec nezadáte nebo zadáte prázdný řetězec, vrátí se všechny záznamy.
  • Sloupec – povinné. Názvy sloupců v Tabulce, ve kterých se má hledat. Sloupce, ve kterých se má hledat, musí obsahovat text. Názvy sloupců musí být řetězce a musí být uzavřené v dvojitých uvozovkách. Názvy sloupců ale musí být statické a nesmí se vypočítávat pomocí vzorce. Pokud se v datech kteréhokoli sloupce najde Hledaný_řetězec jako částečná shoda, vrátí se celý záznam.

Poznámka

V případě zdrojů dat SharePoint a Excel obsahujících názvy sloupců s mezerami zadejte každou mezeru jako „_x0020_“. Místo Název sloupce tedy zadejte Název_x0020_sloupce.

LookUp(Tabulka*, Vzorec [, Redukční_vzorec ] )

  • Tabulka – povinné. Tabulka, ve které se má vyhledávat V uživatelském rozhraní se syntaxe zobrazí jako zdroj nad polem funkce.
  • Vzorec – povinné. Vzorec, podle kterého se vyhodnocuje každý záznam tabulky. Funkce vrátí první záznam, jehož výsledkem je true. Na sloupce v tabulce můžete odkazovat. V uživatelském rozhraní se syntaxe zobrazí jako podmínka nad polem funkce.
  • Redukční_vzorec – volitelné. Tento vzorec se vyhodnotí nad nalezeným záznamem a potom redukuje záznam na jedinou hodnotu. Na sloupce v tabulce můžete odkazovat. Pokud tento parametr nepoužijete, funkce vrátí celý záznam z tabulky. V uživatelském rozhraní se syntaxe zobrazí jako výsledek nad polem funkce.

Příklady

Následující příklady používají zdroj dat IceCream:

Zdroj dat Ice Cream.

Vzorec Popis Výsledek
Filter( IceCream; OnOrder > 0 ) Vrátí záznamy, které mají ve sloupci OnOrder hodnotu větší než nula. Filtrování podle pořadí.
Filter( IceCream; Quantity + OnOrder > 225 ) Vrátí záznamy, jejichž součet sloupců Quantity a OnOrder je větší než 225. Filtrování podle množství a pořadí.
Filter( IceCream; "chocolate" in Lower( Flavor ) ) Vrátí záznamy, které ve sloupci Flavor obsahují „chocolate“ bez ohledu na to, jestli je tento řetězec uveden velkými nebo malými písmeny. Filtrování bez ohledu na velikost písmen.
Filter(IceCream, Quantity < 10 && OnOrder < 20) Vrátí záznamy, jejichž hodnota ve sloupci Quantity je menší než 10 a hodnota ve sloupci OnOrder je menší než 20. Těmto kritériím nevyhovují žádné záznamy, a proto se vrátí prázdná tabulka. Filtrování podle množství.
Search( IceCream; "choc"; "Flavor" ) Vrátí záznamy, které mají ve sloupci Flavor „choc“ bez ohledu na to, jestli je tento řetězec uveden velkými nebo malými písmeny. Hledání položek.
Search( IceCream; ""; "Flavor" ) Protože hledaný termín je prázdný, vrátí se všechny záznamy. Hledání všech položek.
LookUp( IceCream; Flavor = "Chocolate"; Quantity ) Vyhledá záznam, který má ve sloupci Flavor řetězec Chocolate – v našem případě vyhledá jeden záznam. Pro první nalezený záznam vrátí hodnotu ve sloupci Quantity daného záznamu. 100
LookUp( IceCream; Quantity > 150; Quantity + OnOrder ) Vyhledá záznam, který má ve sloupci Quantity hodnotu větší než 150 – v našem případě se jedná o více záznamů. Pro první nalezený záznam, což je řetězec Vanilla ve sloupci Flavor, vrátí součet hodnot ve sloupcích Quantity a OnOrder. 250
LookUp( IceCream; Flavor = "Pistachio"; OnOrder ) Vyhledá záznam, který ve sloupci Flavor obsahuje řetězec Pistachio – v tomto případě žádný takový záznam neexistuje. Protože se nenašly žádné záznamy, funkce Lookup vrátí prázdnou hodnotu. blank
LookUp( IceCream; Flavor = "Vanilla" ) Vyhledá záznam, který má ve sloupci Flavor uvedeno Vanilla – v tomto případě se vyhledá jeden záznam. Protože nebyl zadán žádný redukční vzorec, vrátí se celý záznam. { Flavor: "Vanilla"; Quantity: 200; OnOrder: 75 }

Filtrování se sloupci s volbami

Následující příklad používá tabulku Obchodní vztah v Microsoft Dataverse jako zdroj dat. Tento příklad ukazuje, jak filtrovat seznam obchodních vztahů na základě vybraných hodnot ovládacího prvku Combo box:

Podrobný postup

  1. Otevřete prázdnou aplikaci.

  2. Přidejte novou obrazovku výběrem možnosti Nová obrazovka.

  3. Na kartě Vložit vyberte Galerii a poté vyberte Vertikální.

  4. Na kartě Vlastnosti otevřete pravé podokno, otevřete Zdroj dat a poté vyberte Obchodní vztahy.

  5. (Volitelně) V seznamu Rozložení vyberte různé možnosti.

  6. Na kartě Vložit vyberte Vstup a poté vyberte Combo box. Opakujte krok a přidejte další dva ovládací prvky Combo box.

  7. Pro každý ovládací prvek Combo box na kartě Vlastnosti otevřete pravé podokno, otevřete Zdroj dat a poté vyberte Obchodní vztahy. Vyberte Upravit vedle možnosti Pole a poté vyberte hodnoty Primární text a SearchField. Primární text by měl být sloupec s volbami, který chcete přidat do pole se seznamem. Opakujte krok pro ostatní dva ovládací prvky Combo box.

    Nastavení hodnot pole se seznamem.

  8. Nyní vyberte ovládací prvek Gallery a nastavte vlastnost Items na následující vzorec:

    Filter(Accounts, 
     'Industry' = ComboBox3.Selected.Industry||IsBlank(ComboBox3.Selected.Industry), 
     'Relationship Type' = ComboBox2.Selected.'Relationship Type'||
     IsBlank(ComboBox2.Selected.'Relationship Type'), 
     'Preferred Method of Contact' = ComboBox1.Selected.'Preferred Method of Contact'||
     IsBlank(ComboBox1.Selected.'Preferred Method of Contact'))
    

    Zdroj dat obchodních vztahů.

Vyhledávání v uživatelském prostředí

Následující příklady používají zdroj dat IceCream:

V mnoha aplikacích můžete do vyhledávacího pole zadat jeden nebo více znaků a vyfiltrovat si tak z velké sady dat seznam záznamů. Při psaní seznam průběžně zobrazuje jenom záznamy, které odpovídají kritériím hledání.

Příklady ve zbývající části tohoto tématu zobrazují výsledky hledání v seznamu s názvem Zákazníci, který obsahuje tato data:

Hledání podle zákazníků.

Pokud chcete vytvořit tento zdroj dat jako kolekci, vytvořte ovládací prvek Button a jeho vlastnost OnSelect nastavte na tento vzorec:

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" } ) )

Stejně jako v tomto příkladu můžete seznam záznamů zobrazit v ovládacím prvku Gallery dole na obrazovce. Do horní části obrazovky můžete přidat ovládací prvek Text input s názvem SearchInput, aby si uživatelé mohli zobrazit jenom záznamy, které je zajímají.

Hledání pomocí vstupu pro hledání.

Při psaní znaků do pole SearchInput se výsledky v galerii automaticky filtrují. V tomto případě je galerie nakonfigurovaná tak, aby se zobrazovaly záznamy, u nichž jméno zákazníka (nikoli název společnosti) začíná sekvencí znaků zadanou do pole SearchInput. Pokud uživatel do pole hledání zadá co, galerie zobrazí tyto výsledky:

Hledání podle části zadaného textu.

Pokud chcete filtrovat podle sloupce Name, nastavte vlastnost Items ovládacího prvku galerie na jeden z těchto vzorců:

Vzorec Popis Výsledek
Filter( Customers; StartsWith( Name; SearchInput.Text ) ) Ze zdroje dat Customers vyfiltruje záznamy, ve kterých se hledaný řetězec ve sloupci Name vyskytuje na začátku. V testu se nerozlišují malá a velká písmena. Pokud uživatel do pole hledání zadá co, galerie zobrazí Colleen Jones a Cole Miller. Galerie nezobrazí řetězec Mike Collins, protože sloupec Name pro daný záznam nezačíná hledaným řetězcem. Filtrování podle části zadaného textu.
Filter( Customers; SearchInput.Text in Name ) Ze zdroje dat Customers vyfiltruje záznamy, v nichž se hledaný řetězec zobrazuje kdekoli ve sloupci Name. V testu se nerozlišují malá a velká písmena. Pokud uživatel do vyhledávacího pole zadá co, galerie zobrazí Colleen Jones, Cole Miller a Mike Collins, protože u všech těchto záznamů se hledaný řetězec nachází někde ve sloupci Name. Filtrování podle vstupu pro vyhledávání.
Search( Customers; SearchInput.Text; "Name" ) Podobně jako operátor in i funkce Search hledá pro každý záznam shodu kdekoli ve sloupci Name. Název sloupce musíte uzavřít do dvojitých uvozovek. Hledat zákazníky.

Hledání můžete rozšířit tak, aby se zahrnul sloupec Company a sloupec Name:

Vzorec Popis Výsledek
Filter( Customers; StartsWith( Name; SearchInput.Text ) || StartsWith( Company; SearchInput.Text ) ) Ze zdroje dat Customers vyfiltruje záznamy, u kterých sloupec Name nebo sloupec Company začíná hledaným řetězcem (například co). Operátor ||; je true, pokud je true i některá z funkcí StartsWith. Filtrování zákazníků podle části zadaného textu.
Filter( Customers; SearchInput.Text in Name || SearchInput.Text in Company ) Ze zdroje dat Customers vyfiltruje záznamy, u kterých se někde ve sloupci Name nebo Company vyskytuje hledaný řetězec (například co). Filtrování zákazníků podle vstupu pro vyhledávání.
Search( Customers; SearchInput.Text; "Name"; "Company" ) Podobně jako u operátoru in i funkce Search vyhledá ve zdroji dat Customers záznamy, u kterých se někde se ve sloupci Name nebo Company vyskytuje hledaný řetězec (například co). V případě, že chcete zadat více sloupců a více operátorů in, funkce Search se oproti funkci Filter snadněji čte i píše. Názvy sloupců musíte uzavřít do dvojitých uvozovek. Hledání zákazníků pomocí vstupů pro vyhledávání.

Poznámka

Můžete nám sdělit, jaké máte jazykové preference pro dokumentaci? Zúčastněte se krátkého průzkumu. (upozorňujeme, že tento průzkum je v angličtině)

Průzkum bude trvat asi sedm minut. Nejsou shromažďovány žádné osobní údaje (prohlášení o zásadách ochrany osobních údajů).