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:

| Vzorec | Popis | Výsledek |
|---|---|---|
| Filter( IceCream; OnOrder > 0 ) | Vrátí záznamy, které mají ve sloupci OnOrder hodnotu větší než nula. | ![]() |
| Filter( IceCream; Quantity + OnOrder > 225 ) | Vrátí záznamy, jejichž součet sloupců Quantity a OnOrder je větší než 225. | ![]() |
| 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. | ![]() |
| 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. | ![]() |
| 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. | ![]() |
| Search( IceCream; ""; "Flavor" ) | Protože hledaný termín je prázdný, vrátí se všechny záznamy. | ![]() |
| 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
Otevřete prázdnou aplikaci.
Přidejte novou obrazovku výběrem možnosti Nová obrazovka.
Na kartě Vložit vyberte Galerii a poté vyberte Vertikální.
Na kartě Vlastnosti otevřete pravé podokno, otevřete Zdroj dat a poté vyberte Obchodní vztahy.
(Volitelně) V seznamu Rozložení vyberte různé možnosti.
Na kartě Vložit vyberte Vstup a poté vyberte Combo box. Opakujte krok a přidejte další dva ovládací prvky Combo box.
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.

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'))
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:

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í.

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:

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. | ![]() |
| 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. | ![]() |
| 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. | ![]() |
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. | ![]() |
| 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). | ![]() |
| 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. | ![]() |
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ů).
Váš názor
Odeslat a zobrazit názory pro







