PROCX no Excel – Guia Completo com Exemplos

Quer conhecer a função PROCX no Excel? Então você está no lugar certo!

Quando se trata de funções de pesquisa no Excel, você provavelmente já deve conhecer as funções PROC, PROCV, PROCH, ÍNDICE e CORRESP, entre outas.

E o mais novo membro da família de funções de pesquisa é a função PROCX. Mas afinal, para que serve esta função? Como utiliza-la? Se essas são as suas dúvidas, então este guia é para você!

Navegue pelo tópico de seu interesse:




O que é PROCX?

PROCX é uma função que permite que você procure rapidamente um valor em um conjunto de dados (vertical ou horizontal) e retorne o valor correspondente em alguma outra linha / coluna. Pode-se dizer que essa função faz tudo o que a função PROCV costumava fazer e muito mais.

Por exemplo, se você tem as notas dos alunos em um exame, pode usar a função PROCX para verificar rapidamente a notas de um aluno usando o nome do aluno.

O poder dessa função ficará ainda mais claro conforme mergulharmos em alguns exemplos mais adiante neste guia.

Mas antes de entrar nos exemplos, há uma grande questão – como obter acesso à função PROCX no Excel?

Quais versões do Excel possuem a função PROCX?

A função PROCX atualmente está disponível para as seguintes versões do Excel:

  • Excel do Microsoft 365
  • Excel do Microsoft 365 para Mac
  • Excel para a Web
  • Excel para iPad
  • Excel para iPhone
  • Excel para tablets Android
  • Excel para telefones Android

Adquira aqui o Microsoft 365 e aproveite todas as vantagens da Função PROCX do Excel.

Isso significa que se você estiver usando versões anteriores do Excel (2010/2013/2016/2019), não poderá usar esta função.

Até a data em que este guia foi escrito, não há certeza de que esta função possa ser lançada em versões anteriores do Excel (talvez como um suplemento, do mesmo modo que a Microsoft fez para o Power Query).

De qualquer modo, para obter acesso a essa função, o ideal é que você esteja usando o Office 365.

Dica Extra: Caso você já tenha acesso ao Office 365 (Home, Personal, ou University edition) e não tenha acesso a função PROCX, então basta ir até a guia Arquivo e clicar em Conta.

Haverá o programa Office Insider e você pode clicar e ingressar no Programa Office Insider. Isso lhe dará acesso à função PROCX.

PROCX no Excel – Sintaxe e uso básico

Conforme mencionado anteriormente, a função PROCX pesquisa um intervalo ou uma matriz para um valor especificado e retorna o valor relacionado de outra coluna. Ela é capaz de pesquisar verticalmente e horizontalmente e retornar uma correspondência exata (padrão), correspondência aproximada (mais próxima) ou correspondência curinga (parcial).

A sintaxe da função PROCX é:

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

Onde:

Os três primeiros argumentos são obrigatórios e os três últimos são opcionais.

pesquisa_valor: Representa o valor a ser pesquisado.
pesquisa_matriz: Refere-se ao intervalo ou matriz onde pesquisar.
matriz_retorno: Representa o intervalo ou matriz a partir do qual os valores serão retornados.
se_não_encontrada: [Argumento opcional]. Representa o valor a ser retornado se nenhuma correspondência for encontrada. Se omitido, um erro #N/D é retornado.
modo_correspondência: [Argumento opcional]. Representa o tipo de correspondência a ser executado:

  • 0 ou omitido (padrão) – correspondência exata. Se não for encontrado, um erro #N/D é retornado.
  • -1 – correspondência exata ou próxima menor. Se uma correspondência exata não for encontrada, o próximo valor menor será retornado.
  • 1 – correspondência exata ou próximo maior. Se uma correspondência exata não for encontrada, o próximo valor maior será retornado.
  • 2 – correspondência de caractere curinga.

modo_de_pesquisa [opcional] – Representa a direção da pesquisa:

  • 1 ou omitido (padrão) – para pesquisar do primeiro ao último.
  • -1 – para pesquisar na ordem inversa, do último para o primeiro.
  • 2 – pesquisa binária em dados ordenados de forma ascendente.
  • -2 – pesquisa binária em dados classificados em ordem decrescente.

De acordo com a Microsoft, a pesquisa binária está incluída para usuários avançados. É um algoritmo especial que encontra a posição de um valor de pesquisa em uma matriz classificada, comparando-o com o elemento do meio da matriz. Uma pesquisa binária é muito mais rápida do que uma pesquisa normal, mas funciona corretamente apenas em dados classificados.


Uso básico da função

Para obter maior compreensão, vamos criar uma fórmula PROCX em sua forma mais simples para realizar uma pesquisa exata. Para isso, precisaremos apenas dos 3 primeiros argumentos.

Suponha que você tenha uma tabela de resumo de vendas e comissões de 5 vendedores. Você deseja obter o valor da comissões de um determinado vendedor em F1 (pesquisa_valor). Com os nomes dos vencedores em A2:A6 (pesquisa_matriz) e comissões em C2:C6 (matriz_retorno), a fórmula ficará da seguinte maneira:

=PROCX(F1;A2:A6;C2:C6)

Em outras palavras, estamos dizendo para o Excel pesquisar o valor da célula F1 no intervalo A2:A6 e retornar um valor de C2:C6 na mesma linha.

Uso básico da função

Como você pode observar no exemplo acima, a função PROCX funciona perfeitamente sem números de índice de coluna, sem classificação e demais peculiaridades que você já estava acostumado ao usar a função PROCV.

PROCX x PROCV – Principais diferenças e vantagens

Ao compararmos a tradicional função PROCV com a função PROCV podemos observar diversas vantagens com o uso desta última. Algumas delas são:

  • Pesquisa vertical e horizontal: A função PROCX recebeu esse nome devido à sua capacidade pesquisar tanto vertical quanto horizontalmente.
  • Pesquisa em qualquer direção: Direita, esquerda, embaixo ou para cima. Enquanto a função PROCV só pode pesquisar na coluna mais à esquerda e a função PROCH apenas na linha mais alta, a função PROCX não possui tais limitações. A famosa pesquisa à esquerda no Excel não é mais um problema.
  • Correspondência exata por padrão: Na maioria das situações, você estará procurando uma correspondência exata e a função PROCX a retorna por padrão (ao contrário da função PROCV que tem como padrão a correspondência aproximada). Obviamente, você também pode fazer com que a função PROCX execute uma correspondência aproximada, se necessário.
  • Correspondência parcial com curingas: Quando você conhece apenas uma parte do valor de pesquisa, não todo, uma correspondência de curinga é útil.
  • Pesquise na ordem inversa: Antes, para conseguir obter a última ocorrência, você tinha que inverter a ordem dos dados de origem. Agora, você simplesmente define o argumento modo_correspondência para -1 para forçar a função PROCX a pesquisar na parte de trás e retornar a última correspondência.
  • Retorna vários valores: Ao manipular com o argumento matriz_retorno, você pode extrair uma linha ou coluna inteira de dados relacionados ao seu valor de pesquisa.
  • Pesquise com vários critérios: A função PROCX também é capaz de lidar com matrizes nativamente, o que torna possível realizar pesquisas com vários critérios.
  • Se ocorrer erro na função: Tradicionalmente, usamos a função SENÃODISP para detectar erros #N/D. Por outro lado, a função PROCX já incorpora esta funcionalidade no argumento se_não_encontrada permitindo retornar o seu próprio texto personalizado se nenhuma correspondência válida for encontrada.
  • Inserções / exclusões de coluna: Um dos grande problemas com o uso da função PROCV é que adicionar ou remover colunas quebra uma fórmula porque a coluna de retorno é identificada por seu número de índice. Por outro lado, com a função PROCX, você fornece o intervalo de retorno, não o número, o que significa que você pode inserir e remover quantas colunas precisar sem quebrar nada.
  • Melhor desempenho: A função PROCV pode tornar suas planilhas mais lentas porque inclui a tabela inteira nos cálculos, o que resulta no processamento de muito mais células do que o realmente necessário. Por outro lado, a função PROCX trata apenas das matrizes de pesquisa e retorno das quais realmente depende.

Como usar a função PROCX no Excel

Os exemplos a seguir demonstram os recursos mais úteis da função PROCX no Excel. Além disso, você também poderá conferir alguns exemplos de usos não triviais que levarão suas habilidades de pesquisa do Excel a um novo nível.


Exemplo 1: Procura vertical e horizontal

Você já deve saber que o Excel costumava ter duas funções para diferentes tipos de pesquisa, cada uma com sua própria sintaxe e regras de uso: PROCV para pesquisar verticalmente em uma coluna e PROCH para pesquisar horizontalmente em uma linha.

Com a função PROCX você pode fazer as duas coisas com a mesma sintaxe. A diferença está no que você fornece para as matrizes de pesquisa e retorno.

Para pesquisa vertical, forneça colunas:

=PROCX(E1;A2:A6;B2:B6)

Como usar a função PROCX no Excel

Para pesquisa horizontal, insira linhas em vez de colunas:

=PROCX(I1;B1:F1;B2:F2)

procx busca horizontal

Exemplo 2: Pesquisa à esquerda

Conforme dito anteriormente, em versões anteriores do Excel, a fórmula ÍNDICE + CORRESP era a única maneira confiável de fazer pesquisar à esquerda. E a boa notícia é que agora, você não precisa mais combinar duas funções onde uma seria suficiente. Basta especificar no argumento pesquisa_matriz o destino e a função PROCX o tratará sem problemas, independentemente de sua localização.

Para melhor compreensão, observe neste segundo exemplo onde adicionamos a coluna Classificação à esquerda de nossa tabela de exemplo. O objetivo é obter a classificação do vendedor na célula F1. A função PROCV não funcionaria neste caso, pois ela só pode retornar um valor de uma coluna à direita da coluna de pesquisa. Já a função PROCX é capaz de lidar facilidade com isto:

=PROCX(F1;B2:B6;A2:A6)

Pesquisa à esquerda

Exemplo 3: Função PROCX com correspondência exata e aproximada

Você poderá controlar o tipo de correspondência no quinto argumento da função PROCX – modo_correspondência. Por padrão, uma correspondência exata é executada.

Observe que mesmo quando você escolhe uma correspondência aproximada (modo_correspondência definido como 1 ou -1), a função ainda irá procurar por uma correspondência exata primeiro. A diferença está no que ela retorna se um valor de pesquisa exato não for encontrado.

Para relembrar o argumento modo_correspondência:

  • Se for 0 ou omitido: correspondência exata; se não for encontrado – erro #N/D.
  • Se for  -1: correspondência exata; se não for encontrado – próximo item menor.
  • Se for 1: correspondência exata; se não for encontrado – próximo item maior.

PROCX com correspondência exata

Esta é a opção que você provavelmente usará na maioria das vezes para fazer pesquisas no Excel. Como uma correspondência exata é o comportamento padrão da função PROCX, você pode omitir o argumento modo_correspondência e fornecer apenas os 3 primeiros argumentos necessários.

Em algumas situações, no entanto, uma correspondência exata não funcionará. Um cenário típico é quando sua tabela de pesquisa não contém todos os valores, mas sim “marcos” ou “limites” como descontos baseados em quantidade, comissões baseadas em vendas, etc.

No exemplo a seguir, temos tabela de pesquisa onde mostra a correlação entre Pontuações e Notas nos exames. Como você pode observar na imagem abaixo, uma correspondência exata funciona apenas quando a pontuação de um aluno em particular corresponde exatamente ao valor na tabela de pesquisa (como Cristina na linha 4). Em todos os outros casos, um erro #N/D é retornado.

=PROCX(E2;$A$2:$A$7;$B$2:$B$7)

PROCX com correspondência exata

Para obtermos as notas em vez dos erros #N/D precisamos procurar uma correspondência aproximada, conforme mostrado no próximo exemplo.

PROCX no Excel com correspondência aproximada

Para realizarmos uma pesquisa aproximada com a função PROCX, basta definir o argumento modo_correspondência -1 ou 1, dependendo de como seus dados estão organizados.

Em nosso caso, a tabela de pesquisa lista os limites inferiores das notas. Portanto, definimos o modo_correspondência como -1 para pesquisar o próximo valor menor quando uma correspondência exata não for encontrada:

=PROCX(E2;$A$2:$A$7;$B$2:$B$7;;-1)

Por exemplo, o aluno Bruno tem pontuação de 94 (F2). A fórmula procura esse valor de pesquisa em B2:B7, mas não consegue encontrá-lo. Em seguida, ele procura o próximo item menor e encontra 90, que corresponde a nota A:

PROCX com correspondência aproximada

Se neste exemplo nossa tabela de pesquisa contivesse os limites superiores das notas, definiríamos o argumento modo_correspondência como 1 para pesquisar o próximo item maior se uma correspondência exata falhar:

=PROCX(E2;$A$2:$A$7;$B$2:$B$7;;1)

Correspondência aproximada

Importante: Ao copiar uma fórmula do PROCX para várias células, bloqueie a pesquisa ou os intervalos de retorno com referências de células absolutas (como, por exemplo, $B$2:$B$7) para evitar que mudem.


Exemplo 4: PROCX com correspondência parcial (curingas)

Do mesmo modo que você pode usar caracteres curinga na função PROCV e CORRESP, você também pode fazer isso com a função PROCX. No entanto, há uma diferença.

Na função PROCX, você precisa especificar que está usando caracteres curinga (no quinto argumento). Se você não especificar isso, a função PROCX apresentará um erro.

A imagem abaixo mostra uma tabela contendo os nomes das empresas e seus respetivos valores de mercado. Note que queremos pesquisar o nome de uma empresa na coluna D e obter o seu valor de mercado na tabela à esquerda. E como os nomes na coluna D não são correspondências exatas, teremos que usar caracteres curinga.

=PROCX("*"&D2&"*";$A$2:$A$9;$B$2:$B$9;;2)

procx com curinga

Observe na fórmula acima, que usamos o caractere curinga asterisco (*) antes e depois de D2 (ele precisa estar entre aspas duplas e concatenado a D2 usando &).

Isso diz à fórmula para examinar todas as células e, se ela contiver a palavra na célula D2 (que é Apple), considere-a uma correspondência exata. Não importa quantos e quais caracteres existem antes e depois do texto na célula D2.

E para ter certeza de que a função PROCX aceita caracteres curinga, o quinto argumento foi definido como 2 (correspondência de caractere curinga).

Exemplo 5: PROCX na ordem inversa para obter a última ocorrência

Caso sua tabela contenha várias ocorrências do valor de pesquisa, às vezes você pode precisar retornar a última correspondência. Para fazer isso, configure sua fórmula PROCX para pesquisar na ordem inversa.

A direção da pesquisa é controlada pelo 6º argumento denominado modo_de_pesquisa:

  • 1 ou omitido (padrão): pesquisa do primeiro ao último valor, ou seja, de cima para baixo com pesquisa vertical ou da esquerda para a direita com pesquisa horizontal.
  • 1: pesquisa em ordem inversa do último ao primeiro valor.

Como exemplo, vamos retornar a última venda feita por um vendedor específico. Para isso, reunimos os três primeiros argumentos necessários (G1 para pesquisa_valor, B2: B9 para pesquisa_matriz e D2:D9 para matriz_retorno) e colocamos -1 no 6º argumento:

=PROCX(G1;B2:B10;D2:D10;;;-1)

Encontrar última correspondência no Excel

Exemplo 6: PROCX para retornar várias colunas ou linhas

Outro recurso muito interessante da função PROCX é sua capacidade de retornar mais de um valor relacionado à mesma correspondência. E o melhor é que tudo é feito com a sintaxe padrão!

Para melhor compreensão, observe a imagem abaixo e suponha que você deseja recuperar todos os detalhes relativos ao vendedor de seu interesse (inserido na célula F2). O que você precisa fazer é fornecer um intervalo, não uma única coluna ou linha, para o argumento matriz_retorno:

Na tabela a seguir, suponha que você deseja recuperar todos os detalhes relativos ao vendedor de seu interesse (F2). O que você precisa fazer é fornecer um intervalo, não uma única coluna ou linha, para o argumento matriz_retorno:

=PROCX(F2;A2:A7;B2:D7)

Observe que só precisamos inserir a fórmula na célula superior esquerda do intervalo de resultados e o Excel automaticamente espalha os resultados nas células em branco adjacentes. Em nosso caso, a matriz de retorno (B2: D7) inclui 3 colunas (Data , Item e Valor), e todos os três valores são retornados no intervalo G2:I2.

retornar várias colunas ou linhas

Caso prefira organizar os resultados verticalmente em uma coluna, aninhe PROCX com a função TRANSPOR para inverter a matriz retornada:

=TRANSPOR(PROCX(G1;A2:A7;B2:D7))

Função PROCX com TRANSPOR

Do mesmo modo é possível retornar uma coluna inteira de dados, digamos a coluna Valor. Para isso, use a célula F1 que contém “Valor” como argumento pesquisa_valor, o intervalo A1:D1 contendo os cabeçalhos das colunas como pesquisa_matriz e o intervalo A2:D7 contendo todos os dados como matriz_retorno:

=PROCX(F1;A1:D1;A2:D7)

retornar várias linhas no Excel


Exemplo 7: PROCX no Excel com vários critérios

Outra vantagem da função PROCX do Excel é que ela consegue lidar com matrizes nativamente. Devido a essa capacidade, você pode avaliar vários critérios diretamente no argumento pesquisa_matriz.

Neste caso, a estrutura da função ficará conforme exemplo abaixo:

PROCX(1;(critério_intervalo1 = Critério1 ) * (critério_intervalo2 = Critério2 ) * (…); matriz_retorno)

Na estrutura acima, o resultado de cada teste de critério é uma matriz de valores VERDADEIRO e FALSO. A multiplicação das matrizes converte VERDADEIRO e FALSO em 1 e 0, respectivamente, e produz a matriz de pesquisa final.

Como você já deve saber, multiplicar por 0 sempre resulta em zero, portanto, na matriz de pesquisa, apenas os itens que atendem a todos os critérios são representados por 1. E como nosso valor de pesquisa é “1”, o Excel pega o primeiro “1” em pesquisa_matriz ( primeira correspondência) e retorna o valor de matriz_retorno na mesma posição.

Para melhor compreensão, observe a imagem abaixo onde desejamos extrair um valor de D2:D10 (matriz_retorno) com as seguintes condições:

  • Critério1 (data) = G1
  • Critério2 (vendedor) = G2
  • Critérios3 (item) = G3

Com datas em A2:A10 (critério_intervalo1), nomes de vendedor em B2:B10 (critério_intervalo2) e itens em C2:C10 (critério_intervalo3), a fórmula ficará da seguinte maneira:

=PROCX(1;(A2:A10=G1)*(B2:B10=G2)*(C2:C10=G3);D2:D10)

Pesquisa no Excel com vários critérios

A fórmula PROCX com vários critérios não se limita a condições “iguais a”. Você também pode usar outros operadores lógicos. Por exemplo, para filtrar pedidos feitos na data em G1 ou anterior, coloque “<= G1” no primeiro critério:

=PROCX(1;(A2:A10<=G1)*(B2:B10=G2)*(C2:C10=G3);D2:D10)

Importante: Embora a função PROCX tenha a capacidade de atuar com matrizes, ela funciona como uma fórmula comum e é completada pressionando a tecla Enter. (Ao contrários das fórmulas de matriz onde é necessário usar Ctrl + Shift + Enter).

Exemplo 8: PROCX no Excel aninhado (bidimensional)

Para encontrar um valor na interseção de uma determinada linha e coluna, execute a chamada pesquisa dupla ou pesquisa de matriz . Neste caso, basta aninhar uma função dentro de outra. Veja a estrutura abaixo:

PROCX(pesquisa_valor1;pesquisa_matriz1;PROCX(pesquisa_valor2;pesquisa_matriz2;matriz_retorno))

Basicamente, a fórmula é baseada na capacidade da PROCX de retornar uma linha ou coluna inteira. A função interna procura seu valor de pesquisa e retorna uma coluna ou linha de dados relacionados. Essa matriz vai para a função externa como matriz_retorno.

Para este exemplo, vamos encontrar as vendas feitas por um determinado vendedor em um determinado trimestre. Para isso, inserimos os valores de pesquisa em H1 (nome do vendedor) e H2 (trimestre), e fazemos um PROCX bidirecional com a seguinte fórmula:

=PROCX(H1;A2:A7;PROCX(H2;B1:E1;B2:E7))

PROCX no Excel aninhado

Exemplo 9: Quando o valor de pesquisa não é encontrado (tratamento de erros)

O tratamento de erros também é uma novidade que foi adicionado à função PROCX.

O quarto argumento na função PROCX é [se_não_encontrada], onde você pode especificar o que deseja caso a pesquisa não seja encontrada.

Suponha que você tenha o conjunto de dados conforme mostrado abaixo, onde deseja obter o valor de comissão de um determinado vendedor. E caso o nome não seja encontrado, você deseja retornar a mensagem “Não encontrado” em vez do tradicional erro #N/D.

=PROCX(F1;A2:A6;C2:C6;"Não encontrado")

tratar erro de busca no Excel

Observação: O argumento se_não_encontrada trata apenas erros #N/D não todos os erros.


Dicas Extras: Quando PROCX não estiver funcionando

Se sua fórmula não funcionar corretamente ou resultar em erro, provavelmente é pelos seguintes motivos:

PROCX não está disponível no seu Excel
Conforme mencionado anteriormente, a função PROCX não é compatível com versões anteriores do Excel. Ela está disponível apenas com assinaturas do Office 365 e não aparecerá nas versões anteriores do Excel.

PROCX retorna resultado errado
Se a sua fórmula PROCX obviamente correta retornar um valor errado, as chances são de que a pesquisa ou intervalo de retorno “mudou” quando a fórmula foi copiada para baixo ou transversalmente. Para evitar que isso aconteça, certifique-se de sempre bloquear os dois intervalos com referências de células absolutas (como, por exemplo, $A$2:$A$10).

PROCX retorna o erro #N/D
Um erro #N/D significa apenas que o valor de pesquisa não foi encontrado. Para corrigir isso, tente pesquisar uma correspondência aproximada ou trata o erro informando que nenhuma correspondência foi encontrada .

PROCX retorna o erro #VALOR!
Um erro #VALOR! ocorrerá caso as matrizes de pesquisa e retorno tiverem dimensões incompatíveis. Por exemplo, não é possível pesquisar em uma matriz horizontal e retornar valores de uma matriz vertical.

PROCX retorna o erro #REF!
Um erro #REF! é gerado ao pesquisar entre duas pastas de trabalho diferentes, uma das quais está fechada. Para corrigir o erro, basta abrir os dois arquivos.

Confira também as seguintes dicas de Excel:

E então, o que achou do guia sobre a função PROCX no Excel? Caso tenha ficado com alguma dúvida, basta deixar seu comentário abaixo!