Função XLOOKUP (Procx) do Excel 365

A nova Função PROCX (Xlookup) do Excel 365 vem substituir as muito populares e antigas Funções PROCV (Vlookup), PROCH (Hlookup) e PROC (Lookup).
Nova função procx (xlookup)

Resumo

A Microsoft lançou uma nova função de pesquisa no Excel. A nova Função PROCX (Xlookup) do Excel 365 vem substituir as muito populares e antigas Funções PROCV (Vlookup), PROCH (Hlookup) e PROC (Lookup). Em alguns casos serve também de alternativa à utilização da combinação de Funções ÍNDICE/CORRESP (Index/Match).

O PROCX (Xlookup) é uma função moderna e flexível que permite a pesquisa de valor exacto ou aproximado, a utilização de wildcards (* ?) para buscas por valores parciais e buscas em intervalos verticais e horizontais.

Esta nova função introduz várias melhorias face ao PROCV (Vlookup). Mas apenas está disponível a partir do EXCEL 365 e para muitos utilizadores pode ser um problema por trabalharem em versões anteriores do Excel.

Não a uses se não tiveres a certeza que todas as pessoas que vão trabalhar no teu ficheiro têm acesso a uma versão de Excel compatível. As alternativas para evitar problemas de retrocompatibilidade continuam a ser o PROCV (Vlookup) e o ÍNDICE/CORRESP (Index/Match).

Síntaxe

=PROCX (Valor_pesquisa; Matriz_pesquisa; Matriz_devolver; [Se_não_for_encontrado]; [Modo_corresp]; [Modo_pesquisa])

Argumentos

Valor_pesquisa // é o valor a procurar
Matriz_pesquisa // é a matriz ou intervalo a procurar
Matriz_devolver // é a matriz ou intervalo a devolver
Se_não_for_encontrado // devolvido se não forem encontradas correspondências [OPCIONAL]
Modo_corresp // especifica como deve ser feita a correspondência do valor_pesquisa com a matriz_pesquisa [OPCIONAL]
Modo_pesquisa // especifica o modo de pesquisa a usar. A predefinição é pesquisa do primeiro ao último elemento [OPCIONAL]

Modo de Correspondência [Modo_corresp]

Valor Resultado
0 [é o valor por defeito] Pesquisa Exata. Se não encontrar o valor devolve erro (#N/D)
-1 Pesquisa Exata ou o valor menor mais próximo.
1 Pesquisa Exata ou o valor maior mais próximo.
2 Pesquisa com wildcards (*, ?, ~)

Modo de Pesquisa [Modo_pesquisa]

Valor Resultado
1 [é o valor por defeito] Pesquisa a partir do primeiro valor
-1 Procura a partir do último valor (ordem inversa)
2 Procura binária de valores ordenados por ordem crescente
-2 Procura binária de valores ordenados por ordem crescente
Descobre mais sobre a procura binária e os algoritmos de pesquisa do Excel.

Erro [Se_não_for_encontrado]

Quando o PROCX (Xlookup) não encontra o valor devolve o erro #N/D (ou #N/A se trabalhares em inglês). Mas esta nova função suporta um argumento opcional adicional para lidar com o erro, [Se_não_for_encontrado], que pode ser usado para substituir a mensagem standard de erro #N/A. O valor para este argumento deve ser inserido entre (""). Por exemplo: "Não encontrado", "Não existe", etc.

PROCX com mensagens de erro
=PROCX(J5;B5:B17;D5:D17;"Não encontrado")
Atenção à utilização deste argumento, [Se_não_for_encontrado], para devolver mensagem de erro vazia (""). Esta solução irá omitir qualquer mensagem de erro, incluíndo a mensagem standard #N/D podendo induzir em erro na leitura dos dados. Se o objectivo for que o erro devolva a mensagem standard, então este argumento deve ser omitido da função.

PROCX com Correspondência Exacta [Exemplo 1]

Ao contrário do PROCV (Vlookup), o valor por defeito do PROCX (Xlookup) é a pesquisa exacta. Explora a versão mais básica da função PROCX (Xlookup).

PROCX com correspondência exacta
=PROCX(J5;B5:B17;D5:D17)

PROCX com Correspondência Aproximada [Exemplo 2]

Esta forma de utilização da função PROCX trabalha com o critério de pesquisa de valor mais próximo (menor ou maior) em alternativa ao valor exacto.

PROCX com correspondência aproximada
=PROCX(J5;B5:B17;D5:D17;;-1)

PROCX com Pesquisa por Dois Valores [Exemplo 3]

O PROCX (Xlookup) pode ser encadeado dentro de outro PROCX conseguindo assim fazer duas pesquisas dentro da mesma fórmula.

PROCX com pesquisa por dois valores
=PROCX(J6;C4:F4;PROCX(J5;B5:B17;C5:F17))

PROCX com Valores Múltiplos Devolvidos [Exemplo 4]

A mesma fórmula de PROCX pode devolver um conjunto de valores e não apenas um valor único.

PROCX com valores múltiplos devolvidos
=PROCX(J5;B5:B17;D5:F17;;-1)

PROCX com Wildcards [Exemplo 5]

O PROCX permite a utilização de wildcards ("?", "*", "~") para definir o Valor_pesquisa.

PROCX com pesquisa com wildcards
=PROCX("*"&J5&"*";C5:C17;D5:F17;"Nenhum valor";2)

PROCX com Critérios Complexos [Exemplo 6]

Podemos elaborar valores de pesquisa com vários critérios complexos para construir o Valor_pesquisa da fórmula.

=PROCX(1;(D5:D17="BRASIL")*(E5:E17>40);C5:C17)

Vantagens e melhorias do PROCX (Xlookup)

Esta função é uma melhoria enorme face ao antigo e muito usado PROCV (Vlookup).
PROCXPROCV
Procura valores à esquerda ou à direita da Matriz_pesquisa
Intervalos de dados horizontais e verticais
Pesquisa valor exacto por defeito
Pesquisa inversa do último para o primeiro
Devolve múltiplos resultados [Exemplo 4]
Devolve colunas e linhas inteiras (e não apenas um valor)
Trabalha com arrays para critérios de pesquisa complexos
Retrocompatível

Descargas

Descarrega aqui o ficheiro com os exemplos para usar a nova função XLOOKUP