Partilhar via


Filter, Search, e LookUp funções

Aplica-se a: Aplicativos de tela Copilot Studio Fluxos de ambiente de trabalho Aplicações orientadas por modelos Funções do Power Platform CLI Dataverse Power Pages

Localiza um ou mais registos numa tabela.

Assista a este vídeo para saber como usar Filtero , Searche LookUp funções:

Nota

Os comandos PAC CLI pac power-fx não suportam a Search função.

Descrição

A Filter função localiza registros em uma tabela que satisfazem uma fórmula. Use Filter para localizar um conjunto de registros que correspondam a um ou mais critérios e descarte os registros que não correspondem.

A LookUp função localiza o primeiro registro em uma tabela que satisfaz uma fórmula. Use LookUp para localizar um único registro que corresponda a um ou mais critérios.

Para ambos, é avaliada a fórmula para cada registo da tabela. Os registos que resultam em true estão incluídos no resultado. Além da fórmula normal operadores, pode utilizar os operadores in e exactin para as correspondências de subcadeia.

Os atuais campos do registo em processamento estão disponíveis na fórmula. Utilize o operador ThisRecord ou simplesmente campos de referência pelo nome, como com qualquer outro valor. O operador As também pode ser usado para nomear o registo que está a ser processado, o que pode ajudar a tornar a sua fórmula mais fácil de compreender e tornar os registos aninhados acessíveis. Para mais informações, consulte os exemplos abaixo e trabalhar com o âmbito de registo.

A Search função localiza registros em uma tabela que contém uma cadeia de caracteres em uma de suas colunas. A cadeia poderá ocorrer em qualquer lugar dentro da coluna; por exemplo, se procurar "rob" ou "bert" é apresentada uma correspondência numa coluna que contém "Robert". A pesquisa não é sensível a maiúsculas e minúsculas. Ao contrário Filter de e LookUp, a Search função usa uma única cadeia de caracteres para corresponder em vez de uma fórmula.

Filter e Search retornar uma tabela que contém as mesmas colunas que a tabela original e os registros que correspondem aos critérios. LookUp Retorna apenas o primeiro registro encontrado, depois de aplicar uma fórmula para reduzir o registro a um único valor. Se nenhum registro for encontrado, Filter retorne Search uma tabela vazia e LookUp retorne em branco.

As tabelas são um valor em Power Apps, assim como uma cadeia de caracteres ou número. Podem ser transmitidos a funções e devolvidos das mesmas. Filter, Searche LookUp não modifique uma tabela. Em vez disso, assumem uma tabela como um argumento e devolvem uma tabela, um registo ou um valor único a partir do mesmo. Consulte trabalhar com tabelas para obter mais detalhes.

Delegação

Sempre que possível, o Power Apps delegará operações de ordenação e filtro para a origem de dados e página através dos resultados a pedido. Por exemplo, quando inicia uma aplicação que mostra um controlo de Galeria preenchido com dados, apenas o primeiro conjunto de registos será colocado inicialmente no dispositivo. Quando o utilizador desloca, os dados adicionais são desativados da origem de dados. O resultado é uma data de início mais rápida para a aplicação e acesso a conjuntos de dados muito grandes.

No entanto, a delegação nem sempre é possível. As origens de dados dependem das funções e operadores que suportam com a delegação. Se não for possível a delegação completa de uma fórmula, o ambiente de criação sinalizará a parte que não pode ser delegada com um aviso. Sempre que possível, considere alterar a fórmula para evitar funções e operadores que não podem ser delegados. A lista de delegação especifica as origens de dados e operações que podem ser delegadas.

Se a delegação não for possível, o Power Apps irá suspender apenas um pequeno conjunto de registos para trabalhar localmente. Filter e as funções de classificação funcionarão em um conjunto reduzido de registros. O que está disponível na Galeria poderá não ser o cenário completo, o que pode ser confuso para os utilizadores.

Consulte a descrição geral da delegação para mais informações.

Sintaxe

Filter(Tabela*, Formula1 [, *Formula2*, ... ]

  • Tabela - Obrigatório. Tabela a pesquisar.
  • Fórmulas - Obrigatório. A fórmula é avaliada para cada registo da tabela. A função devolve todos os registos que resultam em verdadeiro. Pode referenciar colunas na tabela. Se fornecer mais de uma fórmula, os resultados de todas as fórmulas são combinados com a função And.

Search(Tabela*, SearchString, Column1 [, *Column2*, ... ] )

  • Tabela - Obrigatório. Tabela a pesquisar.
  • SearchString - Obrigatório. A cadeia a procurar. Se blank ou uma cadeia vazia, todos os registos são devolvidos.
  • Colunas - Obrigatório. Os nomes das colunas na Tabela a procurar. Se SearchString for encontrado nos dados de qualquer uma destas colunas como correspondência parcial, o registo completo vai ser devolvido.

Nota

No Power Apps antes da versão 3.24042, os nomes de coluna para a Search função eram especificados com uma cadeia de caracteres de texto usando aspas duplas e, se conectados a uma fonte de dados, também precisavam ser nomes lógicos. Por exemplo, foi utilizado o nome lógico "cr43e_name" com aspas em vez do nome a apresentar Nome sem aspas. Para as origens de dados do SharePoint e do Excel que contêm nomes de colunas com espaços, cada espaço foi especificado com "_x0020_", por exemplo, "Nome da Coluna" como "Column_x0020_Name". Após esta versão, todas as aplicações foram atualizadas automaticamente para a nova sintaxe descrita neste artigo.

LookUp(Tabela*, Fórmula [, *FórmulaRedução* ] )

  • Tabela - Obrigatório. Tabela a pesquisar. Na IU, a sintaxe é mostrada como source acima da caixa de função.
  • Fórmula - Obrigatório. A fórmula é avaliada para cada registo da tabela. A função devolve o primeiro registo que resulte em true. Pode referenciar colunas na tabela. Na IU, a sintaxe é mostrada como condition acima da caixa de função.
  • ReductionFormula - Opcional. Esta fórmula é avaliada através do registo que foi encontrado e, em seguida, reduz o registo para um valor único. Pode referenciar colunas na tabela. Se não utilizar este parâmetro, a função devolve o registo completo da tabela. Na IU, a sintaxe é mostrada como result acima da caixa de função.

Exemplos

Os exemplos seguintes utilizam a origem de dadosGelado:

Origem de dados Ice cream.

Fórmula Descrição Resultado
Filter(Sorvete, OnOrder > 0) Devolve os registos, sendo que OnOrder é superior a zero. Filter Sob encomenda.
Filter(Sorvete, Quantidade + OnOrder > 225) Devolve os registos em que a soma das colunas Quantidade e OnOrder é superior a 225. Filter quantidade e ordem.
Filter(Sorvete, "chocolate" em Lower (Flavor)) Devolve registos onde a palavra "chocolate" aparece no nome Flavor, independentemente de terem letras em maiúsculas ou minúsculas. Filter em inferior.
Filter(Sorvete, Quantidade < 10 && OnOrder < 20) Devolve registos onde a Quantidade é inferior a 10 e OnOrder é inferior a 20. Não existem registos que correspondam a estes critérios sendo devolvida uma tabela vazia. Filter na quantidade.
Search(Sorvete, "choc", Sabor) Devolve registos onde a palavra "choc" aparece no nome Flavor, independentemente de terem letras em maiúsculas ou minúsculas. Search itens.
Search(Sorvete, "", Sabor) Uma vez que o termo de pesquisa está vazio, todos os registos são devolvidos. Search todos os itens.
LookUp(Sorvete, Sabor = "Chocolate", Quantidade) Procura um registo com Flavor igual a "Chocolate", onde existe um. Para o primeiro registo encontrado, devolve a Quantidade desse registo. 100
LookUp(Sorvete, Quantidade > 150, Quantidade + Encomenda) Procura um registo com Quantidade superior a 150, dos quais existem vários. Para o primeiro registo encontrado, ou seja,"Vanilla" Flavor, devolve a soma das colunas Quantity e OnOrder. 250
LookUp(Sorvete, Sabor = "Pistache", OnOrder) Procura um registo com Flavor igual a "Pistachio", em relação ao qual não há nenhum. Porque não foi encontrado nenhum, Lookup devolve blank. em branco
LookUp(Sorvete, Sabor = "Baunilha") Procura um registo com Flavor igual a "Vanilla", onde existe um. Uma vez que não foi fornecida nenhum fórmula de redução, todo o registo é devolvido. { Sabor: "Baunilha", Quantidade: 200, OnOrder: 75 }

Filtragem com colunas de escolha

O exemplo a seguir utiliza a tabela Conta no Microsoft Dataverse como origem de dados. Este exemplo mostra como listar Filter contas com base em valores de controle de caixa de combinação selecionados:

Passo a passo

  1. Abra uma aplicação em branco.

  2. Adicione um novo ecrã ao selecionar a opção Novo Ecrã.

  3. No separador Inserir, selecione Galeria e, em seguida, selecione Vertical.

  4. No separador Propriedades do painel direito, abra Origem de Dados e, em seguida, selecione Contas.

  5. (Opcional) Na lista Esquema, selecione opções diferentes.

  6. No separador Inserir, selecione Entrada e, em seguida, selecione Caixa de combinação. Repita o passo para adicionar mais dois controlos de caixa de combinação.

  7. Para cada controlo de caixa de combinação, no separador Propriedades do painel direito, abra Origem de Dados e, em seguida, selecione Contas. Selecione Editar junto à opção Campos e selecione os valores Texto principal e SearchField. O Texto principal deve ser a coluna de escolhas que pretende adicionar à caixa de combinação. Repita o passo para outros dois controlos de caixa de combinação.

    Definir valores de caixa de combinação.

  8. Selecione agora Gallery e defina a propriedade Items como a seguinte fórmula:

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

    Origem de dados de contas.

Search Experiência do usuário

Os exemplos seguintes utilizam a origem de dadosGelado:

Em muitas aplicações, pode escrever um ou mais carateres numa caixa de pesquisa para filtrar uma lista de registos num conjunto de dados grande. À medida que escreve, a lista mostra apenas esses registos correspondentes aos critérios da pesquisa.

Os exemplos no resto deste artigo mostram os resultados da pesquisa de uma lista, com o nome Clientes, que contém os seguintes dados:

Search nos clientes.

Para criar esta origem de dados como uma coleção, crie um controlo de Button e defina a respetiva propriedade OnSelect com esta fórmula:

ClearCollect(Clientes, Tabela({ Nome: "Fred Garcia", Empresa: "Northwind Traders" }, { Nome: "Cole Miller", Empresa: "Contoso" }, { Nome: "Glenda Johnson", Empresa: "Contoso" }, { Nome: "Mike Collins", Empresa: "Adventure Works" }, { Nome: "Colleen Jones", Empresa: "Adventure Works" })

Tal como neste exemplo, pode apresentar uma lista de registos num controlo de Gallery na parte inferior de um ecrã. Junto à parte superior do ecrã, pode adicionar um controlo de Text input, denominado SearchInput, para que os utilizadores possam especificar os registos que lhe interessam.

Search usando a entrada de pesquisa.

À medida que o utilizador escreve carateres no SearchInput, os resultados na galeria são filtrados automaticamente. Neste caso, a galeria é configurada para mostrar registos nos quais o nome do cliente (não o nome da empresa) começa com a sequência de carateres no SearchInput. Se o utilizador escrever co na caixa de pesquisa, a galeria apresenta os seguintes resultados:

Search com inícios.

Para filtrar com base na coluna Nome, defina a propriedade Items do controlo da galeria para uma destas fórmulas:

Fórmula Descrição Resultado
Filter(Clientes, StartsWith(Name, SearchInput.Text) ) Filtra as origens de dados dos Clientes nos registos em que a cadeia de pesquisa aparece no início da coluna Nome. O teste é sensível a maiúsculas e minúsculas. Se o utilizador escrever co na caixa de pesquisa, a galeria mostra Carlos João e Cláudia Mendes. A galeria não mostra Miguel Costa porque a coluna Nome desse registo não começa com a cadeia de pesquisa. Filter com início.
Filter(Clientes, SearchInput.Text no nome) Filtra as origens de dados dos Clientes nos registos em que a cadeia de pesquisa aparece em qualquer parte da coluna Nome. O teste é sensível a maiúsculas e minúsculas. Se o utilizador escrever co na caixa de pesquisa, a galeria mostra Colleen Jones,Cole Miller, e Mike Collins porque a cadeia de pesquisa aparece algures na coluna Nome de todos esses registos. Filter com entrada de pesquisa.
Search(Clientes, SearchInput.Text, Nome) Semelhante ao uso do operador in , a Search função procura uma correspondência em qualquer lugar dentro da coluna Nome de cada registro. Tem de incluir o nome da coluna entre aspas. Search clientes.

Pode expandir a pesquisa para incluir a coluna Empresa e a coluna Nome:

Fórmula Descrição Resultado
Filter(Clientes, StartsWith(Name, SearchInput.Text) || StartsWith(Empresa, SearchInput.Text) Filtra as origens de dados de Clientes nos registos em que a coluna Nome ou a coluna Empresa começa com a cadeia de pesquisa (por exemplo, co). O || operador é true se a função StartsWith for true. Filter os clientes começam.
Filter(Clientes, SearchInput.Text em Nome || SearchInput. Texto na Empresa) Filtra as origens de dados de Clientes nos registos em que a coluna Nome ou a coluna Empresa contém a cadeia de pesquisa (por exemplo, co) em qualquer parte na mesma. Filter entrada de pesquisa de clientes.
Search(Clientes, SearchInput.Text, Nome, Empresa) Semelhante ao uso do operador in , a Search função pesquisa a fonte de dados Clientes para registros nos quais a coluna Nome ou a coluna Empresa contém a cadeia de pesquisa (por exemplo, co) em qualquer lugar dentro dela. A Search função é mais fácil de ler e escrever do que Filter se você quiser especificar várias colunas e vários em operadores. Search clientes com entrada de pesquisa.