Sistema de entrega y devolución en hoja de cálculo
Arme un sistema de entrega y devolución de equipo en Excel o Google Sheets: columnas, fórmulas, formato condicional y códigos QR listos para copiar.
O de cómo dejé de escuchar «yo creía que lo tenía otra persona»
Le pinto la escena. Son las 9:47 de un lunes. El equipo comercial tiene una presentación con un cliente a las 10. Necesitan el proyector portátil. Nadie sabe dónde está. Los mensajes de WhatsApp vuelan en todas direcciones. Alguien dice que Diego, de sistemas, lo tuvo el viernes. Diego jura que lo devolvió. Spoiler: no lo devolvió. El proyector sigue en la cajuela de su auto.
Ya viví esta escena exacta más veces de las que quisiera admitir. Y apuesto a que usted también, tal vez no con un proyector, sino con una cámara, un equipo de pruebas, una laptop de la empresa o ese adaptador especial que todos usan y nadie encuentra jamás. Esta guía es para cuando prefiere construir el sistema de entrega y devolución usted mismo, con fórmulas, alertas de atraso y códigos QR, en vez de partir de una plantilla ya armada.
En la guía principal de control en hojas de cálculo traté el registro de entrega y devolución como uno de los cinco componentes clave. Pero, honestamente, esa sección apenas rasguñó la superficie. Un sistema de entrega y devolución de activos como corresponde merece su propia inmersión, porque es justo ahí donde la mayoría de los esfuerzos de control de activos encajan de una vez, o se vienen abajo por completo.
Así que vamos a construir un sistema completo de entrega y devolución de equipo en hoja de cálculo. Desde cero. Con fórmulas reales que sí funcionan.
Lo que necesita antes de empezar
Antes de entrar de lleno, una verificación rápida: un sistema de entrega y devolución no existe en el vacío, necesita algo de dónde entregar. Si todavía no tiene un registro de activos (la lista maestra con códigos únicos), constrúyalo primero: mi guía de control de activos en hoja de cálculo lo lleva paso a paso. Yo espero.
¿Ya volvió? Bien. Esto es lo que debería tener listo:
- Un registro de activos con códigos únicos (como
ACT-001,ACT-002) - Una hoja de configuración con valores desplegables para áreas, situaciones y personal
- Una decisión sobre si va a usar Excel o Google Sheets
Un matiz para esta decisión: Google Sheets gana por una sola razón, la colaboración en tiempo real. Cuando Karla, de marketing, registra la salida de una cámara en el mismo minuto en que Tomás, de ventas, busca otra, usted no quiere conflictos de archivo. Operación de una sola persona, Excel funciona perfecto. Equipo de tres o más, use Google Sheets sin dudarlo.
Diseñe el registro de entrega y devolución: los campos que sí importan
Aquí es donde la mayoría se equivoca: registran muy poco (solo nombre y fecha, inútil) o demasiado (un monstruo de veinte columnas que nadie llena). Después de años de ajustes, llegué a un equilibrio entre ser exhaustivo y que "la gente sí lo use".
Campos esenciales (los que no son negociables)
| Columna | Para qué sirve | Ejemplo |
|---|---|---|
| ID de movimiento | Identificador único de cada entrega | MOV-001 |
| Código de activo | Enlaza con el registro de activos | ACT-015 |
| Nombre del activo | Se completa solo con VLOOKUP (¡no lo escriba a mano!) | Proyector portátil |
| Retirado por | Quién lo llevó (lista desplegable de personal) | Karla Méndez |
| Área | Se completa según la persona | Marketing |
| Fecha de entrega | Cuándo salió del edificio (o del clóset) | 10/02/2026 |
| Devolución prevista | Cuándo debería regresar | 14/02/2026 |
| Devolución real | Cuándo regresó de verdad (vacío = todavía fuera) | |
| Días fuera | Se calcula sola | 4 |
| Situación | Se calcula sola: En uso / Devuelto / Atrasado | Atrasado |
Son 10 columnas. Suficientes para ser útiles, y lo bastante pocas como para que la gente no las salte.
Campos opcionales, pero poderosos
Si su equipo aguanta un par de columnas más sin rebelarse, considere agregar:
- Motivo o proyecto. "Presentación para el cliente." Útil cuando alguien pregunta por qué salió el equipo.
- Aprobado por. Para activos de valor alto (US$ 1,000 o más), exija el visto bueno de un gerente.
- Estado en la entrega. Excelente / Bueno / Regular / Malo. Protege a las dos partes.
- Estado en la devolución. La misma escala. Si salió "Bueno" y volvió "Malo", ya sabe con quién hablar.
- Observaciones. Texto libre para lo que se sale de lo previsto. "Volvió sin el cable de corriente" vale la pena anotarlo.
Lo que NO debe incluir
Sé que la tentación existe: número de serie, fecha de compra, garantía, ubicación, toda la historia del activo. No lo haga. Esos datos ya viven en su registro de activos; el registro de entrega y devolución debe referenciarlos, no duplicarlos. Cada campo de más es un campo que alguien debe llenar, y un motivo más para saltarse el proceso.
Créame. Lo aprendí de la manera difícil, con un formulario de entrega de 22 columnas. ¿Tasa de cumplimiento? Cerca del 30%. Lo reduje a 10 columnas. El cumplimiento subió al 85%. Los números no mienten.
Construyendo el sistema, paso a paso
Bien, manos a la obra. Vamos a construir esto.
Paso 1: cree la hoja de registro de entrega y devolución
Cree una hoja nueva en el libro de control de activos. Este será su registro de entrega y devolución en Excel (o Google Sheets). Llámela Entrega y devolución y configure los encabezados en la Fila 1:
A1: ID de movimiento
B1: Código de activo
C1: Nombre del activo
D1: Categoría
E1: Retirado por
F1: Área
G1: Fecha de entrega
H1: Devolución prevista
I1: Devolución real
J1: Días fuera
K1: Situación
L1: Motivo
M1: Observaciones
Dele formato a la fila de encabezado: negrita, color de fondo, e inmovilícela. Ya conoce la rutina. Configure las columnas G, H e I con formato de fecha. Y aquí un detalle pequeño que hace una gran diferencia: ajuste el ancho de las columnas para que todo se lea sin desplazamiento horizontal. A nadie le gusta el desplazamiento horizontal. A nadie.
Paso 2: conecte con su registro de activos con VLOOKUP
Aquí empieza la magia. En lugar de escribir el nombre y la categoría del activo cada vez, deje que la hoja de cálculo lo haga por usted. Cuando alguien ingresa un código de activo en la columna B, el nombre y la categoría se completan solos.
Nombre del activo (columna C):
=IFERROR(VLOOKUP(B2, 'Asset Register'!A:B, 2, FALSE), "")
Categoría (columna D):
=IFERROR(VLOOKUP(B2, 'Asset Register'!A:E, 5, FALSE), "")
Nota sobre las fórmulas: las fórmulas de esta guía están escritas en la sintaxis en inglés de Excel y Google Sheets, con coma como separador de argumentos (por ejemplo, VLOOKUP, IF, COUNTIF). Si su hoja de cálculo está configurada en español, es probable que necesite punto y coma (;) como separador y los nombres de función en español (BUSCARV, SI, CONTAR.SI). Copie la lógica y adapte la sintaxis y los nombres de las hojas y columnas a los de su propio archivo; no las convierta a medias, porque una fórmula parcialmente traducida simplemente no funciona.
El envoltorio IFERROR evita los feos errores #N/A cuando una fila está vacía. Un detalle pequeño, pero marca una gran diferencia en qué tan profesional se ve su hoja.
Si usa Excel 365 o Google Sheets, puede usar XLOOKUP en su lugar. Es más limpia:
=IFERROR(XLOOKUP(B2, 'Asset Register'!A:A, 'Asset Register'!B:B, ""), "")
Paso 3: agregue validación de datos (listas desplegables)
El texto libre es el enemigo de los datos limpios. Punto. Alguien va a escribir "Karla Méndez", otra persona "Karla M.", y una tercera solo pondrá "karla". Después intente sacar un reporte de quién tiene más equipo prestado. Suerte con eso.
Lista desplegable de personal (columna E):
Vaya a su hoja de configuración y cree una lista de personal. Luego, en la columna E del registro de entrega y devolución:
- Excel: Datos → Validación de datos → Lista → Origen:
=Settings!$A$2:$A$50 - Google Sheets: Datos → Validación de datos → Lista desplegable de un rango →
Settings!A2:A50
Área autocompletada (columna F):
En lugar de una lista desplegable, complete automáticamente el área según el nombre de la persona:
=IFERROR(VLOOKUP(E2, Settings!$A:$B, 2, FALSE), "")
Esto asume que su hoja de configuración tiene el personal en la columna A y sus áreas en la columna B. Un campo menos que llenar a mano es una excusa menos para saltarse el proceso.
Paso 4: calcule solos los indicadores clave
Aquí es donde su hoja de cálculo se gana el sueldo. Estas fórmulas convierten datos crudos en información útil de verdad.
Días fuera (columna J):
=IF(B2="", "", IF(I2="", TODAY()-G2, I2-G2))
Traducción: si no hay código de activo, deje la celda vacía. Si el artículo todavía no ha sido devuelto (columna I vacía), cuente los días desde la entrega hasta hoy. Si ya fue devuelto, cuente los días reales que estuvo fuera. Simple, efectiva, y se actualiza sola cada día.
Situación (columna K):
=IF(B2="", "",
IF(I2<>"", "Returned",
IF(H2<TODAY(), "Overdue",
IF(H2=TODAY(), "Due Today", "Active"))))
Esto le da cuatro situaciones posibles:
- Returned (Devuelto): la fecha de devolución real ya está registrada
- Overdue (Atrasado): ya pasó la devolución prevista y no hay devolución real
- Due Today (Vence hoy): debería regresar hoy (con suerte)
- Active (En uso): está prestado, todavía dentro del plazo
Sin actualizaciones manuales. La situación cambia sola según las fechas. Solo esto le ahorra horas de "déjame revisar si ya devolvieron eso".
Automatización: que la hoja de cálculo trabaje para usted
Una hoja de cálculo que solo guarda datos es un cuaderno con más pasos. Una hoja que resalta problemas y muestra información útil, eso ya es un sistema. Agreguemos la capa de automatización.
Reglas de formato condicional
Esta es mi parte favorita, porque convierte su hoja de control de préstamo de equipo en algo que de verdad puede ver de un vistazo. Tres reglas, impacto enorme.
Regla 1: artículos atrasados (rojo)
Seleccione todo el rango de datos del registro de entrega y devolución. Aplique formato condicional con una fórmula personalizada:
=AND($I2="", $H2<TODAY(), $B2<>"")
Configure el formato como: fondo rojo, texto blanco en negrita. Ahora cada entrega atrasada le grita desde la pantalla. Es imposible no verla, aunque quisiera.
Regla 2: vence hoy o mañana (amarillo)
=AND($I2="", $H2<=TODAY()+1, $H2>=TODAY(), $B2<>"")
Fondo amarillo. Son sus alertas tempranas. Resuélvalas antes de que se vuelvan rojas.
Regla 3: devuelto a tiempo (verde)
=AND($I2<>"", $I2<=$H2, $B2<>"")
Fondo verde claro. Confirmación visual de que el sistema funciona y la gente devuelve las cosas a tiempo. El refuerzo positivo también cuenta.
Con esto, su registro de entrega y devolución pasa de tabla aburrida a semáforo: fila roja exige acción, amarilla pide atención, verde está en orden. Recorre la hoja completa en segundos y sabe exactamente cómo está la situación.
Actualice sola la situación del activo en el registro
Aquí hay algo que la mayoría de las guías se salta por completo. Su registro de entrega y devolución sabe que ACT-015 está prestado en este momento. Pero ¿su registro de activos lo sabe? Debería.
Vaya a su registro de activos y busque la columna de situación. Reemplace la entrada manual con esta fórmula:
=IF(COUNTIFS('Check-Out Log'!B:B, A2, 'Check-Out Log'!I:I, "")>0,
"Checked Out", "Available")
Ahora, cuando alguien registra la salida de un activo, su situación en el registro principal cambia automáticamente a "Checked Out" (Prestado). Cuando lo devuelven (llenan la fecha de devolución real), la situación regresa a "Available" (Disponible). Cero actualización manual. Cero riesgo de que alguien vea el registro, crea que el proyector está disponible y en realidad esté en la cajuela de Diego.
Consejo profesional: si además quiere mostrar quién lo tiene, agregue esta fórmula en una columna "Con quién está" en el registro de activos:
=IFERROR(INDEX('Check-Out Log'!E:E,
MATCH(1, ('Check-Out Log'!B:B=A2)*('Check-Out Log'!I:I=""), 0)), "")
Nota: en Excel clásico, esta es una fórmula matricial, presione Ctrl+Shift+Enter en vez de solo Enter. En Google Sheets y en Excel 365, funciona tal cual.
Integración con el panel
Si siguió la guía principal y ya tiene una hoja de panel, agréguele una sección de entrega y devolución:
Actualmente prestados:
=COUNTIFS('Check-Out Log'!I:I, "", 'Check-Out Log'!B:B, "<>")
Artículos atrasados:
=COUNTIFS('Check-Out Log'!I:I, "", 'Check-Out Log'!H:H, "<"&TODAY(), 'Check-Out Log'!B:B, "<>")
Promedio de días fuera (para los ya devueltos):
=AVERAGEIFS('Check-Out Log'!J:J, 'Check-Out Log'!I:I, "<>", 'Check-Out Log'!B:B, "<>")
Activo más solicitado (el consentido de la operación):
=INDEX('Check-Out Log'!C:C, MATCH(MAX(COUNTIF('Check-Out Log'!B:B, 'Check-Out Log'!B:B)), COUNTIF('Check-Out Log'!B:B, 'Check-Out Log'!B:B), 0))
Estos cuatro indicadores le dicen, de un vistazo, la salud del sistema. Si "artículos atrasados" está siempre por encima de cero, el problema es de personas, no de hoja de cálculo.
Situaciones del mundo real
La teoría está muy bien, pero las hojas de cálculo viven en el mundo real, donde la gente olvida devolver cosas, rompe equipo y deja la empresa con una laptop en la mochila. Resolvamos esos casos uno por uno.
¿Qué pasa si alguien no devuelve el equipo a tiempo?
El formato condicional marca los atrasos en rojo. Pero necesita un proceso detrás de ese color.
Esto es lo que a mí me funciona:
- Día 1 de atraso: un mensaje cordial por correo o chat. "Hola, el proyector debía regresar ayer. ¿Todo bien?"
- Día 3 de atraso: un mensaje más directo, con copia al responsable de área.
- Día 7 de atraso: escalación a la jefatura. En este punto, alguien debería ir físicamente a buscar el activo.
En Google Sheets, puede automatizar el primer recordatorio con un Apps Script sencillo:
function checkOverdue() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Check-Out Log');
var data = sheet.getDataRange().getValues();
var today = new Date();
for (var i = 1; i < data.length; i++) {
var expectedReturn = data[i][7]; // Columna H
var actualReturn = data[i][8]; // Columna I
var email = data[i][4]; // Columna E (colaborador)
if (actualReturn === "" && expectedReturn < today && expectedReturn !== "") {
// Enviar recordatorio - personalice la búsqueda del correo
MailApp.sendEmail(
"almacen@suempresa.com",
"Equipo atrasado: " + data[i][2],
data[i][4] + " no ha devuelto " + data[i][2] +
" (código: " + data[i][1] + "). Debía volver el " +
Utilities.formatDate(expectedReturn, "GMT", "dd/MM/yyyy")
);
}
}
}
Configure un disparador diario (Extensiones → Apps Script → Activadores) y nunca más va a tener que perseguir manualmente equipo atrasado. El sistema lo hace por usted.
¿Qué pasa si el equipo vuelve dañado?
Para esto existe el campo "Estado en la devolución". Pero también necesita conectarlo con su registro de mantenimiento.
Cuando alguien devuelve un activo y anota el estado como "Malo" o "Dañado":
- Registre la devolución en el registro de entrega y devolución con normalidad
- Cree una entrada nueva en el registro de mantenimiento (de la guía principal) que referencie esta entrega
- Actualice el estado del activo en el registro de activos
Puede agregar una fórmula en la columna de observaciones para marcar esto:
=IF(AND(I2<>"", N2="Poor"), "⚠ DAÑO REPORTADO, ver registro de mantenimiento", "")
¿Es perfecto? No. Un sistema como corresponde crearía la orden de mantenimiento sola. Pero, para una hoja de cálculo, una alerta clara más un proceso documentado lo resuelve en un 80%.
El colaborador deja la empresa: la revisión de salida
Este caso muerde a las empresas más seguido de lo que reconocen: alguien renuncia, su último día es el viernes, y el lunes usted descubre tres activos prestados sin devolver: laptop, mouse inalámbrico y monitor externo.
Incorpore esta fórmula a su proceso de salida. Cuando sepa que alguien se va, ejecute este filtro:
Excel (matriz dinámica):
=FILTER('Check-Out Log'!A:M, ('Check-Out Log'!E:E=E2)*('Check-Out Log'!I:I=""))
Google Sheets:
=FILTER('Check-Out Log'!A:M, 'Check-Out Log'!E:E="Juan Pérez", 'Check-Out Log'!I:I="")
Reemplace "Juan Pérez" con el nombre de la persona que se va. Esto le trae al instante todo lo que no ha devuelto. Imprímalo. Entrégueselo (o a su jefe directo). Recupere todo antes de su último día.
Mejor todavía, agregue una celda en su panel que cuente los artículos no devueltos por persona:
=COUNTIFS('Check-Out Log'!E:E, "Juan Pérez", 'Check-Out Log'!I:I, "")
Si ese número no es cero en su último día, tiene un problema por resolver.
Varias personas necesitan el mismo activo
Este es el talón de Aquiles de los sistemas de entrega y devolución en hoja de cálculo: no manejan bien las reservas. Puede ver quién lo tiene ahora, pero no puede poner en fila reservas futuras sin ponerse creativo.
Mi solución: agregue una sección "Solicitudes" al final del registro de entrega y devolución (o una hoja aparte de "Reservas") donde la gente anote qué activos va a necesitar y cuándo. Es manual, es imperfecto, pero al menos crea visibilidad. El encargado de almacén puede ver que tres personas quieren el proyector la semana que viene y organizarse en consecuencia.
Si necesita reservas y fila de espera de verdad, esa es una señal de que ya superó lo que una hoja de cálculo puede resolver. Más sobre eso más adelante.
Códigos QR + entrega y devolución: escanear en vez de escribir
Si leyó la sección de códigos QR de la guía principal, ya sabe que el etiquetado de activos con QR cambia por completo las reglas del juego. Para un sistema de entrega y devolución en particular, la combinación es increíblemente poderosa.
Aquí está la configuración que funciona de maravilla, y es más fácil de lo que piensa.
El circuito QR → formulario → hoja de cálculo
Paso 1: cree un formulario de entrega y devolución en Google Sheets (mediante Google Forms).
Campos:
- Código de activo (respuesta corta, precargado mediante el QR)
- Su nombre (lista desplegable, la misma lista de personal de la hoja de configuración)
- Acción: Entrega o Devolución (botones de opción)
- Devolución prevista (campo de fecha, solo visible para entregas)
- Motivo (respuesta corta)
Paso 2: codifique la URL del formulario precargado en el código QR.
Google Forms precarga campos mediante parámetros en la URL. Cree una URL que precargue el campo de código de activo:
https://docs.google.com/forms/d/e/SU_ID_DE_FORMULARIO/viewform?usp=pp_url&entry.ID_DEL_CAMPO=ACT-015
Genere un código QR con esta URL y péguelo en el activo. Al escanear el código del proyector, la persona cae directo en un formulario con "ACT-015" ya lleno: elige su nombre, selecciona "Entrega", fija una fecha de devolución y envía. Diez segundos.
Paso 3: enlace las respuestas del formulario con su registro de entrega y devolución.
Google Forms crea automáticamente una hoja de respuestas. Puede usarla directamente como su registro de entrega y devolución, o usar IMPORTRANGE para traer los datos a su libro principal.
Lo bueno: cero errores de escritura en los códigos (están precargados), nombres estandarizados por lista desplegable, y funciona desde cualquier celular, sin aplicación. Solo la cámara.
Errores comunes que echan a perder un sistema de entrega y devolución
Cometí todos estos. Bien podría ahorrarle el mal rato.
❌ Sin fechas de devolución obligatorias. "Solo devuélvelo cuando termines" significa que nunca vuelve. Fije siempre un plazo de préstamo por defecto: 3 días, 5 días, lo que tenga sentido para su operación. La gente se toma en serio los plazos (casi siempre).
❌ Hacer el proceso demasiado complicado. Si registrar la entrega de un activo toma más de 60 segundos, la gente se lo va a saltar. Simplemente va a tomar el objeto y va a irse. Cada campo de más, cada clic de más, cada aprobación de más reduce el cumplimiento. Simplifique sin piedad.
❌ Sin conexión entre el registro de entrega y devolución y el registro de activos. Si su registro de entrega y devolución dice que ACT-015 está con Karla, pero su registro de activos todavía dice "Disponible", tiene dos fuentes de verdad, lo que significa que no tiene ninguna. Use las fórmulas del paso 2 y la actualización automática de situación para mantenerlos sincronizados.
❌ No hacer conciliaciones periódicas. Una vez al mes, compare su registro de entrega y devolución contra la realidad. Recorra el espacio. Mire los escritorios. ¿Los artículos que figuran como "prestados" están de verdad donde deberían? Va a encontrar discrepancias, y está bien. Corregirlas es justamente el objetivo. Esto es, básicamente, un mini inventario físico.
❌ Permitir entregas "verbales". "Oye, solo lo tomo prestado por una hora." Famosas últimas palabras. Si no está en el sistema, no cuenta. Sin excepciones. Ni siquiera para su jefe. Especialmente para su jefe.
❌ Borrar las entregas ya devueltas. He visto gente que borra filas del registro de entrega y devolución después de que un artículo se devuelve, "para dejar todo limpio". No lo haga. Ese historial vale oro. Le dice qué activos se usan más, quién retira más equipo y la duración promedio del préstamo. Guarde todo. Filtre por entregas activas si quiere una vista limpia.
Cuándo una hoja de cálculo ya no alcanza
Soy fan de las hojas de cálculo, y he llevado Excel más lejos de lo razonable (o cuerdo). Pero también soy honesto: tienen límites reales para un sistema de entrega y devolución.
Ya superó su hoja de cálculo cuando:
- Tiene más de 50 activos circulando activamente
- Varias personas necesitan actualizar el registro de entrega y devolución al mismo tiempo (incluso Google Sheets tiene retrasos y conflictos a esa escala)
- Necesita notificaciones automáticas de atraso (no solo un script diario por correo)
- Necesita un sistema de reserva y fila de espera de verdad
- El escaneo y la entrega móvil desde el campo son una necesidad diaria, no ocasional
- Quiere un historial completo que no se pueda editar ni borrar por accidente
Si tres o más de estas le suenan familiares, tal vez sea momento de mirar herramientas dedicadas. Escribí sobre ese proceso de decisión en Excel o software de control de activos: cuándo cambiar. Vale la pena leerlo.
Mi recomendación honesta: pruebe UNIO24. Su flujo de entrega y devolución funciona con un solo escaneo de código QR, envía recordatorios automáticos de atraso, mantiene un historial a prueba de manipulación y funciona desde cualquier celular. El plan gratis cubre todo lo que necesita un equipo pequeño. Literalmente puede migrar desde su hoja de cálculo en una tarde.
Para cerrar
Construir un sistema de entrega y devolución en hoja de cálculo no es ciencia espacial. Construir uno que la gente de verdad use, ese es el reto real: mantenerlo tan simple que entregar un activo sea más rápido que no entregarlo. Lista desplegable en vez de escribir a mano, situación calculada sola en vez de actualización manual, fila roja para los atrasos en vez de revisar fechas a mano.
Empiece con las 10 columnas esenciales. Agregue las conexiones VLOOKUP a su registro de activos. Configure las tres reglas de formato condicional. Ese es su sistema mínimo viable de entrega y devolución, y ya es mejor que lo que tiene el 90% de las empresas pequeñas hoy.
Después, conforme crezca la necesidad, súmele la integración de formulario más código QR, los recordatorios por Apps Script y los indicadores del panel. O sáltese las dificultades del crecimiento y pase directo a UNIO24, pero al menos ahora sabe exactamente qué exigirle a un sistema de entrega y devolución, porque construyó uno desde cero.
Y la próxima vez que alguien le diga "yo creía que lo tenía otra persona", usted va a tener las pruebas.

