Função PROCX

Aplica-se a
Excel para Microsoft 365 Excel para Microsoft 365 para Mac Excel 2024 Excel 2024 para Mac Excel 2021 Excel 2021 para Mac Excel 2019 Excel 2016 Excel para iPad Excel para iPhone Excel para tablets Android Excel para telefones Android

Use a função PROCX quando precisar localizar coisas em linhas de uma tabela ou de um intervalo. Por exemplo, procure o preço de uma peça automotiva pelo número da peça ou encontre um nome de funcionário com base na ID do funcionário. Com o PROCX, você pode procurar em uma coluna por um termo de pesquisa e retornar um resultado da mesma linha em outra coluna, independentemente de qual lado a coluna de retorno esteja.

Observação

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 no Excel 2019 com a função PROCX, caso tenha sido criado por outra pessoa com uma versão mais recente do Excel.

Sintaxe

A função PROCX pesquisa um intervalo ou uma matriz e retorna um item correspondente à primeira correspondência encontrada. Se não houver uma correspondência, então o PROCX poderá retornar a correspondência mais adequada(aproximada). 

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

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

*Se for omitido, PROCX devolve células em branco que encontra no lookup_array.
matriz_procurada
Obrigatório
A matriz ou intervalo a classificar
matriz_retorno
Obrigatório
A matriz ou intervalo a retornar
[se_não_encontrada]
Opcional
Quando uma coincidência válida não é encontrada, retorna o texto [if_not_found] que você fornece.
Se uma correspondência válida não for encontrada e [if_not_found] estiver ausente, #N/A será retornado.
[modo_correspondência]
Opcional
Especificar o tipo de correspondência:
0 – Correspondência exata. Se nenhum for encontrado, retornar #N/A. Esse é o padrão.
-1 – Correspondência exata. Se nenhum for encontrado, retorna o próximo item menor.
1 – Correspondência exata. Se nenhum for encontrado, retorna o próximo item maior.
2 – Uma correspondência de curingas, em que *,? e ~ têm um significado especial.
[modo_pesquisa]
Opcional
Especificar o modo de pesquisa a ser usado:
1 – Executar uma pesquisa começando do primeiro item. Esse é o padrão.
-1 – Executar uma pesquisa reversa começando do último item.
2 – Executar uma pesquisa binária que dependa da classificação da matriz_procurada em ordem crescente. Caso contrário, resultados inválidos serão retornados.
-2 – Executar uma pesquisa binária que dependa da classificação da matriz_procurada em ordem decrescente. Caso contrário, resultados inválidos serão retornados.

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. Ele inclui os argumentos lookup_value (célula F2), lookup_array (intervalo B2:B11) e return_array (intervalo D2:D11). Ele não inclui o argumento match_mode, pois PROCX produz uma correspondência exata por padrã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)

Observação

PROCX usa uma matriz de pesquisa e uma matriz de retorno, enquanto PROCV usa uma única matriz de tabela seguida por um número de índice de coluna. A fórmula de PROCV equivalente nesse caso seria: =PROCV(F2,B2:D11,3,FALSE)

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

O exemplo 2 procura as informações dos colaboradores com base num número de ID de funcionário. Ao contrário do PROCV, o PROCX pode retornar uma matriz com vários itens, o que permite que uma única fórmula retorne 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 é definido como 1, o que significa que a função pesquisará do primeiro item para o último.

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)

Observação

A coluna lookup_array do XARRAY está à direita da coluna return_array, enquanto PROCV só pode procurar da esquerda para a direita.

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

O exemplo 5 utiliza uma função PROCX aninhada para executar uma correspondência vertical e horizontal. Primeiro, ele procura Lucro Bruto na coluna B e, em seguida, procura Qtr1 na linha superior da tabela (intervalo C5:F5) e, por fim, retorna o valor na interseção dos dois. Isso é semelhante ao uso das funções ÍNDICE e CORRESP em conjunto.

Dica

Você também pode usar 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))

Observação

A fórmula nas células D3:F3 é: =PROCX(D2,$B6:$B17,PROCX($C3,$C5:$G5,$C6:$G17)).

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

O exemplo 6 utiliza a função SOMA e duas funções XLOOKUP aninhadas, para somar todos os valores entre dois intervalos. Nesse caso, iremos somar os valores para uvas, bananas e incluir pêras, que estão entre os dois.

Usando PROCX com SOMA para totalizar um intervalo de valores que estão 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 isso funciona? A função PROCX devolve um intervalo, pelo que, quando calcula, a fórmula acaba por ter o seguinte aspeto: =SUM($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órmulasAuditoria de> Fórmulas >Avaliar Fórmula e, em seguida, selecione Avaliar para percorrer o cálculo. 

Observação

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

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