Eu tenho uma planilha que contém vários intervalos nomeados, cada um deles uma tabela. Quero poder executar uma pesquisa que recupere um valor de qualquer uma das tabelas. Quero poder armazenar o nome do intervalo nomeado em uma célula.
Tentei:
=HLOOKUP(B14,B6,(B22+1),FALSE)
B14 era o valor que eu queria pesquisar. B6 armazenou o nome do intervalo nomeado e, usando a validação de dados, só pode conter o nome de um intervalo nomeado. B22 armazenou o número de linhas na tabela e, claro, o +1 apenas interrompe a pesquisa começando na linha do cabeçalho.
O problema é que a sintaxe de pesquisa do Excel pensa que estou digitando o intervalo de células da pesquisa; que B6 é o intervalo.
Encontrei uma maneira de adicionar uma lista de todos os intervalos nomeados definidos na planilha junto com o intervalo de células usando Fórmulas/Nomes Definidos/Usar na Fórmula. Achei que poderia usar isso como uma pesquisa aninhada nos moldes de
=vlookup(B6,Sheet1!$A$1,$B$77,2,FALSE)
mas embora isso por si só retorne o valor correto, ele o faz como se fosse texto. Percebo que há um = no início da string e me pergunto se posso separar isso ( MID
função?), então ele poderá ser reconhecido como um intervalo de células para pesquisar. O problema com a MID
função é que você precisa saber o número de caracteres na string e alguns terão mais caracteres do que outros - letras simples vs duplas para colunas e unidades vs dezenas vs centenas para linhas
Então estou preso e precisando de ajuda: qualquer ideia seria muito apreciada.
Responder1
É difícil dizer exatamente o que você está procurando sem uma captura de tela, mas isso pode funcionar para você. É uma VLOOKUP
fórmula dinâmica que usa nomes de tabelas e nomes de colunas como entradas.
Aqui está a fórmula:
=VLOOKUP(F14,INDIRECT(F15),MATCH(F16,INDIRECT(F15&"[#Headers]"),0),0)
Ele é usado INDIRECT
para se referir aos intervalos nomeados e MATCH
para descobrir qual coluna você precisa inserir no seu arquivo VLOOKUP
.