Função PROCX
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.
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.
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.
———————————————————————————
O exemplo 3 adiciona um argumento if_not_found ao exemplo anterior.
———————————————————————————
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.
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 .
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.
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.