# Gestión de inventario en Hojas de cálculo de Google

> Cómo llevar el inventario en Hojas de cálculo de Google con un libro de movimientos, fórmulas, avisos de stock bajo, protección e historial, y qué límites prever.

Source: https://www.lightinventory.com/es/guias/gestion-de-inventario-en-hojas-de-calculo-de-google · Last updated: 2026-10-28

Puede llevar un inventario fiable en Hojas de cálculo de Google si nunca sobrescribe una cantidad de stock. Registre cada entrada, salida, ajuste y traslado como una fila nueva de un libro de movimientos, y deje que las fórmulas calculen lo que hay disponible. Esa única decisión de diseño le da stock por ubicación, avisos de stock bajo y un historial que se puede leer, todo con funciones integradas.

Esta guía recorre el diseño de la hoja, las fórmulas, la validación de datos, la protección, el historial y los límites de Hojas de cálculo de Google que importan. Termina con un análisis honesto de dónde Hojas de cálculo de Google deja de ser suficiente por sí sola.

## Diseñar la hoja de cálculo

Use una hoja de cálculo con tres pestañas. Cada pestaña tiene una función.

| Pestaña | Cada fila es | La edita cuando |
|---|---|---|
| `Items` | Un producto o una pieza | Añade un artículo o cambia sus datos |
| `Locations` | Un almacén, una sala, una estantería o una furgoneta | Añade un lugar o le cambia el nombre |
| `Movements` | Un cambio de stock | Algo entra, sale o se traslada |

Los nombres de las pestañas y los valores en formato de código se mantienen en inglés porque las fórmulas de esta guía hacen referencia a ellos.

### Items

| Columna | Encabezado | Ejemplo | Notas |
|---|---|---|---|
| A | SKU | `BOLT-M8-40` | Único, nunca se reutiliza. Dé a la columna formato de texto sin formato |
| B | Nombre | Tornillo hexagonal M8 × 40 mm | |
| C | Unidad | caja | La unidad que usa cada movimiento |
| D | Punto de pedido | 20 | Cuando el stock disponible llega a esta cifra, se vuelve a pedir |
| E | Disponible | *(fórmula)* | Nunca se escribe a mano |
| F | Estado | *(fórmula)* | `Reorder` u `OK` |

### Locations

| Columna | Encabezado | Ejemplo |
|---|---|---|
| A | Ubicación | `WH1` |
| B | Nombre | Almacén principal |

### Movements: el libro de movimientos

| Columna | Encabezado | Ejemplo | Notas |
|---|---|---|---|
| A | Fecha | 2026-10-28 | Un valor de fecha real, no texto |
| B | SKU | `BOLT-M8-40` | Menú desplegable a partir de `Items` |
| C | Ubicación | `WH1` | Menú desplegable a partir de `Locations` |
| D | Cantidad | `-5` | Un valor positivo suma stock y uno negativo lo resta |
| E | Tipo | `Issue` | `Receive` (entrada), `Issue` (salida), `Adjust` (ajuste) o `Transfer` (traslado) |
| F | Referencia | PO-1042 | Pedido de compra, trabajo u hoja de recuento |
| G | Registrado por | Sam | Quién lo registró |
| H | Nota | Dañado en el transporte | Por qué, cuando no sea evidente |

Un traslado son dos filas: `-5` en la ubicación de origen y `+5` en la de destino, ambas con el tipo `Transfer` y la misma referencia. Un recuento de stock que encuentra 3 unidades menos de lo previsto es una fila `Adjust` con `-3`.

### Por qué un libro en el que solo se añaden filas es mejor que una columna de cantidad

La hoja de inventario más habitual tiene una sola columna «Cantidad» que la gente sobrescribe. Funciona hasta que algo sale mal, y entonces no puede decirle qué ha pasado.

- **Un número sobrescrito no tiene historia.** Si 40 pasa a ser 25, la hoja no dice si se vendieron, se perdieron o se contaron mal 15 unidades. Una fila del libro dice `-15`, `Issue`, `JOB-311`, con una fecha y un nombre.
- **Dos personas no pueden editar con seguridad un mismo número.** Si dos personas se llevan 5 cajas cada una y las dos sobrescriben 40 con 35, se pierde un movimiento. Dos filas añadidas de `-5` suman correctamente.
- **Los errores se corrigen añadiendo, no borrando.** Una fila errónea se corrige con una fila opuesta, así que el error y la corrección siguen visibles.
- **El stock en cualquier fecha está a una fórmula de distancia.** Sume los movimientos hasta esa fecha.
- **El stock por ubicación viene de serie.** Las mismas filas dan totales por artículo, por ubicación o por ambos.

La regla para todos los que usan la hoja es sencilla: añadir filas a `Movements` y no editar ni eliminar nunca las antiguas.

## Fórmulas para el stock disponible

Todas las fórmulas siguientes presuponen la estructura de pestañas y columnas anterior, con los encabezados en la fila 1.

> **Note:** Las fórmulas separan los argumentos con comas. Si su hoja usa una configuración regional con coma decimal, como España, Hojas de cálculo de Google espera punto y coma: sustituya las comas entre argumentos (no las del texto entre comillas) por `;`.

### Stock disponible por artículo

En `Items!E2`, y después arrastre hacia abajo:

```
=SUMIFS(Movements!$D:$D, Movements!$B:$B, $A2)
```

[SUMIFS](https://support.google.com/docs/answer/3238496?hl=es) suma cada cantidad (columna D) del libro cuyo SKU coincide con el artículo de esa fila.

Para rellenar toda la columna con una sola fórmula, escriba esto en `Items!E2` y deje vacías las celdas de debajo:

```
=ARRAYFORMULA(IF(A2:A="", "", SUMIF(Movements!B:B, A2:A, Movements!D:D)))
```

### Stock disponible por artículo y ubicación

Para un artículo en una ubicación, por ejemplo la ubicación escrita en la celda `H1` de `Items`:

```
=SUMIFS(Movements!$D:$D, Movements!$B:$B, $A2, Movements!$C:$C, $H$1)
```

Para una tabla de stock completa en su propia pestaña, use [QUERY](https://support.google.com/docs/answer/3093343?hl=es). Esta fórmula lista cada par de artículo y ubicación que tiene movimientos:

```
=QUERY(Movements!A1:H, "select B, C, sum(D) where B is not null group by B, C label sum(D) 'On hand'", 1)
```

Esta convierte las ubicaciones en columnas, con una fila por artículo:

```
=QUERY(Movements!A1:H, "select B, sum(D) where B is not null group by B pivot C", 1)
```

> **Note:** QUERY espera un solo tipo de datos por columna. Según la documentación de Google, si una columna mezcla tipos, el tipo de datos mayoritario determina el tipo de la columna y los demás valores se tratan como vacíos. Mantenga los SKU como texto sin formato y las fechas como fechas reales.

### Stock en una fecha pasada

Para ver lo que había disponible al final de un día concreto, por ejemplo la fecha de `Items!H2`:

```
=SUMIFS(Movements!$D:$D, Movements!$B:$B, $A2, Movements!$A:$A, "<="&$H$2)
```

### Detectar stock negativo

Una ubicación no puede tener menos de cero. Esta fórmula lista cada par de artículo y ubicación por debajo de cero, lo que suele indicar una entrada que falta o una errata:

```
=QUERY(QUERY(Movements!A1:H, "select B, C, sum(D) where B is not null group by B, C", 1), "select * where Col3 < 0", 1)
```

La QUERY interior calcula los totales por ubicación; la exterior conserva solo las filas negativas. Un resultado vacío significa que ninguna ubicación está por debajo de cero.

## Avisos de stock bajo y puntos de pedido

### Una columna de estado

En `Items!F2`, y después arrastre hacia abajo:

```
=IF(D2="", "", IF(E2<=D2, "Reorder", "OK"))
```

El estado queda vacío cuando no hay un punto de pedido definido, así que los artículos nuevos no muestran una falsa alarma.

### Resaltar las filas que hay que volver a pedir

1. Seleccione `A2:F` en la pestaña `Items`.
2. Haga clic en **Formato → Formato condicional**.
3. En **Dar formato a celdas si**, elija **La fórmula personalizada es**.
4. Escriba `=AND($D2<>"", $E2<=$D2)`.
5. Elija un color de relleno y haga clic en **Hecho** (Done).

Los signos de dólar fijan las columnas mientras cambia la fila, así que se colorea la fila entera. Google indica que las fórmulas de formato condicional [solo pueden hacer referencia a la misma hoja](https://support.google.com/docs/answer/78413?hl=es) salvo que se use `INDIRECT`. Por eso el stock disponible y el punto de pedido están uno junto al otro en la pestaña `Items`.

Puede usar la misma función para señalar las filas del libro cuyo signo no coincide con su tipo. Seleccione `A2:H` en `Movements` y use:

```
=OR(AND($E2="Receive", $D2<0), AND($E2="Issue", $D2>0))
```

### Nociones básicas del punto de pedido

Un punto de pedido responde a una pregunta: ¿hasta dónde puede bajar el stock antes de que tenga que hacer un pedido, para que la nueva entrega llegue antes de quedarse sin existencias? La fórmula básica es:

**Punto de pedido = consumo diario medio × plazo de entrega en días + stock de seguridad**

- **El consumo diario medio** sale de su libro de movimientos.
- **El plazo de entrega** es el número de días que pasan entre el pedido y tener el stock en la estantería.
- **El stock de seguridad** es el margen para entregas lentas o semanas de mucha actividad.

Añada tres columnas auxiliares a `Items`: G «Consumo diario medio (30 días)», H «Plazo de entrega (días)» e I «Stock de seguridad». En `G2`:

```
=-SUMIFS(Movements!$D:$D, Movements!$B:$B, $A2, Movements!$E:$E, "Issue", Movements!$A:$A, ">="&(TODAY()-30))/30
```

El signo menos convierte las cantidades negativas de `Issue` en un ritmo de consumo positivo. Después, defina el punto de pedido en `D2`:

```
=ROUNDUP(G2*H2 + I2, 0)
```

Por ejemplo, un artículo que se consume a razón de 4 cajas al día, con un plazo de entrega de 5 días y 10 cajas de stock de seguridad, tiene un punto de pedido de 4 × 5 + 10 = 30. Revise los plazos de entrega y el stock de seguridad cuando cambien los proveedores o la temporada; la fórmula solo es tan buena como esos dos datos.

## Validación de datos y menús desplegables

Los menús desplegables evitan las erratas que rompen SUMIFS y QUERY: un SKU con un espacio al final o una ubicación escrita de dos formas distintas nunca coincide.

### Añadir un menú desplegable a partir de un intervalo

1. En `Movements`, seleccione `B2:B`.
2. Haga clic en **Datos → Validación de datos → Añadir regla**.
3. En **Criterios**, elija **Menú desplegable (de un intervalo)** y escriba `Items!A2:A`.
4. Haga clic en **Hecho**.

Repita el proceso para `C2:C` con `Locations!A2:A`. Para `E2:E`, elija **Menú desplegable** y añada los elementos `Receive`, `Issue`, `Adjust` y `Transfer`. Google también ofrece **Insertar → Menú desplegable** y la opción **Menú desplegable** del menú contextual; todas abren el mismo [panel de reglas de validación de datos](https://support.google.com/docs/answer/186103?hl=es).

### Rechazar o advertir

De forma predeterminada, Hojas de cálculo de Google rechaza una entrada que no coincide con la lista. Si prefiere permitirla con una advertencia, abra **Opciones avanzadas** y, en **Si los datos no son válidos:**, seleccione **Mostrar una advertencia**. En un libro de movimientos de inventario, mantenga el rechazo: un movimiento con un SKU desconocido es casi siempre un error.

Añada también una regla de validación en `D2:D` que solo acepte números, y otra en `A2:A` que solo acepte fechas. SUMIFS ignora una cantidad escrita como texto, así que el stock queda mal sin que nadie lo note.

## Proteger intervalos y compartir con cuidado

Los permisos de Hojas de cálculo de Google tienen dos niveles, y los dos importan.

1. **Compartir** decide quién puede abrir el archivo y si es Lector, Comentador o Editor. Se configura con **Compartir** y se aplica a todo el archivo.
2. **Las hojas e intervalos protegidos** limitan lo que los editores pueden cambiar dentro del archivo.

### Proteger lo que nadie debería escribir

1. Haga clic en **Datos → Proteger hojas e intervalos**.
2. Haga clic en **Añadir una hoja o un intervalo**.
3. Elija **Intervalo** y seleccione `Items!E2:F` (las columnas de fórmulas).
4. Haga clic en **Establecer permisos**.
5. Seleccione **Restringir quién puede editar este intervalo**, elija **Solo tú** y haga clic en **Listo**.

Proteja de la misma forma toda la pestaña `Locations` si la lista cambia poco. En `Movements`, la gente tiene que poder añadir filas, así que una protección estricta no encaja. Use en su lugar **Mostrar una advertencia al editar este intervalo** en las filas existentes; pide a la persona que confirme antes de cambiar el historial.

Tenga claro lo que la protección no hace. Google advierte que la protección [no sirve como medida de seguridad](https://support.google.com/docs/answer/1218656?hl=es) y que se puede imprimir, copiar, pegar, importar y exportar copias de una hoja de cálculo protegida. El propietario siempre puede editar un intervalo protegido, y no se pueden proteger los datos con una contraseña. Encontrará los pasos detallados en [Proteger una hoja o un intervalo](/es/ayuda/hojas-de-calculo-de-google/proteger-intervalos).

### Compartir con el rol más limitado

- Dé el rol de **Lector** a quienes solo necesitan consultar el stock.
- Dé el rol de **Editor** solo a quienes registran movimientos.
- Los ajustes para compartir de Google permiten impedir que los editores compartan el archivo, como se explica en [Compartir archivos de Google Drive](https://support.google.com/drive/answer/2494822?hl=es).

## Historial de versiones e historial de cambios de las celdas

Hojas de cálculo de Google guarda dos tipos de historial: las versiones de todo el archivo y el historial de cambios de cada celda. [No puede ver el historial de versiones](https://support.google.com/docs/answer/190843?hl=es) sin permiso para editar el archivo.

### Historial de versiones

Para ver versiones anteriores, haga clic en **Último cambio**, arriba a la derecha de la hoja de cálculo. Elija una versión en el panel derecho para ver quién cambió qué. De forma predeterminada, Hojas de cálculo de Google oculta las filas sin modificar; haga clic en **Mostrar filas sin modificar** para verlo todo.

Puede restaurar una versión o hacer una copia de ella. Al restaurar una versión de una hoja de cálculo se borra el historial de cambios de cada celda para los cambios hechos antes de la restauración, así que en un archivo de inventario con mucha actividad la copia suele ser la opción más segura. Consulte [Restaurar una versión anterior](/es/ayuda/hojas-de-calculo-de-google/restaurar-version).

Puede poner nombre a un máximo de 15 versiones por hoja de cálculo, y las versiones con nombre no se combinan. Ponga nombre a una después de cada recuento de stock, por ejemplo «Recuento 2026-10-31», para poder volver siempre a ella.

### Historial de cambios de las celdas

Haga clic con el botón derecho en una celda y elija **Mostrar historial de cambios** para ver quién cambió esa celda. Google enumera los cambios que podrían no aparecer ahí:

- filas y columnas añadidas o eliminadas;
- cambios en el formato de la celda;
- cambios hechos antes de restaurar una versión anterior;
- cambios realizados por fórmulas.

Este último punto importa en una hoja basada en fórmulas: las celdas `Disponible` cambian mediante fórmulas, así que su historial de cambios no explicará una cifra nueva. Las filas del libro de movimientos sí lo harán. Encontrará más detalles en [Saber quién cambió una celda](/es/ayuda/hojas-de-calculo-de-google/quien-cambio-una-celda).

### Notificaciones de cambios

Haga clic en **Herramientas → Ajustes de notificaciones → Editar notificaciones** para recibir un correo electrónico cuando otras personas cambien la hoja de cálculo, al momento o en un resumen diario. Google indica que [solo puede configurar notificaciones para usted](https://support.google.com/docs/answer/91588?hl=es).

## Límites de Hojas de cálculo de Google que debe prever

Estos son los límites que documenta Google, consultados el 28 de octubre de 2026. La lista completa, con qué hacer cerca de cada uno, está en [Límites de Hojas de cálculo de Google para el inventario](/es/ayuda/hojas-de-calculo-de-google/limites).

| Límite | Qué documenta Google |
|---|---|
| Celdas por hoja de cálculo | Hasta 20 millones de celdas o 100 MB en hojas de cálculo creadas en Hojas de cálculo de Google o convertidas a este formato ([límites de archivos de Drive](https://support.google.com/drive/answer/37603?hl=es)). Google lo amplió desde 10 millones en septiembre de 2026 ([Workspace Updates](https://workspaceupdates.googleblog.com/2026/09/doubled-cell-limits-in-google-sheets-now-generally-available.html)) |
| Personas que editan a la vez | Un archivo de Google solo se puede editar de forma activa en un máximo de 100 pestañas o dispositivos abiertos al mismo tiempo ([límites para compartir](https://support.google.com/drive/answer/2494822?hl=es)) |
| Uso compartido | Hasta 600 direcciones de correo electrónico distintas por archivo ([límites para compartir](https://support.google.com/drive/answer/2494822?hl=es)) |
| Versiones con nombre | Hasta 15 por hoja de cálculo ([historial de versiones](https://support.google.com/docs/answer/190843?hl=es)) |
| IMPORTRANGE | Máximo de 10 MB de datos recibidos por solicitud; busca actualizaciones cada hora mientras el documento está abierto ([IMPORTRANGE](https://support.google.com/docs/answer/3093340?hl=es)) |

Un libro de movimientos crece una fila por movimiento. Con 8 columnas, 1000 movimientos al mes suman 8000 celdas al mes, unas 96 000 al año. La mayoría de los equipos pequeños nunca llegan al límite de celdas, pero los archivos grandes se vuelven lentos mucho antes. Archive los años cerrados en un archivo aparte y traslade el saldo de cierre como una fila `Adjust` por artículo y ubicación.

## Cuándo Hojas de cálculo de Google deja de ser suficiente por sí sola

El diseño anterior funciona bien para unas pocas personas cuidadosas. A medida que el equipo crece, estas carencias empiezan a costar tiempo o dinero.

- **Ediciones simultáneas.** Hojas de cálculo de Google muestra las ediciones en directo, pero nada impide que dos personas cambien la misma fila, o que alguien ordene el libro mientras otra persona escribe. Nada comprueba un cambio antes de que se aplique.
- **Sin aprobaciones.** Cualquier editor puede registrar un ajuste de 500 unidades o cambiar un punto de pedido. No hay ningún paso en el que una segunda persona lo revise antes.
- **Un historial difícil de auditar.** El historial de versiones se agrupa y [las revisiones pueden combinarse](https://support.google.com/docs/answer/190843?hl=es) en ocasiones. El historial de cambios de las celdas omite los resultados de fórmulas, las filas insertadas y eliminadas y los cambios de formato, y una restauración lo borra. El propietario de un archivo de una cuenta personal de Google puede eliminar de forma permanente sus versiones sin nombre. Nada demuestra que el historial que ve esté completo.
- **Sobrescrituras accidentales.** Pegar una sola vez sobre el intervalo equivocado o arrastrar una fórmula demasiado lejos cambia cientos de filas del libro de golpe. El historial de versiones puede recuperarlo, si alguien se da cuenta.
- **Los permisos son a nivel de archivo.** Un editor puede editar todas las pestañas y todas las ubicaciones salvo que usted configure protecciones a mano, y la protección no es una medida de seguridad según la propia Google. No se puede decir «esta persona solo registra movimientos del almacén norte».
- **Las reglas están en la cabeza de la gente.** «No editar nunca filas antiguas» y «añadir siempre una referencia» son convenciones. La hoja no las hace cumplir.

Si esto le resulta familiar, tiene tres opciones: aceptar el riesgo, pasarse a un sistema de inventario independiente o mantener la hoja y añadirle control.

## Cómo añade LightInventory control a la misma hoja

LightInventory es una aplicación de inventario construida sobre una hoja de cálculo de Google de su propiedad. Está en desarrollo y todavía no está disponible para el público general. Usa el mismo diseño de libro de movimientos que esta guía, y la aplicación hace cumplir las reglas anteriores en lugar de dejarlas en manos de la costumbre.

- **Sus datos se quedan en su hoja.** Los artículos, las ubicaciones, los movimientos y el registro de cambios son pestañas de su propia hoja de cálculo. Si deja de usar LightInventory, conserva el archivo.
- **Cada cambio queda registrado.** Cada cambio se escribe en una pestaña `Log` con quién lo hizo, cuándo, el valor anterior y el valor posterior. Los errores se corrigen con una entrada compensatoria, nunca borrando el historial.
- **Historial a prueba de manipulaciones.** Una cadena de hashes con clave del registro, sin sus valores, se guarda fuera de su archivo y se ancla externamente, de modo que una fila del registro editada o eliminada en silencio no supera la verificación. Consulte el [registro de auditoría](/es/funciones/registro-de-auditoria).
- **Aprobaciones.** Usted elige qué cambios necesitan aprobación, por ejemplo los cambios de precio. El revisor no puede ser la persona que solicitó el cambio.
- **Roles.** Propietario, Administrador, Aprobador, Editor y Lector, con la opción de limitar a Editores y Lectores a determinadas ubicaciones. Los miembros del equipo trabajan en la aplicación y no se añaden al archivo salvo que el propietario les conceda edición directa.
- **Detección de ediciones directas.** Si alguien edita la hoja directamente, LightInventory detecta el cambio y lo gestiona según su política: bloquearlo hasta que un propietario lo adopte o lo restaure, registrarlo automáticamente o enviarlo a aprobación.

Hay un plan Free para 1 usuario y 1 hoja de cálculo. Team cuesta 2,99 € por usuario al mes con facturación mensual, o 2,49 € con facturación anual, impuestos no incluidos. Encontrará los detalles en [precios](/es/precios), y cómo se tratan sus datos y el acceso en [seguridad](/es/seguridad).
