PROCX Duplo (Aninhado) – Colunas Dinâmicas – Excel
Este tutorial vai demonstrar como executar um PROCX duplo (aninhado) no Excel. Se você não tiver acesso ao PROCX, poderá executar um PROCV aninhado.
Em cenários em que um critério de uma tarefa de pesquisa depende de outra pesquisa, podemos usar o PROCX duplo (aninhado) para executar as pesquisas.
Há pelo menos três argumentos no PROCX em que podemos inserir outro PROCX: o valor de pesquisa (10 argumento), a matriz de pesquisa (20 argumento) e a matriz de retorno (30 argumento).
Vamos explorar cada um dos casos.
PROCX no Valor de Pesquisa
Podemos aninhar um PROCX no primeiro argumento (pesquisa_valor) de outro PROCX.
=PROCX(PROCX(E3;C3:C5;B3:B5);B8:B10;C8:C10)
Isso é feito quando o valor de pesquisa (por exemplo, campo pesquisa_valor = ID do produto) é dependente de outro valor (por exemplo, nome do produto).
Vamos examinar a fórmula:
Primeiro, precisamos extrair o valor de pesquisa necessário para o PROCX principal:
=PROCX(E3;C3:C5;B3:B5)
O resultado do primeiro PROCX é então alimentado ao PROCX principal para realizar uma pesquisa na segunda tabela:
=PROCX(F3;B8:B10;C8:C10)
A combinação desses dois processos de pesquisa resulta em nossa fórmula original:
=PROCX(PROCX(E3;C3:C5;B3:B5);B8:B10;C8:C10)
PROCX em uma Matriz de Pesquisa
Como alternativa, podemos usar um PROCX aninhado para retornar a matriz de pesquisa (segundo argumento pesquisa_matriz).
=PROCX(G3;PROCX(F3;B2:C2;B3:C5);D3:D5)
Uma propriedade importante da função PROCX é que ela pode retornar uma matriz 1D (vertical ou horizontal) se a matriz de retorno fornecida estiver em 2D (ou seja, tabela). Nesse caso, se a matriz de pesquisa for uma lista vertical, a função PROCX retornará uma linha e, se a matriz de pesquisa for uma lista horizontal, ela retornará uma coluna.
Vamos detalhar e visualizar a fórmula:
Primeiro, precisamos fazer uma pesquisa nos cabeçalhos (por exemplo, cabeçalhos de coluna – ou linha) e retornar a coluna (ou linha) correspondente:
=PROCX(G3;B2:C2;B3:C5)
Como a matriz de retorno é 2D (por exemplo, B3:C5) e a matriz de pesquisa é uma lista horizontal (por exemplo, B2:C2), o PROCX retornará uma linha (por exemplo, C3:C5).
A matriz de saída desse PROCX é então alimentada na matriz de pesquisa do nosso PROCX principal:
A combinação de todos esses resultados resulta em nossa fórmula original:
=PROCX(G3;PROCX(F3;B2:C2;B3:C5);D3:D5)
PROCX na Matriz de Retorno
Da mesma forma, podemos usar um PROCX aninhado para retornar uma matriz de retorno dinâmica (terceiro argumento matriz_retorno).
=PROCX(G3;B3:B5;PROCX(H3;C2:E2;C3:E5))
Vamos detalhar e visualizar a fórmula:
Usamos os cabeçalhos das colunas como a matriz de pesquisa para o primeiro PROCX:
=PROCX(G3;C2:E2;C3:E5)
Assim como na seção anterior, o PROCX retornará uma linha quando encontrar uma correspondência nos cabeçalhos das colunas.
A matriz de saída resultante é usada como a matriz de retorno do nosso PROCX principal:
=PROCX(I3;B3:B5;H3:H5)
A combinação desses dois resultados com nossa fórmula original:
=PROCX(G3;B3:B5;PROCX(H3;C2:E2;C3:E5))