Tengo una hoja de cálculo que tiene muchos rangos con nombre, cada uno de los cuales es una tabla. Quiero poder ejecutar una búsqueda que recupere un valor de cualquiera de las tablas. Quiero poder almacenar el nombre del rango nombrado en una celda.
Lo intenté:
=HLOOKUP(B14,B6,(B22+1),FALSE)
B14 era el valor que quería buscar. B6 almacenó el nombre del rango con nombre y, al utilizar la validación de datos, solo puede contener el nombre de un rango con nombre. B22 almacenó el número de filas en la tabla y, por supuesto, el +1 simplemente detiene la búsqueda comenzando en la fila del encabezado.
El problema es que la sintaxis de búsqueda de Excel cree que estoy escribiendo el rango de celdas para la búsqueda; ese B6 es el rango.
Encontré una manera de agregar una lista de todos los rangos con nombre definidos en la hoja de cálculo junto con el rango de celdas usando Fórmulas/Nombres definidos/Usar en fórmula. Pensé que podría usar esto como una búsqueda anidada en la línea de
=vlookup(B6,Sheet1!$A$1,$B$77,2,FALSE)
pero aunque esto por sí solo devuelve el valor correcto, lo hace como si fuera texto. Noto que hay un = al comienzo de la cadena y me pregunto si puedo separar esto ( MID
¿función?), entonces podría reconocerse como un rango de celdas para buscar. Sin embargo, el problema con la MID
función es que hay que saber el número de caracteres en la cadena y algunos tendrán más caracteres que otros: letras simples o dobles para columnas y unidades, decenas o centenas para filas.
Estoy estancado y necesito ayuda: cualquier idea sería muy apreciada.
Respuesta1
Es difícil saber exactamente lo que estás buscando sin una captura de pantalla, pero esto podría funcionar para ti. Es una VLOOKUP
fórmula dinámica que toma nombres de tablas y columnas como entradas.
Aquí está la fórmula:
=VLOOKUP(F14,INDIRECT(F15),MATCH(F16,INDIRECT(F15&"[#Headers]"),0),0)
Se utiliza INDIRECT
para hacer referencia a los rangos con nombre y MATCH
para determinar qué columna debe ingresar en su archivo VLOOKUP
.