Função PROCX

Aplica-se A
Excel para Microsoft 365 Excel para Microsoft 365 para Mac Excel 2024 Excel 2024 for Mac Excel 2021 Excel 2021 para Mac Excel 2019 Excel 2016 Excel para iPad Excel para iPhone Excel para tablets Android Excel para telemóveis Android

Utilize a função PROCX para encontrar conteúdos numa tabela ou intervalo a partir da linha. Por exemplo, procure o preço de uma peça de automóvel através do número da peça ou encontre o nome de um funcionário com base no respetivo ID de funcionário. Com PESQUISADEX, 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

O PROCX não está disponível no Excel 2016 nem no Excel 2019. No entanto, poderá deparar-se com a situação de utilizar um livro no Excel 2016 ou Excel 2019 com a função PESQUISADEX, caso tenha sido criado por outra pessoa com uma versão mais recente do Excel.

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, PROCX pode devolver a correspondência mais próxima (aproximada). 

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

Argumento Descrição
valor_proc
Obrigatório*
O valor a procurar

*Se for omitido, PROCX devolve as 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
Se não for encontrada uma correspondência válida, devolver o texto [if_not_found] fornecido.
Se não for encontrada uma correspondência válida e [if_not_found] estiver em falta, é devolvido #N/A .
[modo_de_correspondência]
Opcional
Especifique o tipo de correspondência:
0 - Correspondência exata. Se não for encontrado nenhum, devolve #N/A. Esta é a predefinição.
-1 - Correspondência exata. Se não for encontrado nenhum, devolva o próximo item mais pequeno.
1 - Correspondência exata. Se não for encontrado nenhum, devolva o próximo item maior.
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 - Realize uma pesquisa a partir do primeiro item. Esta é a predefinição.
-1 - Realizar uma pesquisa inversa a partir do último item.
2 - Realizar uma pesquisa binária que depende de lookup_array serem ordenados 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 PROCX para procurar o nome de um país num intervalo e, em seguida, devolver o indicativo do país/região do telefone. 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 PROCX produz uma correspondência exata por predefinição.

Exemplo da função PESQUISADEX utilizada para devolver um Nome de Funcionário e Departamento com base no ID de 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 que 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 informações de funcionários com base num número de ID de funcionário. Ao contrário de PROCV, PROCX pode devolver uma matriz com vários itens, pelo que uma única fórmula pode devolver o nome do funcionário e o departamento a partir das células C5:D14.

Exemplo da função PESQUISADEX utilizada para devolver um Nome e Departamento de Funcionário com base no ID 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 PESQUISADEX utilizada para devolver um Nome de Funcionário e Departamento com base no ID de Funcionário com o argumento if_not_found. A fórmula é =PESQUISADEX(B2;B5:B14;C5:D14;0;1;Colaborador não encontrado)

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

O exemplo 4 procura na coluna C o rendimento pessoal introduzido na célula E2 e encontra uma taxa de imposto correspondente na coluna B. Ele define o argumento if_not_found para retornar 0 (zero) se nada for encontrado. O argumento match_mode está definido como 1, o que significa que a função irá 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 baseada no rendimento máximo. Esta é uma correspondência aproximada. A fórmula é: =PESQUISADEX(E2;C2:C7;B2:B7;1;1)

Nota

A coluna lookup_array do XARRAY encontra-se à direita da coluna return_array , enquanto a função PROCV apenas pode procurar da esquerda para a direita.

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

O exemplo 5 utiliza uma função PROCX aninhada para efetuar uma correspondência vertical e horizontal. Procura primeiro por Lucro Bruto na coluna B, em seguida, procura por Trim1 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 PESQUISADEX utilizada para devolver dados horizontais de uma tabela ao aninhar 2 PESQUISADEX. 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;PESQUISADEX($C 3;$C 5:$G 5;$C 6:$G 17)).

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

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

Utilizar PROCX com SOMA para totalizar um intervalo de valores que se situam entre duas seleções

A fórmula na célula E3 é: =SUM(XLOOKUP(B3,B6:B10,E6:E10):XLOOKUP(C3,B6:B10,E6:E10))

Como funciona? PROCX devolve um intervalo, por isso, quando calcula, a fórmula fica com este aspeto: =SUM($E$7:$E$9). Pode ver como isto funciona sozinho ao selecionar uma célula com uma fórmula PROCX 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

Obrigado ao MVP do Microsoft Excel, Bill Jelen, por sugerir este exemplo.

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