Una tarifa de precios en Google Sheets (Hojas de cálculo de Google) es una hoja con cinco columnas: referencia, nombre, precio de compra, precio de venta y stock. El precio de venta lo calcula una fórmula con el tipo de cambio y el margen, las tarifas de los proveedores llegan con IMPORTRANGE o IMPORTDATA, un pequeño Apps Script escribe cada día el tipo de cambio de referencia del BCE y, si tu tienda o una aplicación tiene que cambiar precios, usas la Google Sheets API. Así se llevan hasta unos miles de artículos y un puñado de proveedores.
Los errores suelen venir de los permisos y del tamaño. El archivo de trabajo compartido con clientes por enlace les enseña los precios de compra en la hoja de al lado, y las funciones de importación no se actualizan al momento y chocan con los límites de Google. Abajo tienes la estructura, la fórmula con un ejemplo, cómo conectar proveedores, el acceso para clientes, la automatización con script y API y el punto en el que una hoja de cálculo ya no da para más.
Cuándo se busca una tarifa en Google Sheets
Lo normal es una tienda online pequeña o un mayorista con la tarifa en Excel en un solo ordenador. Los comerciales tienen que ver precios al día, los clientes abrir la tarifa con un enlace, y el tipo de cambio y los precios de los proveedores actualizarse solos. De ahí las búsquedas «importrange», «google sheets api» y «vincular dos hojas de Google».
«Qué fórmula pongo» se resuelve en diez minutos. Lo difícil son otras preguntas: cómo no enseñar a los clientes los precios de compra y qué pasa cuando el proveedor cambia las columnas de sitio.
Qué columnas necesita una tarifa
El mínimo son cinco columnas. El tipo de cambio y el margen van en celdas aparte, para cambiarlos en un solo sitio.

| Columna | Contenido | De dónde sale |
|---|---|---|
| A – Referencia | referencia del artículo para buscar y cruzar tarifas | proveedor |
| B – Nombre | tu nombre de producto para los clientes | tú |
| C – Compra $ | precio del proveedor en la moneda de su tarifa | proveedor |
| D – Precio € | precio de venta, solo con fórmula | fórmula |
| E – Stock | «disponible», «bajo pedido», «agotado», desde una lista desplegable | proveedor |
| H1, H2 | tipo de cambio y margen | script y tú |
La columna «Stock» créala como desplegable (Datos → Validación de datos). Así no se mezclan «sí», «+» y «disp.», y los filtros funcionan.
Cómo calcular el precio de venta con una fórmula
Precio de venta = compra ÷ tipo de cambio × (1 + margen), redondeado hacia arriba a terminación ,99. En H1 va el tipo de cambio de referencia del BCE, expresado en dólares por euro, y en H2 el margen. En la versión en español de Google Sheets la función de redondeo hacia arriba se llama REDONDEAR.MAS (en inglés ROUNDUP), los argumentos se separan con punto y coma y los decimales con coma. En D2:
=REDONDEAR.MAS(C2/$H$1*(1+$H$2)+0,01;0)-0,01
Ejemplo ilustrativo, no son precios de mercado. El proveedor pide 22 $, el tipo en H1 es 1,10 dólares por euro y el margen en H2 es del 25 %.
- 22 ÷ 1,10 = 20,00 €: compra en euros;
- 20,00 × 1,25 = 25,00 €: con margen;
- 25,00 + 0,01 = 25,01 → redondeado hacia arriba a 26 → 26 − 0,01 = 25,99 €.

El +0,01 evita que un precio redondo como 25,00 € baje a 24,99 €, por debajo de tu margen. Si el margen depende de la categoría, añade una columna «Margen» y ponla en la fórmula en lugar de $H$2. Qué margen cubre envíos y comisiones lo tienes en el artículo markup: fórmulas y diferencia con el margen; tu margen real lo compruebas con la calculadora de margen.
Cómo traer la tarifa del proveedor a tu hoja
Depende de cómo te la mande el proveedor: como hoja de Google, IMPORTRANGE; como enlace a un archivo CSV, IMPORTDATA; como feed XML, IMPORTXML. En la versión en español estas funciones se llaman igual que en la inglesa.

| Tarifa del proveedor | Función | En qué fijarte |
|---|---|---|
| Hoja de Google | =IMPORTRANGE("enlace";"Precios!A2:E") | la primera vez pulsa «Permitir acceso»; hasta 10 MB de datos por solicitud |
| Enlace a un archivo CSV o TSV | =IMPORTDATA("enlace") | solo funciona con un enlace directo al archivo |
| Feed XML | =IMPORTXML("enlace";"//item/price") | el segundo argumento es una consulta XPath a los nodos que necesitas |
La importación toma un rango por dirección, no por nombre de columna. Si el proveedor mete una columna «Marca» entre la referencia y el precio, tu columna «Compra» se llena de marcas y la fórmula del precio devuelve en silencio un error o un número sin sentido. Ten la importación en una hoja aparte y revisa los encabezados cada vez que cambie la tarifa.
Cómo dar a los clientes acceso a la tarifa
A los clientes, un archivo aparte, no el de trabajo. «Cualquier persona que tenga el enlace → Lector» abre todo el archivo, incluida la hoja con los precios de compra.
- Crea el archivo «Tarifa clientes» y trae desde el archivo de trabajo, con IMPORTRANGE, solo referencia, nombre, precio y stock.
- Compartir → «Cualquier persona que tenga el enlace» → «Lector».
- O bien Archivo → Compartir → «Publicar en la Web»: la versión publicada recoge sola los cambios del original; según Google, puede tardar unos minutos.
Para grupos de clientes distintos, por ejemplo mayoristas y particulares, haz archivos separados con sus propias columnas de precio: los enlaces se reenvían.
Cómo actualizar solos el tipo de cambio y los precios
El tipo de cambio de referencia del BCE lo escribes con un Apps Script programado. El Banco Central Europeo lo publica cada día hábil hacia las 16:00 CET, así que los precios no saltan a lo largo del día como con un cambio de mercado de GOOGLEFINANCE. Abre Extensiones → Apps Script y pega la función:
function actualizarCambio() {
var url = 'https://data-api.ecb.europa.eu/service/data/EXR/D.USD.EUR.SP00.A?lastNObservations=1&format=csvdata';
var filas = Utilities.parseCsv(UrlFetchApp.fetch(url).getContentText());
var cambio = filas[1][filas[0].indexOf('OBS_VALUE')];
SpreadsheetApp.getActive().getSheetByName('Tarifa')
.getRange('H1').setValue(Number(cambio));
}
Después, en el editor de scripts, abre los activadores y añade uno para la función actualizarCambio, controlado por tiempo, diario, entre las 17 y las 18 h. Los activadores por tiempo van desde cada minuto hasta una vez al mes; la hora exacta Google la mueve dentro de la franja elegida. Para libras o francos suizos cambia en el enlace USD por GBP o CHF. El BCE publica estos tipos solo a título informativo: si tu contrato con el proveedor fija otro tipo, usa ese.
Un script también puede recoger cada noche la tarifa del proveedor desde un enlace y escribirla en una hoja. Así la hoja sigue siendo el único sitio donde calculas precios, aunque solo se actualiza tanto como dejan los límites de la tabla de abajo.
Google Sheets API: cuándo la necesitas y cómo empezar
La Google Sheets API es la interfaz con la que tu programa (la tienda, una app, un script de Python en el servidor) lee y escribe celdas de una hoja sin abrirla en el navegador. La necesitas cuando los precios tienen que circular entre la hoja y un sistema fuera de Google; si todo pasa dentro de la hoja, basta con Apps Script.
- Crea un proyecto en Google Cloud y activa en él la Google Sheets API.
- Elige las credenciales. Una clave de API solo da acceso anónimo a datos públicos. Un ID de cliente OAuth lo usas cuando el programa actúa en nombre de una persona y le pide su consentimiento. Una cuenta de servicio, cuando el programa trabaja solo, por ejemplo en el servidor de la tienda.
- Comparte la hoja con el correo de la cuenta de servicio como con un usuario normal: los roles de Google Cloud no dan acceso a archivos de Google Drive.
- Instala la biblioteca cliente de Google para tu lenguaje (para Python Google indica el paquete
google-api-python-client) y lee un rango, por ejemploTarifa!A2:E.
El uso normal de la Google Sheets API es gratuito. Los límites: 300 solicitudes de lectura y 300 de escritura por minuto y proyecto, y 60 de lectura y 60 de escritura por minuto y usuario dentro del proyecto. Google anuncia que superar las cuotas pasará a cobrarse más adelante en 2026, a través de la cuenta de facturación de Google Cloud. Una sola solicitud que dure más de 180 segundos se corta con un error, y Google recomienda cargas de hasta 2 MB: escribe la tarifa por bloques (una solicitud por rango), no celda a celda.
Dónde llega una hoja de cálculo a su límite
La hoja choca con el límite de actualización, no con el de filas: las funciones de importación se actualizan cada 30–60 minutos y los scripts tienen un límite diario de tiempo de ejecución.

| Qué | Límite |
|---|---|
| Tamaño de la hoja | hasta 20 millones de celdas o 100 MB |
| IMPORTRANGE | hasta 10 MB de datos por solicitud; actualización cada 30 minutos |
| IMPORTDATA, IMPORTXML, IMPORTHTML | actualización cada hora |
| GOOGLEFINANCE | retraso de hasta 20 minutos |
| Ejecución de Apps Script | hasta 6 minutos por ejecución |
| Activadores, cuenta personal de Gmail | hasta 90 minutos de ejecución al día |
| Llamadas UrlFetchApp, cuenta personal de Gmail | hasta 20.000 al día |
| Google Sheets API | 300 solicitudes de lectura y 300 de escritura por minuto y proyecto, 60 por usuario |
Señales prácticas de que la hoja ya no da abasto:
- tienes más de tres o cuatro proveedores, cada uno con sus columnas, su moneda y su forma de indicar el stock;
- el mismo producto aparece en varias tarifas y el precio lo eliges a mano;
- los precios de la tienda tienen que cambiar más de una vez por hora;
- alguien se pasa horas cada semana arreglando fórmulas después de una tarifa modificada.
Cuándo dejar las tarifas a un programa
Cuando tienes varios proveedores y sus precios tienen que llegar a la tienda sin que nadie revise fórmulas a mano.
Elbuz recoge la tarifa del proveedor directamente de una hoja de Google por enlace, también de una privada que el proveedor ha compartido con el correo de servicio de Elbuz con permiso de lector, y además del correo, por FTP o desde una web, a una hora fija. Las columnas las reconoce por los encabezados con su diccionario; si el proveedor las cambia de sitio, avisa al importar y propone las nuevas direcciones con un clic. Tipo de cambio (también el de referencia del BCE), margen y redondeo los fijas con una regla. Más en la página automatización de tarifas de proveedores.
A quién no le sirve: con un solo proveedor y unos cientos de artículos te bastan Google Sheets, una fórmula y un script para el tipo de cambio.
Tarifas desde Google Sheets en ElbuzColumnas, tipo de cambio y margen por reglas, 14 días gratis
Preguntas frecuentes
¿La Google Sheets API es gratuita?
Sí, el uso normal es gratuito dentro de 300 solicitudes de lectura y 300 de escritura por minuto y proyecto (60 y 60 por usuario). Google anuncia cobros por superar las cuotas más adelante en 2026.
¿Cómo consigo acceso a la Google Sheets API?
Activa la Google Sheets API en un proyecto de Google Cloud, crea credenciales (OAuth o cuenta de servicio) y, con cuenta de servicio, comparte la hoja con su correo. Los pasos están en la sección Google Sheets API.
¿Se puede conectar Google Sheets a una API?
Sí. Sin código, con IMPORTDATA (CSV) o IMPORTXML (XML) si la API devuelve un archivo en un enlace fijo. Para JSON y accesos con clave usas Apps Script con UrlFetchApp, como en el script del cambio del BCE.
¿Cómo vinculo dos hojas de Google?
Con IMPORTRANGE: indica el enlace de la hoja y un rango, por ejemplo "Precios!A2:E", y la primera vez pulsa «Permitir acceso».
¿Cada cuánto se actualizan IMPORTRANGE e IMPORTXML?
Según la ayuda de Google, IMPORTRANGE cada 30 minutos e IMPORTDATA, IMPORTXML e IMPORTHTML cada hora. Más rápido solo con un script o un programa.
¿Cómo comparto una tarifa con clientes solo para ver?
Haz para los clientes un archivo aparte sin precios de compra y compártelo como «Cualquier persona que tenga el enlace → Lector» o publícalo con Archivo → Compartir → «Publicar en la Web».
¿Se puede usar Google Sheets como base de datos?
Para una tarifa de unos miles de artículos, sí: caben hasta 20 millones de celdas o 100 MB por hoja. Lo que la frena antes son los límites de actualización de las importaciones y de duración de los scripts.
Fuentes
- Ayuda de los Editores de Documentos de Google: IMPORTRANGE, IMPORTDATA, IMPORTXML, REDONDEAR.MAS (ROUNDUP), recálculo y actualización de las funciones de importación, publicar archivos en la Web, tamaño de los archivos en Google Drive.
- Google for Developers: límites y precios de la Google Sheets API, Google Sheets API, guía de inicio rápido con Python, crear credenciales, cuotas de Apps Script, activadores por tiempo.
- Banco Central Europeo: tipos de cambio de referencia del euro (publicados hacia las 16:00 CET en días hábiles, solo a título informativo), API del ECB Data Portal.
Comprobado el 02.11.2026.
