Categorías
Google Spreadsheets

Traer datos de otra hoja de cálculo en Google Sheets

Ya sea por cuestiones de orden en nuestros datos o por permisos de privacidad, tenemos diferentes documentos de hojas de cálculo en nuestro Google Drive, y muchas querríamos poder hacer referencias y cálculos entre esos documentos, sin tener que copiar o duplicar la información. Esto es posible con una fórmula muy útil  llamada =IMPORTRANGE().

Traer datos de otra hoja de cálculo en Google Sheets es muy sencillo. Vamos a poner un ejemplo práctico. Supongamos que tenemos una hoja de cálculo donde tenemos una base de datos de la relación entre equipos de cómputo y los empleados de la empresa, y queremos usar esa información para un tema diferente, en una hoja de cálculo nueva.

  • Empleados y equipos
  • Equipos a actualizar

Queremos que la información de Empleados y equipos se vea en el documento de Equipos a actualizar, entonces en el documento de  Equipos a actualizar, usamos la fórmula IMPORTRANGE(url_hoja_de_cálculo, intervalo). Primero copiamos la dirección del documento original:

Y usamos la fórmula en la primera celda de la primera fila y columna del segundo documento:

  • url_hoja_de_cálculo: es la dirección web del documento al que queremos referenciar. Ej. "https://docs.google.com/spreadsheets/d/blablabla". (debe ir entre comillas dobles ” “)
  • intervalo: es la hoja y el rango específico que queremos traer. Ej "Hoja 1!A:C" (debe ir entre comillas dobles ” “)

Al presionar ENTER, nos mostrará un mensaje especial, indicándonos que debemos permitir el acceso entre estos dos documentos, para probar que tenemos permiso de lectura de ambos, y que no cualquiera pueda poner una dirección de un documento nuestro en cualquier documento:

Una vez que damos click en el botón de Permitir acceso, veremos aparecer la información de la hoja de cálculo remota:

Hay algunas cosas a tomar en cuenta aquí. La primera es que esto solo trae los datos como estén, sin formato. Si tenemos algún formato condicional especial, tendríamos que volverlo a aplicar en la hoja en la que estamos trabajando. La segunda es que esta información es solo de referencia/lectura, si intentamos editarla, no podremos (se nos indicará que no hay espacio para mostrar toda la información); para eso tendríamos que editar la fuente de datos en el documento original. Esta también es una forma útil de solo compartir lo que queremos compartir y podría decirse que es otra forma de proteger las fórmulas de lectura o edición.

Y listo, ya podemos usar la información de una hoja de cálculo remota. Lo mejor es que no debemos preocuparnos por manejar archivos o actualizar referencias, ya que Google hace todo eso en la nube por nosotros.

Guía en video

Si tienes dudas puedes ver esta misma guía explicada en video:

¡Espero que te haya sido útil esta guía! No olvides seguirnos en Twitter y Facebook para más tips, trucos y guías de productividad.

Si tienes dudas, deja un comentario y con gusto te ayudaremos a resolverlas.

¿Quieres tener las herramientas de oficina de Google (G Suite) en tu empresa? ¡Contáctanos!

Aprende Sheets: Curso práctico de Hojas de cálculo de Google

53 respuestas a «Traer datos de otra hoja de cálculo en Google Sheets»

Buenos días,
Quisiera saber si es posible que al editar la información desde la nueva base de datos se actualice a la vez en la base de datos original. Capaz con alguna otra función.

Muchas gracias y muy util tu información!

Hola Santiago, ¡buen día! Qué bueno que te haya sido útil el artículo. Sobre lo que preguntas, como la dirección de la información solo es hacia un lado, es decir, solamente estás leyendo una referencia, solamente se podría editar o actualizar la información desde la fuente original. Osea el que “trae” la información, no puede editarla, solamente verla. Espero que esto haya respondido tu pregunta.

¡Hola David! Buen día. Sí es posible, si los dos documentos están en Google Drive, puedes tener información de uno en el otro sin problema. Si uno de ellos está en Excel, lo recomendable sería subirlo primero a Google Drive.

¡Hola Alexz! te comento que hago paso a paso lo que dices pero no me funciona, tengo los dos documentos en mi drive, pero nada… solo aparece mensaje ERROR de análisis de fórmula. si puedes orientarme sería genial.
Sólo necesito copiar el valor de una celda a otra celda de otra página en otro documento. ¿Me explico?
Mil gracias. Alfredo

¡Hola Alfredo! Qué bueno que pudiste resolverlo, si no es molestia, ¿nos podrías compartir cómo lo hiciste o qué error tenías? Por si a otros les sirve tu respuesta. ¡Saludos!

Hola Alfredo Fariña, serias tan amable de decirnos, cómo resolviste el problema, porque a mi me pasa exactamente lo mismo, todo escrito correctamente, pero me pone ERROR.

¡Hola! Sí es posible, puedes simplemente copiar y pegar la información de la hoja de cálculo de Google al documento, y verás un menú que te permite ligar la hoja para que se actualice la información automáticamente.

buenas tardes alekz, tengo el siguiente problema tengo una plantilla que es un formato editable de datos uso una formula que copia los datos a otra hoja, que genera el reporte automáticamente
el problema es que al editar la informacion se pierde el reporte del día anterior
algún consejo para solucionar esto lo que necesito es que la informacion sea permanente en los reportes
de antemano gracias

saludos

Hola quería saber si conoces alguna forma de importar una celda con imagen contenida, a otro archivo ya que con el importrange no me permite o si conoces alguna forma de realizarlo con la función importrange

¡Hola! Por el momento solo es posible si en el archivo original usas la fórmula =IMAGE(“url_de_la_imagen”). No funciona si usas la función nativa de insertar imágenes en las celdas (ej. Insertar – Imagen – Imagen en celda)

¡Hola Alekz! quería saber como usar IMPORTRANGE para que solo importe según el valor de una celda. Es decir, Tengo una de las columnas con los registros A, B, C, etc y quiero crear una exportación de todo el rango que contengan el registro A, otra con el registro B i otra importación con los registros del C etc… ¿Cómo lo harías? Gracias

Hola Luis. Mi recomendación sería que importaras los datos completos que necesitas trabajar en una hoja y después realices las fórmulas condicionales. Si no es práctico porque son muchos datos, puedes traer solo una columna o usar alguna función como QUERY o FILTER antes de traer los datos. ¡Espero haber entendido bien tu pregunta!

HOLA! Tienes alguna solución para arrastrar la formula y que copie los valores de las columnas/filas siguientes? No encuentro forma de hacerlo automático, dado que al arrastrar, se replica la formula copiada en la celda a1. Ejemplo: al arrastrar a1 hacia b1, la formula sigue trayendo lo de la celda a1 del otro archivo. gracias!

Hola Fernanda. Si entendí bien la pregunta, lo que deberías probar usar es el caracter $ para fijar la parte de la fórmula que no quieres que se arrastre. Por ejemplo, si haces =$A$1 y arrastras la fórmula, siempre se seguirá refiriendo a la celda A1 y no intentará adivinar la siguiente celda. Puedes hacerlo para columna y fila como te lo acabo de ejemplificar, o solo para columna ej. $A1, y también solo para fila ej. A$1 . Espero haberte ayudado y entendido tu pregunta, ¡un saludo!

Hola Michael. Con Apps Script podrías usar una función como
html = UrlFetchApp.fetch(url).getContentText()
Pero sería más complicado porque todavía tendrías que procesar el HTML. Para eso te podría servir más algo como BeautifulSoup con Python que ya incluye ese procesamiento y te da funciones para manejar la información que encuentras.

Hola, tenemos datos de usuarios por filas y hemos hecho un documento para cada un usuario que recibe sólo los suyos, pero que no tienen por qué ser coincidentes todas las columnas. Al hacer una copia para el siguiente,el problema es que debemos ir celda a celda cambiando el valor de la fila para que se adecue al siguiente…es posible hacerlo de manera automática¿¿

Hola Omar, si te genera un “#ERROR! Error de análisis de fórmula”, prueba usando punto y coma ( ; ) en vez de coma ( , ) en la fórmula, es probable es que tengan una configuración regional o de idioma diferente a la que estoy usando en el video. En este otro tutorial te enseño a cambiar eso: https://youtu.be/uMsN23hheW4 . Espero que te ayude y te puedas suscribir a nuestro canal de YouTube, ¡un saludo!
-Alekz

Buenas noches una pregunta ya realice los pasos y si me muestra el asignar los permisos pero tarda mucho es normal? o Hay alguna falla en la formula y si se puede hacer con una celda que contiene formula obviamente solo pasaría el resultado se puede? mil gracias de antemano

Hola Raúl. Es normal que tarde un poco en conectar las hojas, pero ya establecidos los permisos lo siguiente que te recomiendo verificar es que estés referenciando correctamente el rango que deseas, a veces se muestra en blanco el resultado porque estás referenciando un lugar en la hoja donde no hay nada. Sobre la segunda duda, estás en lo correcto, solamente pasa el resultado de la fórmula, pero no el procedimiento del cálculo como tal como en la hoja original. Espero haber entendido tu pregunta, ¡un saludo!

Hola Yuliana. Es un error conocido de Google Sheets y la única forma de darle la vuelta parece ser que es forzando que recalcule hasta que funcione. Hay muchos que comentan que cuando pasa esto, poner la fórmula IMPORTRANGE dentro de IFERROR() sirve, o poner una celda con NOW() . Te paso un link en donde hay más gente con el mismo problema para que intentas alguna de las soluciones que se han encontrado, pero al final del día es un error intermitente causado por Google, no por el usuario, para que estés tranquila por eso: https://stackoverflow.com/questions/19236270/google-spreadsheet-import-range-ref-error-randomly . Espero que te puedas suscribir a nuestro canal de YouTube, un saludo.

Buenas. Existe alguna manera de escribir el nombre de una hoja que se encuentra en el mismo archivo en una celda? Es decir, si existe una hoja que se llama “Hoja1” y en la “Hoja2” utilizo datos de la Hoja1, puedo hacer que el nombre de la Hoja1 esté en la casilla A1 de la Hoja 2 y toda referencia a la hoja 1 sea compuesta por A1!B1. Esto lo quiero para poder cambiar rápidamente de hoja, ya que si en esa casilla A1 de la hoja 2 cambio el nombre a la Hoja 3, todas las casillas que componían el nombre usando el contenido de A1 ahora apuntarán a la Hoja 3 y no tendré que hacerlo a mano casilla por casilla.

Me he explicado?

Gracias

Hola Christian. Con las fórmulas disponibles no hay una manera directa de hacerlo, pero si agregas esta función al código de Apps Script (Herramientas – Editor de secuencias de comandos):

function nombreHoja() {
return SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();
}

La podrás usar en cualquier celda así: =nombreHoja()

Espero haber entendido tu duda.

Muchas gracias Alekz. No era ese mi objetivo, pero gracias a tu ayuda he podido estirar del hilo y hacer lo que buscaba.

Por si a alguien le interesa, en la celda A1 puedo poner el hombre de una hoja cualquiera y y desde la celda B1 hago referencia al nombre que contenga en A1 y así de forma dinámica puedo cambiar de hoja.
Es decir, si tengo una hoja llamada Producto1 y otra que se llama Producto2, y en la celda C1 de cada una de esas hojas tengo el precio de cada producto, simplemente escribiendo en A1 de la hoja principal “Producto1” o “Producto2″ irá a la hoja correspondiente y me mostrará el precio adecuado.

Para hacer esto, y era lo que estaba buscando, se usa la función =Indirecto(A1&”!C1″)

Indirecto hace la magia, A1 es la celda que contiene el nombre de la hoja, el & une cadenas de texto y “!C1” es para indicar que es otra hoja diferente a la actual y la celda C1 de esa hoja.

Gracias!

Hola José, no entendí muy bien tu pregunta, pero parece que sería más fácil si hicieras una copia del archivo como hoja de cálculo de Google en vez de mantenerlo en Excel.

Hola Alekz, muy buena tu explicación! Se puede importar datos de esta forma pero con una condición? Estoy viendo de anidar “Filter” con “ImportRange” pero no se como hacerlo.

Hola Soledad, con mucho gusto, gracias por tu comentario. Sí se puede, de hecho es bastante común anidarla dentro de QUERY o de FILTER. Yo primero lo hago por separado (primero IMPORTRANGE y después FILTER sobre el rango de datos que resulte) para estar seguro de que el resultado será correcto, pero sí se puede anidar, es cosa de que revises la sintaxis de FILTER para adecuarla a tu caso particular. ¡Un saludo!

Hola, un saludo desde Guatemala, Corazón del Mundo Maya, les comento que en un mismo drive tengo carpetas y hojas que contienen datos, y de todas las hojas tengo una principal (resumen o acumulado) en el cual necesito el dato únicamente de una celda especifica por hoja pero no me funciona este es un ejemplo de la formula que estoy intentando realizar:
En la Hoja Acumulado 2021, Celda A3 quiero agregar esta formula:
=suma(Hoja1 celda A3, Hoja2 Celda A3, Hoja 3 Celda A3, Hoja 4 Celda A3)

después de agregar esta celda continuaría con la siguiente siendo la fórmula

En la Hoja Acumulado 2021, Celda B3 quiero agregar esta formula:
=suma(Hoja1 celda B3, Hoja2 Celda B3, Hoja 3 Celda B3, Hoja 4 Celda B3)

Y sucesivamente continuará hasta crear un acumulado de 12 datos en esta misma secuencia (una por cada mes del año).

Agradeceria mucho su ayuda. Un fuerte abrazo

Nota.
–Esta fórmula funciona muy bien en Microsoft Excel instalado en mi Pc.
–Quiero desarrollarlo en Google Sheets, debido a que si bien ya lo mencione yo soy el dueño del drive, pero los ingresos de datos en las celdas especificas lo ingresan otros usuarios, y quiero que todo quede en función automático.
–Cada fin de mes tengo que copias y pegar en cada hoja para llenar el Acumulado 2021.
–Con esto todo quedaría el archivo Acumulado 2021 automatizado y me ahorraría bastante tiempo.

Que tal amigo, Ricardo te comento que aún no lo logro, es complicado por que de una hoja de excel tengo un registro mensual alrededor de 15-20 datos, y cada celda tengo que agruparla en el compilado 2021, pero no funciona y eso que el drive es mio al igual que las hojas. Continuare probando. Este ejercicio lo estoy realizando con el fin de no buscar hoja por hoja y darle copiar y pegar, la idea es solo descargar la hoja de compilado 2021 con los datos de registro mensual ya actualizados. Te avisaré si logro realizarlo, o si logras realizarlo avisame, gracias…

Hola, intento hacer lo del video y me marcaba error y corregí el poner la “,” por “;” y ya como casi se podía pero me volvió a salir otro error, ese error me marca lo siguiente “Error: No se encuentra el intervalo o la hoja del intervalo importado.” …..me pueden ayudar a solucionar esto por favor? Muchas gracias, saludos!

HOLA! MUHCAS GRACIAS POR LA EXPLICACION.
ME GUSTARIA SABER SI ESO ES POSIBLE HACERLO POR EJEMPLO QUE VAYA COPIANDO Y PEGANDO A INTERVALOS DE TIEMPO DE UN EXCELL A OTRO LA INFORMACION DE LAS FILAS.
GRACIAS DE ANTEMANO

Hola buenos dias aunque soy el propietario de los 2 documentos me aparece un mensaje en la celda; indicando que no tengo permisos para acceder a la hoja

Buen día por favor podrías ayudarme, tengo 2 archivos en drive Archivo 1 tengo una sumatoria, la cual necesito jalar el resultado de la sumatoria al archivo 2 y que al mismo tiempo respete los cambios que se realizan en el archivo 1.
Lo he intendao copiando, y pegado especial, pero solo copia el importe o la formula en el archivo 2
Me gustaría que cuando realizo cambios en la sumatoria del archivo 1 automaticamente se reflejen en el archivo 2
Por favor podrías ayudarme

puedes usar la siguiente formula =’hoja1 ‘!D3 en la celda donde quieres que se actualice la informacion, solo un detalle si borras la informacion se borrara a donde se importo, no eh podido resolver este problema de proteger los datos importados, ya que tengo un libro de informes automatizado y una hoja principal de captura este es el formato editable todos los días se actualiza informacion
en el lo que hago es copiar y pegar la informacion en un formato lineal y insertar las formulas desde el la hoja donde las necesito

Hola! Gracias por la explicación! me ha facilitado el trabajo muchisiiimooo!! Pero ahora tengo un “problema” (que seguro es una simpleza, pero no doy con ella…) Tengo una tabla “origen” de la que tomo los datos para exportar solo dos columnas en otras muchas tablas. Digamos que la de origen es algo así como un índice. El problema viene cuando inserto una nueva fila en la de origen, que hace que en las de destino solo se añaden celdas en las dos columnas “importrange” y no en toda la tabla de destino, con lo que los datos se desplazan y no cuadran…
ALguna solución??
Muchas gracias de ante mano!

Hola Zahara. Para que se actualice la información de las otras columnas en las hojas destino, tendrías que tener alguna fórmula que ‘calcule’ las otras celdas automáticamente, porque de otro modo la tabla destino no sabe que debe introducir información adicional más que la que les diste con IMPORTRANGE. Otra alternativa es que combines IMPORTRANGE con QUERY para traer más información y controlar la salida en la hoja destino. Espero haber entendido tu pregunta y haberte ayudado 😀

Hola!
Me funciona la importación de datos tal y como lo necesito, pero… necesito que el documento sirva como plantilla a otros usuarios que van a usar el documento (todos con permiso de edición), entonces cuando abro mi plantilla, voy a opciones y le digo que haga una copia de mi plantilla para llenar los datos y al abrir esta, me muestra el error :cargando opciones de validación de datos; entonces , básicamente lo que me pide es que permita el acceso a la nueva copia desde la PC.
Esto supone un problema debido a que los usuarios no trabajarán con ordenadores sino con teléfonos. Qué debo hacer?

Hola, se puede fijar el resultado del IMPORTRANGE en la celda de origen, y que aunque la celda cambio de numeración, el IMPORTRANGE lo siga? por ej, la celda de origen es i24, pero al modificar el excel original, pasa a ser i25. ¿existe una manera que el IMPORTRANGE lo siga a donde vaya?

Hola, no logré hacerlo. Me sale el cartel “No tienes permisos para acceder a esta hoja” y abajo hay un link que dice “Más Información”. Pero no me da la opción de “Permitir Acceso”. Cómo puedo solucionarlo ? gracias.

Deja un comentarioCancelar respuesta

Salir de la versión móvil