¿Cómo vinculo una celda en las hojas de cálculo de Google a una celda en otro documento?

178

Tengo una hoja de cálculo mensual que se basa en cifras del mes anterior. Me gustaría importar estos valores dinámicamente en lugar de cortarlos y pegarlos. es posible? ¿Cómo lo hago?

Jeff Yates
fuente
Por cierto, sé que esto es posible ya que lo hice una vez, pero ya no puedo encontrar la información o la hoja en la que lo hice. Si la encuentro, publicaré una actualización.
Jeff Yates

Respuestas:

183

IMPORTRANGE() parece ser la función que desea.

De la lista de funciones de hojas de cálculo de Google :

Las hojas de cálculo de Google le permiten hacer referencia a otro libro de trabajo en la hoja de cálculo que está editando actualmente mediante la función ImportRange. ImportRange le permite extraer uno o más valores de celda de una hoja de cálculo a otra. Para crear sus propias fórmulas ImportRange, ingrese = importRange (hoja de cálculo, rango). Para los idiomas en los que se utiliza una coma para la separación decimal, use un punto y coma en lugar de una coma para separar los argumentos en su fórmula.

La hoja de cálculo-clave es un STRING que es el valor clave de la URL de la hoja de cálculo.

El rango es un STRING que representa el rango de celdas que desea importar, que incluye opcionalmente el nombre de la hoja (predeterminado a la primera hoja). También puede usar un nombre de rango si lo prefiere.

Dado que los dos argumentos son STRING, debe encerrarlos entre comillas o hacer referencia a las celdas que tienen valores de cadena.

Por ejemplo:

= importrange ("abcd123abcd123", "sheet1! A1: C10") "abcd123abcd123" es el valor en el atributo "key =" en la URL de la hoja de cálculo de destino y "sheet1! A1: C10" es el rango que se desea ser importado

= importrange (A1, B1) La celda A1 contiene la cadena ABCD123ABCD123 y la celda B1 contiene la hoja1! A1: C10

Nota: Para usar ImportRange, debe haber sido agregado como un visor o colaborador a la hoja de cálculo de la que ImportRange extrae los datos. De lo contrario, obtendrá este error: "Error #REF!: No se encontró la clave de la hoja de cálculo, el título de la hoja o el rango de celdas solicitados".

"clave" es, por supuesto, la cadena en la URL de la hoja de cálculo que coincide con el key=parámetro.

Lo acabo de probar creando dos hojas de cálculo. En la celda A1 de la primera, pongo una cadena. En la celda A1 de la segunda, puse =importRange("tgR2P4UTz_KT0Lc270Ijb_A","A1")y mostró la cadena de la primera hoja de cálculo. (Su clave obviamente será diferente).

(El formato de la función puede depender de la configuración regional En Francia, la fórmula no es válida con una coma, por lo que tendrá que reemplazarlo con un punto y coma:. =importRange("tgR2P4UTz_KT0Lc270Ijb_A";"A1"))

NOTAS

  1. Google actualmente establece un límite estricto de 50 "fórmulas de referencia de libro cruzado" por hoja de cálculo. Fuente: límites de tamaño de Documentos, Hojas de cálculo y Presentaciones de Google . (h / t JJ Rohrer )

  2. La "nueva" hoja de cálculo de Google (que pronto será el estándar) elimina el límite de 50 de 50 "fórmulas de referencia de libro cruzado ( Soporte de Google ) (h / t Jacob Jan Tuinstra )

  3. En las "nuevas" Hojas de cálculo de Google también utiliza la URL completa como clave ( Soporte de Google ) (h / t  Punchlinern )

cerveza inglesa
fuente
3
@Al: ¡Sí! ¡Eso es! Gracias.
Jeff Yates
+1 Whoa! No me di cuenta de que había una versión en línea. La otra opción es utilizar secuencias de comandos de Google Apps. Cree una función que use SpreadsheetApp.openById ([ID]). GetRange () y establezca un rango local con eso.
Evan Plaice
3
Vale la pena señalar que estará limitado a 50 de estos (¿por hoja de cálculo?) (Un límite estricto de
JJ Rohrer
44
En la nueva hoja de cálculo de Google (que pronto será el estándar), se ha eliminado el límite de 50: support.google.com/drive/answer/3093340?hl=es
Jacob Jan Tuinstra
44
Además, en las nuevas Hojas de cálculo de Google, usa la URL completa como clave. Además, se le solicita que otorgue acceso a la hoja solicitada cuando ingresa por primera vez a la función.
Punchlinern
29

Para su información, si desea hacer referencia a otra hoja dentro de esa otra hoja de cálculo, NO se debe volver a citar el nombre de la hoja:

utilizar

=importRange("tgR2P4UTz_KT0Lc270Ijb_A","Sheet Name!A1:A10")

en lugar de

=importRange("tgR2P4UTz_KT0Lc270Ijb_A","'Sheet Name'!A1:A10")

Inconsciente
fuente
66
Gracias. Debe agregar esto como un comentario a otra respuesta o incluso simplemente editar esa respuesta.
studgeek 01 de
10

En la nueva interfaz, simplemente debería poder escribir =la celda, luego ir a la otra hoja y elegir la celda que desee. Si desea hacerlo manualmente, o está utilizando la interfaz anterior, simplemente puede hacerlo =Sheet1!A1, dónde Sheet1está el nombre de la hoja y A1cuál es la celda de esa hoja que le interesa. Esto es idéntico a Microsoft Excel.

Benjamin Pollack
fuente
66
si el nombre de la hoja tiene espacios en blanco, ¡use 'Esta otra hoja'! A1
akira
12
¿Qué pasa con un documento completamente diferente, como hice en la pregunta?
Jeff Yates
@ jeff lo siento; no mencionaste "documento" en el cuerpo, y por alguna razón, en mi cabeza, pensé "hoja". Hasta donde yo sé, no se puede vincular dinámicamente a otro documento . Pero podría usar varias hojas, en lugar de múltiples documentos, momento en el que podría hacer lo que sugerí. Así es como ejecuto mis propias finanzas mensuales, precisamente por esta razón.
Benjamin Pollack
Está bien :) Sé que hay una manera de hacerlo como lo he hecho yo mismo, pero lo he olvidado y no puedo encontrar la hoja en la que lo hice.
Jeff Yates
Esto no responde la pregunta publicada: se trata de otras hojas en el mismo documento.
brendan
4

Encontré esta sintaxis usando Insertar -> Definir nuevo rango

GAMA PARA REFERENCIAR OTRAS HOJAS DE CALCULO

Columna A completa: "Hoja de cálculo con espacios en el nombre" A: A

Columna B entera: "Hoja de cálculo con espacios en el nombre" B: B

etc.

Entonces puedes usarlo como:

=COUNTIF('First Page'!B:B, "valueToMatch")
Tom Roggero
fuente
1
¿Es esto también posible para hacer referencia fuera de la hoja de cálculo?
Jacob Jan Tuinstra
@JacobJanTuinstra ¿a qué te refieres con 'fuera' de la hoja de cálculo?
Tom Roggero
66
Bueno, la IMPORTRANGEfunción puede importar datos de otra hoja de cálculo. Establecer rangos solo se entiende (posible) dentro de una hoja de cálculo. A eso me refería con afuera.
Jacob Jan Tuinstra
Esto no responde la pregunta publicada: solo describe cómo referirse a otra hoja en el mismo documento.
brendan
@brendan uso IMPORTRANGEcomo Jacob dijo.
Tom Roggero
2

así es como lo hice (reimplementado 'importrange ()'):

  • abra el editor de guiones ("herramientas" -> "guiones" -> "editor de guiones")
  • proporcione una función como esta (sin ninguna comprobación, esto tiene que mejorarse, pero se obtiene la idea general):
función REMOTEDATA (inKey, inRange) {

  var outData;  
  var ss = SpreadsheetApp.openById (inKey);

  si (ss) {
     outData = ss.getRange (inRange) .getValues ​​();
  }

  return outData;
}
  • usa esta fórmula como esta en tu hoja de cálculo:
= SUMA (REMOTEDATA ("clave", "Nombre de hoja! A1: A10"))

"clave" es la clave del documento, la encontrará en el parámetro "clave = xyz" de la URL del documento.

La documentación de ' servicios de hoja de cálculo ' proporciona más información sobre el tema.

akira
fuente
44
¿Cuál sería la ventaja de implementar esto usted mismo en lugar de usar la función existente?
Jeff Yates
1
@Jeff Yates: ninguno, lo acabo de implementar sin conocer importrange (). deportividad, ¿sabes? todo en el camino de simplemente porque-yo-puedo :)
akira
1
desafortunadamente, las funciones personalizadas de la hoja de cálculo ya no pueden abrir otras hojas de cálculo usando SpreadsheetApp.openById()o SpreadsheetApp.openByUrl()-> developers.google.com/apps-script/guides/sheets/…
Francesco Vadicamo
-2

Lo hice de la manera más fácil usando Query, por ejemplo, tengo 2 hojas ABC y XYZ y quiero importar el rango de A1 a C30 de Abc a XYZ, haga clic en la celda donde desea que aparezca el rango y escriba esto:

=QUERY(ABC!A1:C30)

Nota: Si el nombre de su hoja tiene espacios, por supuesto, escriba esto:

=QUERY('ABC 1'!A1:C30)

Qamar
fuente
77
El OP preguntó cómo importar celdas de otro documento . Puede QUERYhacer eso?
Vidar S. Ramdal
44
@ VidarS.Ramdal Puede, pero necesita importrange("abcd123abcd123", "sheet1!A1:C10"), por ejemplo, =query(importrange("abcd123abcd123", "sheet1!A1:C10"));-)
Fuhrmanator