É 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
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?
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.
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.