As Top 11 Alternativas ao PROCV (atualizado em 2022!) – Excel e Google Planilhas

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Luciano Farina

Last updated on July 9, 2023

Este tutorial vai demonstrar as melhores alternativas ao PROCV no Excel e no Google Planilhas.

mf procv alternativo

1. Função PROCX

Se você tiver uma versão atualizada do Excel, a função PROCX é provavelmente a melhor alternativa à função PROCV.

PROCX: Pesquisa à Esquerda

A matriz de pesquisa e a matriz de retorno da função PROCX são argumentos separados. Isso traz as seguintes vantagens:

  1. Não há necessidade de ajustar a fórmula quando as colunas são inseridas ou excluídas.
  2. Não há necessidade de inserir intervalos/matrizes de várias colunas quando as colunas de pesquisa e de retorno não são adjacentes. Isso reduz a quantidade de dados a serem processados.
  3. Capacidade de realizar pesquisas à esquerda (veja o exemplo):
=PROCX(F3;D3:D7;C3:C7)

procx

PROCX: Retorno de mais de uma Coluna

Um recurso da função PROCX é a possibilidade de retornar mais de uma coluna.

=PROCX(F3;B3:B7;C3:D7)

procx multi col

Observação: A matriz de retorno (colunas) deve ser contígua.

PROCX: Tratamento do Erro #N/D

Ao contrário da função PROCV, onde precisamos usar as funções SEERRO ou SENÃODISP para tratar o erro #N/D, a função PROCX tem um manipulador de erro #N/D integrado, que é o 4º argumento (se_não_encontrada).

=PROCX(E3;B3:B7;C3:C7;"Não encontrado!")

procx na

 

PROCX: Modo de correspondência

Outro recurso excelente da função PROCX é a possibilidade de selecionar o modo_correspondência ( argumento): 0 – Correspondência exata, -1 – Correspondência exata ou próximo item com valor menor, 1 – Correspondência exata ou próximo item com valor maior e 2 – Correspondência de caractere curinga.

=PROCX(E3;B3:B7;C3:C7;"Sem desconto!";-1)

procx corresp

Observação: Ao contrário das correspondências aproximadas das funções PROCV, PROCH e CORRESP, em que precisamos classificar os dados, o modo_correspondência da função PROCX, por padrão, não exige a classificação dos dados (veja o exemplo a seguir).

PROCX: Modo de pesquisa

O exemplo com o argumento modo_correspondência da seção anterior não exigiu um conjunto de dados classificado porque o valor padrão do modo_pesquisa (6º argumento) é uma pesquisa linear (do primeiro ao último). Agora, podemos selecionar o processo de pesquisa da nossa busca (ou seja, pesquisa linear e pesquisa binária), e uma delas é a opção “Pesquisa do último-ao-primeiro” (ou seja, -1), que nos permite retornar facilmente esta correspondência.

=PROCX(E3;B3:B7;C3:C7;;;-1)

procx pesquisa

PROCX: Correspondência Binária Exata e Matrizes Dinâmicas

A atualização mais importante da função PROCV ou mesmo da fórmula ÍNDICE-CORRESP é a possibilidade de realizar uma correspondência exata com um processo de pesquisa binária. Agora podemos utilizar a velocidade da pesquisa binária sem sacrificar a correspondência exata, bastando definir o último argumento, modo_pesquisa, como 2 (ordem ascendente) ou -2 (ordem descendente).

Vejamos um cenário de pesquisa de um milhão de dados:

=PROCX(C3:C1000002;B3:B1000002;B3:B1000002;;;2)

procx bin

Observação: Por padrão, o modo_pesquisa é 1, que é a procura a partir do primeiro valor.

Com a pesquisa binária, podemos realizar essa pesquisa em menos de 5 segundos. Outro aspecto é que podemos converter a função PROCX em uma fórmula de matriz dinâmica, inserindo uma entrada de matriz no valor da pesquisa (por exemplo, C3:C1000002).

2. ÍNDICE-CORRESP

As fórmulas ÍNDICE-CORRESP são a alternativa mais conhecida para a função PROCV nas versões anteriores do Excel.

ÍNDICE-CORRESP: Pesquisa à esquerda

Assim como na função PROCX, a coluna de pesquisa e a coluna de retorno são separadas nas fórmulas ÍNDICE-CORRESP. A coluna de busca é inserida na função CORRESP, que também executa o processo de pesquisa, enquanto a coluna de retorno é inserida na função ÍNDICE, que retorna o valor que corresponde ao resultado da função CORRESP. Esse arranjo oferece os mesmos benefícios mencionados na função PROCX: ajuste automático para inserções e exclusões de colunas, fórmula mais rápida e eficiente devido à menor quantidade de entradas de matriz de colunas, e capacidade de realizar pesquisas à esquerda (veja o exemplo abaixo).

=ÍNDICE(C3:C7;CORRESP(F3;D3:D7;0))

indice corresp

 

Vamos examinar a fórmula:

Função CORRESP

Vamos começar encontrando a coordenada relativa da linha do valor de pesquisa (por exemplo, ID do estudante) da matriz de pesquisa (por exemplo, D3:D7) usando a função CORRESP.

=CORRESP(F3;D3:D7;0)

corresp

Observação: O tipo_correspondência (3º argumento) da função CORRESP define o modo de correspondência. Zero significa correspondência exata, enquanto 1 e -1 são correspondências aproximadas.

Função ÍNDICE

Quando tivermos a coordenada da linha, poderemos usá-la para retornar um valor da matriz de retorno correspondente (por exemplo, C3:C7) usando a função ÍNDICE.

=ÍNDICE(C3:C7;H3)

indice

Observação: A função ÍNDICE retorna um valor de uma matriz com as coordenadas relativas de linha e coluna (para matriz 2D).

A combinação das duas fórmulas resulta em nossa fórmula original:

=ÍNDICE(C3:C7;CORRESP(F3;D3:D7;0))

ÍNDICE-CORRESP: Matriz de Pesquisa Horizontal

Outro exemplo que mostra a flexibilidade das fórmulas ÍNDICE-CORRESP é quando a matriz de pesquisa e a matriz de retorno estão em orientações opostas:

=INDEX(B3:B7,MATCH(D7,E2:I2,0))

indice corresp horiz

3. Função PROCH

Agora que estamos falando de orientações horizontais, há também uma função de pesquisa criada para pesquisas horizontais: a função PROCH.

=PROCH(I3;C2:G3;2;FALSO)

proch

Observação: A função PROCH funciona da mesma forma que a função PROCV, mas na orientação oposta. Ela procura a correspondência exata na primeira linha e retorna o valor correspondente a partir de um determinado núm_índice_lin.

4. DESLOC-CORRESP: Referência Dinâmica de Coluna

Outra alternativa ao PROCV são as fórmulas DESLOC-CORRESP, que funciona de forma semelhante à fórmula ÍNDICE-CORRESP.

Vamos examinar um cenário de pesquisa com referência de coluna dinâmica e ver como o DESLOC difere ligeiramente do ÍNDICE-CORRESP.

=DESLOC(B2;CORRESP(F3;B3:B7;0);CORRESP(G3;C2:D2;0))

desloc corresp

 

Vamos examinar a fórmula:

Coordenadas de Linha e Coluna

Primeiro, precisamos determinar as coordenadas relativas de linha e coluna usando a função CORRESP.

corresp 2

Função DESLOC

Em vez de usar a função ÍNDICE para retornar um valor, nós a substituiremos pela função DESLOC. Por padrão, a função DESLOC retorna um intervalo definindo as coordenadas relativas de linha e coluna de um intervalo de referência (por exemplo, B2).

=DESLOC(B2;I3;J3)

desloc

Observação: A função DESLOC é uma função volátil, o que significa que ela sempre será recalculada quando a planilha for recalculada. Dependendo do cenário, e isso pode afetar a velocidade de sua planilha.

A combinação de todas as funções produz nossa fórmula original:

=DESLOC(B2;CORRESP(F3;B3:B7;0);CORRESP(G3;C2:D2;0))

5. INDIRETO-ENDEREÇO-CORRESP: Referência de Coluna Dinâmica

Outra alternativa flexível ao PROCV são as fórmulas INDIRETO-ENDEREÇO-CORRESP. Vamos aplicar ao cenário de referência de coluna dinâmica:

=INDIRETO(ENDEREÇO(CORRESP(F3;B1:B7;0);CORRESP(G3;A2:D2;0)))

indireto endereco corresp

Vamos examinar a fórmula:

Coordenada da Linha

Nessa fórmula devemos determinar a coordenada de linha da própria célula, diferentemente das fórmulas ÍNDICE e DESLOC, em que usamos coordenadas relativas.

=CORRESP(F3;B1:B7;0)

corresp linha

Coordenada da Coluna

Em seguida, também precisamos determinar a coordenada da coluna da célula.

=CORRESP(G3;A2:D2;0)

corresp coluna

Função ENDEREÇO

Em seguida, usamos as coordenadas de linha e coluna para retornar uma referência de célula em formato de texto usando a função ENDEREÇO. Por padrão, a referência de célula de texto estará no formato absoluto (por exemplo, $C$4).

=ENDEREÇO(I3;J3)

endereco

Função INDIRETO

Por último, convertemos a referência de célula de texto em uma referência de célula real usando a função INDIRETO.

=INDIRETO(K3)

indireto

 

Observação: A função INDIRETO é uma função volátil, o que significa que ela sempre será recalculada quando a planilha for recalculada. Dependendo do cenário, e isso pode afetar a velocidade de sua planilha.

A combinação de todas as funções resulta em nossa fórmula original:

=INDIRETO(ENDEREÇO(CORRESP(F3;B1:B7;0);CORRESP(G3;A2:D2;0)))

6. Função PROC: Última Correspondência

Se houver entradas duplicadas na matriz de pesquisa, é difícil para a função PROCV obter a última correspondência. A função PROCX é a melhor solução, mas se essa não for uma opção, a função PROC é a melhor alternativa.

=PROC(2;1/(B3:B7=E3);C3:C7)

proc

Vamos examinar a fórmula:

Condição de Pesquisa

Primeiro, vamos verificar os valores da coluna de pesquisa (por exemplo, B3:B7) em relação ao valor de pesquisa (por exemplo, E3).

=B3=$E$3

cond pesquisa

Recíproco de Valores Booleanos

Em seguida, tomamos o recíproco dos valores booleanos, em que TRUE é 1 e FALSE é 0.

=1/G3

reciproc

A matriz recíproca é usada como a matriz de pesquisa para a função PROC, que ignora os erros. Portanto, tecnicamente, temos uma matriz de 1s.

Função PROC

A função PROC só pode fazer uma correspondência aproximada com a suposição de que os dados estão classificados em ordem crescente, o que significa que a função PROC encontrará o maior valor da matriz de pesquisa que seja menor ou igual ao valor de pesquisa.

Usamos 2 como valor de pesquisa para aproveitar a correspondência aproximada na matriz de 1s. Se houver duplicatas, como no exemplo, a posição da última instância será retornada.

=PROC(2;H3:H7;C3:C7)

proc 2

 

A combinação de todas as fórmulas resulta em nossa fórmula original:

=PROC(2;1/(B3:B7=E3);C3:C7)

7. Função FILTRO: Pesquisar Todas as Duplicatas

Se quisermos procurar todas as duplicatas, as versões mais recentes do Excel oferecem uma alternativa melhor: a função FILTRO. Ela é simples e não requer muitas etapas, como adicionar colunas auxiliares.

=FILTRO(C3:C7;B3:B7=E2)

filtro

Observação: O primeiro argumento é a matriz (por exemplo, C3:C7) que queremos filtrar e o segundo argumento é o critério de filtragem (por exemplo, B3:B7=E2).

8. FILTRO-ÍNDICE: Procurar a Enésima Correspondência

Em vez de retornar todas as duplicatas, podemos selecionar a enésima correspondência usando as fórmulas FILTRO-ÍNDICE. Essa é uma alternativa mais conveniente ao método de ID exclusivo do PROCV (consulte o artigo Valores duplicados de PROCV).

=ÍNDICE(FILTRO(C3:C7;B3:B7=E3);F3)

filtro indice

Vamos examinar a fórmula:

Função FILTRO

Primeiro, vamos retornar todas as duplicatas usando a função FILTRO. Usamos a matriz de pesquisa = valor de pesquisa como condição de filtro.

=FILTER(C3:C7,B3:B7=E3)

filtro 4

Função ÍNDICE e Enésima Correspondência

Em seguida, retornamos a enésima correspondência do resultado da função FILTRO usando a função ÍNDICE.

=ÍNDICE(H3:H5;F3)

indice 2

A combinação de todas as funções resulta em nossa fórmula original:

=ÍNDICE(FILTRO(C3:C7;B3:B7=E3);F3)

9. SOMARPRODUTO: Pesquisa de Números

Se estivermos pesquisando apenas números, podemos usar a função SOMARPRODUTO como alternativa à função PROCV. Uma vantagem da função SOMARPRODUTO é a conveniência de aplicar vários critérios. Para usuários do Excel sem acesso às novas fórmulas de matriz, não será necessário usar Ctrl+Shift+Enter para processar as matrizes. Vejamos o exemplo abaixo:

=SOMARPRODUTO((B3:B7=F3)*(C3:C7=G3)*D3:D7)

somarproduto

Vamos examinar a fórmula:

Condição 1

Primeiro, vamos aplicar as condições apropriadas às colunas correspondentes. Aqui está a primeira condição:

=B3=$E$3

cond 1

Condição 2

Aqui está a segunda condição:

=C3=$G$3

cond 2

Matriz E

Em seguida, verificamos se ambas as condições são satisfeitas multiplicando as duas matrizes booleanas (VERDADEIRO = 1 e FALSO = 0).

=I3*J3

matriz e

Observação: A multiplicação de matrizes booleanas é equivalente à função E. Se ambas as condições forem satisfeitas, o resultado será 1. Se uma das condições for FALSA, o produto será 0.

Matriz de Retorno

Se não houver duplicatas, a lista conterá um valor de 1 e os demais serão 0s. Convertemos essa matriz na matriz de retorno multiplicando a matriz de retorno a ela.

=K3*D3

matriz retorno

Função SOMARPRODUTO

A função SOMARPRODUTO executa uma multiplicação de matriz e obtém a soma da matriz do produto. Como há apenas um valor maior que 0 e os demais são 0, a soma retornará o valor que estamos procurando.

=SOMARPRODUTO(L3:L7)

somarproduto 2

Observação: Multiplicamos as matrizes antes da função SOMARPRODUTO para converter as matrizes booleanas em números. A função SOMARPRODUTO só executa cálculos com números e exclui outros tipos de dados (por exemplo booleanos ou cadeias de caracteres).

A combinação de todas as fórmulas resulta em nossa fórmula original:

=SOMARPRODUTO((B3:B7=F3)*(C3:C7=G3)*D3:D7)

10. Função SOMASES: Pesquisa de Números 

Em vez da função SOMARPRODUTO, também podemos usar a função SOMASES para realizar pesquisas de vários critérios em números. Ela é mais simples e conveniente de usar em comparação com a função SOMARPRODUTO, mas, diferentemente da função SOMARPRODUTO, não aceita entrada de matriz (como os resultados de matriz de outras funções, por exemplo). Os intervalos intervalo_soma e intervalo_critérios são estritamente intervalos.

=SOMASES(D3:D7;B3:B7;F3;C3:C7;G3)

somases proc

Observação: O primeiro argumento é o intervalo_soma, que é a matriz que será somada. Os argumentos seguintes são pares de intervalo_critérios e critério onde é feita a verificação da condição para que o valor seja somado ou não.

11. Planilhas Google: Função QUERY

Com exceção da função PROCX, que não existe no Planilhas Google, todas as funções mencionadas anteriormente estão disponíveis e funcionam da mesma forma no Google Planilhas.

Há uma alternativa mais poderosa que podemos usar no Planilhas Google: a função QUERY.

=QUERY(B3:C7;"SELECT C WHERE B='"&E3&"'") 
query google

Observação: O segundo argumento da função QUERY é a sintaxe da consulta (formato de texto) que pode nos ajudar a realizar manipulações de dados, como pesquisas, classificação, filtragem e formatação.

Vamos examinar a fórmula:

SELECT

A cláusula SELECT filtra a coluna que queremos retornar (por exemplo, Coluna C).

=QUERY(B3:C7;"SELECT C")

select google

WHERE

A cláusula WHERE filtra a linha. Como o valor de pesquisa é um texto, precisamos colocá-lo entre aspas simples.

where google 2

Observação: Se removermos a cláusula SELECT, todas as colunas serão retornadas.

A combinação das duas cláusulas resulta em nossa fórmula original:

=QUERY(B3:C7;"SELECT C WHERE B='"&E3&"'")

AI Formula Generator

Experimentar gratuitamente

Excel Practice Worksheet

practice excel worksheet

Practice Excel functions and formulas with our 100% free practice worksheets!

  • Automatically Graded Exercises
  • Learn Excel, Inside Excel!

Free Download

Return to Excel Formulas List