Usando o VLOOKUP quando os dados estão em formato tabular

2

Eu quero pesquisar o valor usando uma função do Excel. Parece VLOOKUP não é possível como o banco de dados tem várias colunas. Tentei pesquisar on-line, mas em vão não consigo colocar meu problema na pesquisa do Google.

Alguém pode sugerir uma fórmula do Excel que possa ser usada em tal cenário?

    
por Michel 08.11.2014 / 14:35

2 respostas

3

Sem problemas; VLOOKUP() pode lidar com isso.

Em sua captura de tela de exemplo, suponho que "Dados de Base" esteja na célula A1 . Em caso afirmativo, a seguinte fórmula pode ser colocada na célula D13 , que é a primeira célula na qual você tem "??":

=VLOOKUP(A14,$A$3:$E$8,VALUE(SUBSTITUTE(B14,"Location ",""))+1,FALSE)

Veja como esses argumentos estão abaixo:

  1. A14 é a célula que você está tentando corresponder; neste caso, é "102".
  2. $A$3:$E$8 é o bloco que você está tentando combinar; você precisa dos sinais de dólar para torná-lo estático enquanto copia a fórmula para outras células.
  3. VALUE(SUBSTITUTE(B14,"Location ",""))+1 transforma a célula B14 de "Local 2" no dígito 2 e, em seguida, adiciona 1 a ela (é necessário adicionar 1 porque a coluna 1 será a coluna Código da conta, a coluna 2 é a localização 1, a coluna 3 é Localização 2, etc.).
  4. FALSE força correspondências exatas.
por 08.11.2014 / 15:41
4

A solução de Joe DeRose faz uso inteligente da função SUBSTITUTE para aproveitar os rótulos em seu exemplo. Se você usou esses rótulos como um exemplo genérico e eles realmente são outra coisa, o SUBSTITUTE não ajudará nesse caso. Uma abordagem mais generalizada que funcionará em qualquer rótulo seria usar a função MATCH (o restante da fórmula permaneceria o mesmo). É fácil obter identificações cruzadas nos exemplos. Meu cálculo é que a tabela está em A3: G8 e o primeiro exemplo de pesquisa está em A13: C13, então vou usar isso na fórmula abaixo:

    =VLOOKUP(A13,$A$3:$G$8,MATCH(B13,$A$2:$G$2,0),FALSE)

MATCH retorna a posição do valor em B13 na linha do título, que é o número da coluna a ser usado para a seleção VLOOKUP. O zero serve a mesma função que o FALSE em VLOOKUP (faça uma correspondência exata). Como na resposta de Joe DeRose, as referências da célula são bloqueadas onde necessário (o $ s), então você pode inserir a fórmula em C13 e copiá-la para baixo conforme necessário.

Se a sua lista de pesquisa estiver expandindo na página, você poderá obter mais detalhes e pré-preencher mais células na coluna C do que precisa e ocultá-las até que sejam usadas. Adicione um teste usando a função ISBLANK:

    =IF(ISBLANK(A13,"",VLOOKUP(A13,$A$3:$G$8,MATCH(B13,$A$2:$G$2,0),FALSE))

Isso verifica se A13 está vazio e retorna um nulo (célula vazia) se estiver. Caso contrário, usa a fórmula acima. Você pode copiar essa coluna C para um intervalo arbitrariamente grande de células. As células permanecerão em branco até você inserir valores de pesquisa.

    
por 08.11.2014 / 17:37