Excel VLOOKUP pela segunda coluna usando o nome da tabela como intervalo

9

Usando a tabela de exemplo abaixo, posso usar a fórmula =VLOOKUP("ABC123456",Table1,3,FALSE) para pesquisar o valor Demand , mas quero poder executar a pesquisa usando o campo Cust Part sem precisar fazer o Cust Part field a primeira coluna na tabela. Fazer Cust Part da primeira coluna não é uma solução aceitável, porque também preciso realizar pesquisas usando o campo Part e não quero usar intervalos codificados (por exemplo, $B$2:$C$4 ) principalmente como uma questão de preferência, mas também porque usar nomes de tabelas e campos facilita a leitura da fórmula. Existe alguma maneira de fazer isso?

    
por Drew Chapin 13.09.2013 / 20:55

3 respostas

10

É possível usar OFFSET para retornar o intervalo da Tabela1, mas 1 coluna, por exemplo,

=VLOOKUP("AZ12345",OFFSET(Table1,0,1),2,FALSE)

Isso procurará o AZ12345 na coluna CustPart e retornará o valor da próxima coluna

    
por 13.09.2013 / 21:28
6

Você pode combinar INDEX e MATCH para obter o mesmo resultado de VLOOKUP sem a comparação ser restringida à primeira coluna. Embora seja um pouco mais complexo.

=INDEX(Table1[Demand],MATCH("AZ12345",Table1[Cust Part],0))

Basicamente, você está usando MATCH para encontrar o número da linha e INDEX para obter o valor.

Observação: Diferentemente de VLOOKUP , se o resultado for uma célula em branco, INDEX retornará 0 em vez de uma string em branco.

    
por 13.09.2013 / 20:55
2

Que tal algo como:

=VLOOKUP("ABC123456";Table1[[Cust Part]:[Demand]];COLUMNS(Table1[[Cust Part]:[Demand]]);FALSE) 

Eu prefiro isso para que você possa ver o que está fazendo, mesmo em tabelas mais complexas. Além disso, se a estrutura da tabela mudar, a fórmula ainda funcionará, contanto que a coluna Cust Part esteja à frente da Demand coluna.

    
por 12.05.2017 / 11:20