Al leer la documentación para la =QUERY
función 1 , 2 , 3 , parte de ella parece implicar que debería poder usar encabezados de columna directamente en mi consulta. Por ejemplo, la =QUERY
función toma un tercer parámetro opcional , HEADERS
que le permite especificar un número de filas de encabezado.
La mayoría de mis consultas serían mucho más bonitas si pudiera usar encabezados de columna, por lo que no tendría que usar índices de columna, pero no puedo hacer que funcione.
Ejemplo:
A B C
---------------------
Name Phone City
Vidar 12345678 Oslo
Rupert 32165487 Berlin
Puedo consultar esto usando índices de columna:
=QUERY(Sheet1!A1:C; "select A, B, C where A = 'Vidar'"; 1)
... pero sin usar encabezados de columna:
=QUERY(Sheet1!A1:C; "select A, B, C where Name = 'Vidar'"; 1)
... esto me da un error: consulta no válida: la columna [nombre] no existe en la tabla
¿Es posible usar encabezados de columna como este? Si no, ¿cuál es el propósito del HÈADERS
parámetro?
fuente
HEADERS > 0
el número dado de filas de encabezado se devolverá=QUERY
encima de los resultados de la consulta, ¿verdad? Eso tiene sentido: pensé queHEADERS
solo las filas especificadas deberían ignorarse en la consulta.OFFSET
opción se puede usar para ignorar las primeras filas.Sí, es posible. Primero, debe usar MATCH para obtener el número de columna de la columna cuyo valor coincide con 'Nombre'. Luego debe usar ADDRESS para obtener la referencia de celda. Finalmente, debe usar SUBSTITUTE para eliminar el número de fila de la referencia de celda.
fuente
Si bien una publicación anterior, quería agregar mi solución a la mezcla. Puede usar nombres de columna que considero más útiles. De esta manera, no tiene que editar sus llamadas a la función de consulta cuando inserta o elimina columnas de los datos de origen.
He visto a otros usar el partido y el sustituto, implementé algo un poco diferente a simplemente la llamada a la función de consulta.
Primero: cree una tabla de búsqueda con todos los nombres de columna como este. Mi tabla de búsqueda comienza en la columna E de una hoja de 'Configuración' solo porque tengo otros elementos en la hoja, podría colocarse fácilmente en su propia hoja.
Columna 1 (Nombre de columna)
Columna 2 (Columna #)
Columna 3 (letra de columna)
Estoy abierto a mejoras para convertir un número de columna en una letra. Esta fórmula es limitada porque solo maneja 78 columnas. Sin embargo, más que suficiente para mí.
Ahora su llamada a la función de consulta se vería así:
Manténgalo bien formateado y no es malo administrarlo en absoluto. Lo único que sufrirá es si cambia el índice de columna de su rango de vlookup. Pero esto no debería cambiar a menudo, si es que lo considera, considerando que es un rango auxiliar.
fuente
Antigua pregunta, pero creo que esta solución puede valer la pena.
Puede usar una función de secuencia de comandos personalizada que recupera el índice de la columna (es decir, A, B, C ...) usando un nombre de encabezado, lo que permite hacer algo como:
Con
colIndex
función:Que puede ser más fácil de usar y leer.
fuente
Aquí está mi solución:
Si tiene una columna llamada "ciudad", cree una nueva celda en algún lugar con el índice de esa celda:
Luego puede crear un rango con nombre para la celda Z: 2 llamada: "nombre", Z: 3 = "teléfono", Z: 4 = "ciudad"
en su consulta puede escribir:
Puede combinar esto con la solución de coincidencia de direcciones, para no tener que realizar un seguimiento de las columnas reorganizadas.
fuente