Fórmulas e funções

PESQUISADEX

Utilize a função PROCX para localizar itens numa tabela ou intervalo por linha. Por exemplo, procure o preço de uma peça automóvel pelo número da peça ou localize um nome de funcionário com base no respetivo ID de colaborador. Com a função PROCX, pode procurar um termo de pesquisa numa coluna e devolver um resultado da mesma linha noutra coluna, independentemente do lado em que a coluna de retorno se encontra.

Nota: A função PROCX não está disponível no Excel 2016 e no Excel 2019. No entanto, poderá deparar-se com uma situação de utilização de um livro no Excel 2016 ou Excel 2019 com a função PROCX criada por outra pessoa através de uma versão mais recente do Excel.

O seu browser não suporta vídeo. Instale o Microsoft Silverlight, o Adobe Flash Player ou o Internet Explorer 9.

Sintaxe

A função PROCX procura um intervalo ou uma matriz e, em seguida, devolve o item correspondente à primeira correspondência que encontrar. Se não existir nenhuma correspondência, a função PROCX pode devolver a correspondência (aproximada) mais próxima. 

=PESQUISADEX(valor_pesquisa, matriz_pesquisa, matriz_devolver, [se_não_for_encontrado], [modo_corresp], [modo_pesquisa]) 

Argumento

Descrição

valor_proc

Necessário*

O valor a procurar *Se for omitido, PROCX devolve células em branco que encontra no lookup_array.   

matriz_proc

Obrigatório

A matriz ou intervalo onde procurar

return_array

Obrigatório

A matriz ou intervalo a devolver

[if_not_found]

Opcional

Quando não for encontrada uma correspondência válida, devolva o texto [if_not_found] que fornecer.

Se não for encontrada uma correspondência válida e [if_not_found] estiver em falta, é devolvido #N/D .

[modo_de_correspondência]

Opcional

Especifique o tipo de correspondência:

0 - Correspondência exata. Se não for encontrado nenhum, devolva #N/D. Esta é a predefinição.

-1 - Correspondência exata. Se não for encontrado nenhum, devolva o item mais pequeno seguinte.

1 - Correspondência exata. Se não for encontrado nenhum, devolva o item maior seguinte.

2 - Uma correspondência universal em que *, ? e ~ têm um significado especial.

[modo_de_procura]

Opcional

Especifique o modo de pesquisa a utilizar:

1 - Efetue uma pesquisa a partir do primeiro item. Esta é a predefinição.

-1 - Efetue uma pesquisa inversa a partir do último item.

2 - Execute uma pesquisa binária que dependa de lookup_array a ser ordenadas por ordem ascendente . Se não estiver ordenada, serão devolvidos resultados inválidos.

-2 - Efetuar uma pesquisa binária que depende de a matriz_proc estar ordenada por ordem decrescente. Se não estiver ordenada, serão devolvidos resultados inválidos.

Exemplos

O exemplo 1    utiliza a função PROCX para procurar um nome de país num intervalo e, em seguida, devolver o respetivo código de país/região telefónico. Inclui os argumentos lookup_value (célula F2), lookup_array (intervalo B2:B11) e return_array (intervalo D2:D11). Não inclui o argumento match_mode , uma vez que a função PROCX produz uma correspondência exata por predefinição.

Exemplo da função PROCX utilizada para devolver um Nome de Funcionário e Departamento com base no ID do Funcionário. A fórmula é =PROCX(B2;B5:B14;C5:C14)

Nota: A função PROCX utiliza uma matriz de pesquisa e uma matriz de retorno, enquanto a função PROCV utiliza uma única matriz de tabela seguida de um número de índice de coluna. Neste caso, a fórmula PROCV equivalente seria: =PROCV(F2;B2:D11;3;FALSO)

———————————————————————————

O exemplo 2    procura as informações dos colaboradores com base num número de ID de funcionário. Ao contrário da função PROCV, a função PROCX pode devolver uma matriz com vários itens, para que uma única fórmula possa devolver o nome do funcionário e o departamento das células C5:D14.

Exemplo da função PROCX utilizada para devolver um Nome de Funcionário e Departamento com base no IDt do Funcionário. A fórmula é: =PROCX(B2;B5:B14;C5:D14;0;1)

———————————————————————————

O exemplo 3    adiciona um argumento if_not_found ao exemplo anterior.

Exemplo da função PROCX utilizada para devolver um Nome de Funcionário e Departamento com base no ID do Funcionário com o argumento if_not_found. A fórmula é =PROCX(B2;B5:B14;C5:D14;0;1;"Funcionário não encontrado")

———————————————————————————

O exemplo 4    procura na coluna C os rendimentos pessoais introduzidos na célula E2 e encontra uma taxa de imposto correspondente na coluna B. Define o argumento if_not_found para devolver 0 (zero) se não for encontrado nada. O argumento match_mode está definido como 1, o que significa que a função procurará uma correspondência exata e, se não conseguir encontrar uma, devolve o item maior seguinte. Por fim, o argumento search_mode está definido como 1, o que significa que a função irá procurar do primeiro ao último item.

Imagem da função PROCX utilizada para devolver uma taxa de imposto com base no rendimento máximo. Esta é uma correspondência aproximada. A fórmula é: =PROCX(E2;C2:C7;B2:B7;1;1)

Nota: A coluna lookup_array de XARRAY está à direita da coluna return_array , enquanto a função PROCV só pode procurar da esquerda para a direita.

———————————————————————————

Exemplo 5    utiliza uma função PROCX aninhada para efetuar uma correspondência vertical e horizontal. Primeiro, procura Lucro Bruto na coluna B e, em seguida, procura qtr1 na linha superior da tabela (intervalo C5:F5) e, por fim, devolve o valor na interseção dos dois. Isto é semelhante à utilização das funções ÍNDICE e CORRESP em conjunto.

Sugestão: Também pode utilizar a função PROCX para substituir a função PROCH .

Imagem da função PROCX utilizada para devolver dados horizontais de uma tabela ao aninhar 2 XLOOKUPs. A fórmula é: =PROCX(D2;$B 6:$B 17;PROCX($C 3;$C 5:$G 5;$C 6:$G 17))

Nota: A fórmula nas células D3:F3 é: =PROCX(D2;$B 6:$B 17;PROCX($C 3;$C 5:$G 5,$C 6:$G 17)).

———————————————————————————

Exemplo 6    utiliza a função SOMA e duas funções XLOOKUP aninhadas, para somar todos os valores entre dois intervalos. Neste caso, queremos somar os valores das uvas, bananas e incluir peras, que estão entre as duas.

Utilizar a função PROCX com SOMA para totalizar um intervalo de valores que se enquadram entre duas seleções

A fórmula na célula E3 é: =SOMA(PROCX(B3;B6:B10;E6:E10):PROCX(C3;B6:B10;E6:E10))

Como funciona? A função PROCX devolve um intervalo, pelo que, quando calcula, a fórmula acaba por ter o seguinte aspeto: =SOMA($E$7:$E$9). Pode ver como isto funciona sozinho ao selecionar uma célula com uma fórmula XLOOKUP semelhante a esta, em seguida, selecione Fórmulas > Auditoria de Fórmulas > Avaliar Fórmula e, em seguida, selecione Avaliar para percorrer o cálculo. 

Nota: Graças ao MVP do Microsoft Excel, Bill Jelen, por sugerir este exemplo.

———————————————————————————

Consulte também

Pode sempre colocar uma pergunta a um especialista da Comunidade Tecnológica do Excel ou obter suporte nas Comunidades.

Função CORRESPX

Funções do Excel (por ordem alfabética)

Funções do Excel (por categoria)

Precisa de mais ajuda?

Quer mais opções?

Explore os benefícios da subscrição, navegue em cursos de formação, saiba como proteger o seu dispositivo e muito mais.

As comunidades ajudam-no a colocar e a responder perguntas, a dar feedback e a ouvir especialistas com conhecimentos abrangentes.