Procx Repetido – Procx Mais de um Resultado

Como fazer PROCX repetido no Excel, Procx com mais de um resultado, ou procx duplo.

O que é a Função Procx do Excel

O Procx Excel é uma função de busca e referência. Neste artigo você aprenderá como utilizar a função que substitui o PROCV e também o PROCH com um dinamismo e velocidade superiores.

É uma evolução das funções PROCV e PROCH.

A sintaxe da função é:

=PROCX(pesquisa_valor; pesquisa_matriz; matriz_retorno; [se_não_encontrado]; [modo_correspondência]; [modo_pesquisa])

  1. pesquisa_valor: Obrigatório. O código da chave a ser pesquisada, por exemplo o código de um cliente.
  2. pesquisa_matriz: Obrigatório. Local aonde será pesquisada a chave.
  3. matriz_retorno: Obrigatório. A lista de dados aonde serão retornados os dados.
  4. [se_não_encontrado]: Não obrigatório. Esta função substitui o uso da função SE_ERRO em conjunto com a PROCV, permitindo nesse caso colocar “NÃO LOCALIZADO” por exemplo ou então “” para ficar vazio a célula.
  5. [modo_correspondência]: Não obrigatório.A forma como será realizada a pesquisa, sendo o padrão 0 pois é a correspondência exata utilizada para buscas de códigos por exemplo.
    0: Correspondência exata
    -1:Correspondência exata ou próximo item menor
    1:Correspondência exata ou próximo item maior
    2:Correspondência de caractere coringa
  6. [modo_pesquisa]: Não obrigatório.Esta é mais uma melhoria em relação ao PROCX. É importante entender como utilizar para evitar erros. O 1 e -1 se referem a busca padrão, observando item a item, mudando apenas a ordem da busca, e a pesquisa binária exige que os dados estejam classificados para funcionar, senão ela poderá retornar dados incorretos, a diferença é que a pesquisa binária é muito mais rápida.
    1: Pesquisar do primeiro ao último
    -1:Pesquisar do último ao primeiro
    2 : Pesquisa binária (ordem de classificação crescente)
    -2: Pesquisa binária (ordem de classificação decrescente)

Procx Repetido Usando Coluna Auxiliar

Podemos retornar vários valores com a função procx de várias formas.

Uma delas é usando uma coluna auxiliar.

Para tanto criamos uma coluna que chamamos de Auxiliar, como abaixo:

Procx Repetido - Procx Mais de um Resultado 1

Nela colocamos a função: =CONT.SE($C$8:C8;C8)

Esta função conta os valores que são iguais ao da chave até aquela linha.

Usando esta coluna como auxiliar conseguimos unir a chave que estamos procurando, no caso 10257 por exemplo, com o número da coluna auxiliar.

Procx Repetido - Procx Mais de um Resultado 2

Usamos a fórmula abaixo para retornar o PROCX:

=PROCX(I5&”-“&G8:G24;C8:C24&”-“&B8:B24;C8:C24;””)

Veja que temos ali em I5&”-“&G8 a união do número da nota fiscal e o número sequencial, por exemplo: 10257-1, 10257-2, 10257-3.

E de forma semelhante na busca temos C8:C24&”-“&B8:B24, que temos os valores concatenados criando uma chave única.

E como retorno temos C8:C24.

Veja outras formas abaixo, como PROCX repetido na mesma linha.

Procx Repetido na Mesma Linha

No exemplo abaixo temos um PROCX repetido retornando os valores todos na mesma linha.

No exemplo, não usamos uma coluna auxiliar na tabela, ela é criada dinamicamente na própria fórmula.

Procx Repetido - Procx Mais de um Resultado 3

A fórmula que usamos foi:

=UNIRTEXTO(” / “;VERDADEIRO;PROCX(G5&”-“&SEQUÊNCIA(CONT.VALORES(B8:B24));B8:B24&”-“&SEQUÊNCIA(CONT.VALORES(B8:B24));C8:C24;””))

A função PROCX recebe uma sequência com a nota fiscal e a sequência G5&”-“&SEQUÊNCIA(CONT.VALORES(B8:B24) retornando uma sequência de 10255-1, 10255-2, e assim por diante, no campo de consulta, evitando assim o uso da coluna auxiliar.

E no parâmetro de pesquisa_matriz passamos B8:B24&”-“&SEQUÊNCIA(CONT.VALORES(B8:B24), criando uma matriz com o número de cada nota e um número sequencial.

E no parâmetro de resultado passamos C8:C24.

Por fim, usamos a função UNIRTEXTO para unir as informações e retornar na mesma linha.

Passamos =UNIRTEXTO(” / “;VERDADEIRO;PROCX…….. e com isso temos os valores juntos em uma mesma linha para cada nota.

Procx Repetido - Procx Mais de um Resultado 4

Como fazer Procx com Mais de um Resultado em Várias Linhas

Veja como podemos retornar os dados de várias linhas com PROCX.

Nela usamos como base a mesma fórmula da fórmula para retornar todos os dados de uma consulta com PROCX na mesma linha, mas com uma diferença.

= DIVIDIRTEXTO(UNIRTEXTO(” / “;VERDADEIRO;PROCX(G5&”-“&SEQUÊNCIA(CONT.VALORES(B8:B24));B8:B24&”-“&SEQUÊNCIA(CONT.VALORES(B8:B24));C8:C24;””));;” / “)

Veja acima que temos a inclusão da função DIVIDIRTEXTO.

Isso porque a função UNIRTEXTO tem um parâmetro que remove linhas em branco, o segundo parâmetro.

E com isso usamos a função DIVIDIRTEXTO pare dividir novamente em várias linhas, passando como parâmetro de divisão das informações o mesmo ” / “.

Procx Repetido - Procx Mais de um Resultado 5

Como resultado temos:

Procx Repetido - Procx Mais de um Resultado 6

Detalhe, tudo está sendo retornado com uma única fórmula, não há fórmulas nas linhas abaixo dela, o retorno é de uma matriz despejada no Excel.

Procx Vários com a Função Filtro do Excel

A forma mais fácil de consultar e retornar dados repetidos de chaves no Excel, PROCX repetido, seria usando a função FILTRO.

A função FILTRO retorna uma matriz de dados há partir de uma seleção e de filtros definidos.

Veja a fórmula usada:

=FILTRO(B8:D24;(B8:B24=G5);””)

Procx Repetido - Procx Mais de um Resultado 8

A fórmula tem como entrada o intervalo que desejamos retornar e o segundo parâmetro é o filtro aplicado.

No nosso exemplo, é só a chave, então estamos passando a chave 10257 consultando na coluna “Nota”.

Como resultado temos:

Procx Repetido - Procx Mais de um Resultado 9

Procx Vários com a Função Filtro na Mesma Linha do Excel

Também podemos fazer o retorno de dados na mesma linha usando a função FILTRO.

A fórmula que usamos foi:

=BYROW(F7#;LAMBDA(A;UNIRTEXTO(“, “;;FILTRO(D7:D23;(B7:B23=A);””))))

Nela usamos a função FILTRO e passamos à ela à partir de uma matriz em F7e passada à lambda pela função BYROW, para consultar linha a linha.

Procx Repetido - Procx Mais de um Resultado 10

Como resultado temos uma fórmula única que consulta várias notas fiscais e retorna em cada linha os valores automaticamente.

Procx Repetido - Procx Mais de um Resultado 11

Download Procx Repetido – Procx Mais de um Resultado

Clique no botão abaixo para realizar o  download do arquivo de exemplo:

Baixe a planilha


Marcos Rieper

Pai, marido, professor e consultor em Excel.

Obrigado por ler este artigo, este blog foi criado para difundir o conhecimento em Excel à todos.

Divulgamos novos artigos nas redes sociais, basta clicar nos ícones abaixo.

Excel não precisa ser complicado

Assine nossa newsletter e receba dicas práticas para dominar o excel