sheets query importrange google fechas dates sql google-spreadsheet google-query-language

sql - fechas - query importrange google sheets



Hoja de cálculo de Google "= QUERY" join() función equivalente? (4)

Respuesta corta

Google QUERY Language versión 0.7 (2016) no incluye un operador JOIN (LEFT JOIN), pero esto podría lograrse utilizando una fórmula de matriz cuyo resultado podría usarse como entrada para la función QUERY o para otros usos.

Explicación

Las fórmulas de matriz y las funciones de gestión de matrices de Hojas de cálculo de Google permiten crear un JOIN entre dos tablas simples. Para facilitar la lectura, la fórmula propuesta usa intervalos nominales en lugar de referencias de rango.

Rangos con nombre

  • table1: Sheet1! A1: C3
  • table2: Sheet2! A1: C3
  • ID: Sheet1! A1: A3

Fórmula

=ArrayFormula( { table1, vlookup(ID,table2,COLUMN(Indirect("R1C2:R1C"&COLUMNS(table2),0)),0) } )

Observaciones:

  • El uso de rangos abiertos es posible, pero esto podría hacer que la hoja de cálculo sea más lenta.
  • Para aumentar el tiempo de recálculo:
    1. Reemplace Indirect("R1C2:R1C"&COLUMNS(table2),0) por una matriz de constantes desde 2 hasta el número de columnas de la tabla2.
    2. Elimine las filas vacías de la hoja de hojas sueltas

Ejemplo

Vea esta hoja para un ejemplo

Nota

En 2017, Google mejoró el artículo de ayuda oficial en inglés sobre la función QUERY, QUERY . Todavía no incluye temas como este pero podría ser útil para entender cómo funciona.

Esta pregunta se trata de unir dos bases de datos en la hoja de cálculo de Google usando la función = QUERY

Tengo una mesa como en el rango A1: C3

a d g b e h c f i

Tengo otra mesa

c j m a k n b l o

Quiero que la mesa final se vea así

a d g k n b e h l o c f i j m

Puedo hacer esto usando una función vlookup con bastante facilidad en la celda D1 y pegarla hacia abajo, pero mi conjunto de datos es enorme. Necesitaría una página completa de vlookups y Google Spreadsheet dice que estoy en mi límite en cuanto a las complejidades.

Miro la referencia del lenguaje de consulta de Google ... no parece haber un tipo de funciones de "unión" mencionadas. Pensarías que sería una operación fácil de "join on A".

¿Alguien puede resolver esto sin un vlookup?


Con la ''otra'' tabla en A5: C7, intente:

=query({A1:C3,query(sort(A5:C7,1,TRUE),"Select Col2,Col3")})


Puede usar ARRAYFORMULA o USTED puede simplemente arrastrar esta fórmula: después de una importación o QUERY -ing la primera tabla; en la columna D:

=QUERY(Sheet2!A1:C3, "Select B,C WHERE A=''" & A1 & "''", 0)


Si puede asignar cada "índice" (a, b, c) a una fila o columna específica, entonces podría usar la función INDEX .

En este caso, probablemente pueda asignar "a" a la columna A (o fila 1), "b" a la columna B (o fila 2), y así sucesivamente.

Además, las tablas de combinación parecen abordar este caso de uso exacto.