Fórmula do Excel: Exemplo de VLOOKUP reverso -

Índice

Fórmula genérica

=VLOOKUP(A1,CHOOSE((3,2,1),col1,col2,col3),3,0)

Resumo

Para reverter uma VLOOKUP - ou seja, encontrar o valor de pesquisa original usando um resultado de fórmula VLOOKUP - você pode usar uma fórmula complicada baseada na função CHOOSE, ou fórmulas mais simples baseadas em INDEX e MATCH ou XLOOKUP conforme explicado abaixo. No exemplo mostrado, a fórmula em H10 é:

=VLOOKUP(G10,CHOOSE((3,2,1),B5:B8,C5:C8,D5:D8),3,0)

Com esta configuração, VLOOKUP encontra a opção associada a um custo de 3000 e retorna "C".

Nota: este é um tópico mais avançado. Se você está apenas começando a VLOOKUP, comece aqui.

Introdução

Uma limitação importante de VLOOKUP é que ele só pode pesquisar valores à direita. Em outras palavras, a coluna com os valores de pesquisa deve estar à esquerda dos valores que você deseja recuperar com VLOOKUP. Como resultado, com a configuração padrão, não há como usar VLOOKUP para "olhar para a esquerda" e inverter a pesquisa original.

Do ponto de vista de VLOOKUP, podemos visualizar o problema assim:

A solução alternativa explicada a seguir usa a função CHOOSE para reorganizar a tabela dentro de VLOOKUP.

Explicação

Começando do início, a fórmula em H5 é uma fórmula VLOOKUP normal:

=VLOOKUP(G5,B5:D8,3,0) // returns 3000

Usando G5 como o valor de pesquisa ("C") e os dados em B5: D8 como a matriz da tabela, VLOOKUP realiza uma pesquisa nos valores na coluna B e retorna o valor correspondente da coluna 3 (coluna D), 3000. Observe zero (0) é fornecido como o último argumento para forçar uma correspondência exata.

A fórmula em G10 simplesmente extrai o resultado de H5:

=H5 // 3000

Para realizar uma pesquisa reversa, a fórmula em H10 é:

=VLOOKUP(G10,CHOOSE((3,2,1),B5:B8,C5:C8,D5:D8),3,0)

A parte complicada é a função CHOOSE, que é usada para reorganizar a matriz da tabela de modo que Cost seja a primeira coluna e Option seja a última:

CHOOSE((3,2,1),B5:B8,C5:C8,D5:D8) // reorder table 3, 2, 1

A função CHOOSE foi projetada para selecionar um valor com base em um índice numérico. Nesse caso, estamos fornecendo três valores de índice em uma constante de matriz:

(3,2,1) // array constant

Em outras palavras, solicitamos a coluna 3, depois a coluna 2 e, a seguir, a coluna 1. Isso é seguido pelos três intervalos que representam cada coluna da tabela na ordem em que aparecem na planilha.

Com esta configuração, CHOOSE retorna todas as três colunas em uma única matriz 2D como esta:

(1000,"Silver","A";2000,"Gold","B";3000,"Platinum","C";5000,"Diamond","D")

Se visualizarmos esse array como uma tabela na planilha, temos:

Observação: os títulos não fazem parte da matriz e são mostrados aqui apenas para fins de clareza.

Efetivamente, trocamos as colunas 1 e 3. A tabela reorganizada é retornada diretamente para VLOOKUP, que corresponde a 3000 e retorna o valor correspondente da coluna 3, "C".

Com INDEX e MATCH

A solução acima funciona bem, mas é difícil de recomendar, pois a maioria dos usuários não entenderá como a fórmula funciona. Uma solução melhor é INDEX e MATCH, usando uma fórmula como esta:

=INDEX(B5:B8,MATCH(G10,D5:D8,0))

Aqui, a função MATCH encontra o valor 3000 em D5: D8 e retorna sua posição, 3:

MATCH(G10,D5:D8,0) // returns 3

Nota: MATCH é configurado para uma correspondência exata definindo o último argumento como zero (0).

MATCH retorna um resultado diretamente para INDEX como o número da linha, então a fórmula se torna:

=INDEX(B5:B8,3) // returns "C"

e INDEX retorna o valor da terceira linha de B5: B8, "C".

Esta fórmula mostra como INDEX e MATCH podem ser mais flexíveis do que VLOOKUP.

Com XLOOKUP

XLOOKUP também oferece uma solução muito boa. A fórmula equivalente é:

=XLOOKUP(G10,D5:D8,B5:B8) // returns "C"

Com um valor de pesquisa de G10 (3000), matriz al ookup de D5: D8 (custos) e uma matriz de resultados de B5: B8 (opções), XLOOKUP localiza 3000 na matriz de pesquisa e retorna o item correspondente da matriz de resultados, "C". Como o XLOOKUP executa uma correspondência exata por padrão, não há necessidade de definir o modo de correspondência explicitamente.

Artigos interessantes...