Plantilla de Estado de Resultados en Google Sheets
Crea una plantilla de P&L de 5 pestañas en Google Sheets con SUMIFS para datos reales, variación presupuesto vs. real y puente EBITDA.
Construye una plantilla de estado de resultados en Google Sheets con un P&L completo listo para tres estados financieros: una pestaña de Supuestos que controla todas las tasas, SUMIFS que extrae datos reales del GL, columnas de variación que se actualizan automáticamente y un puente EBITDA conectado a los cálculos de transacción. Esta guía construye las 5 pestañas desde cero y las conecta para que tus números cuadren cierre tras cierre.
Lo que necesitarás
- Acceso a Google Sheets con permisos de edición en el libro de trabajo correspondiente
- Un export del GL de tu ERP (NetSuite, QuickBooks, Xero) en formato de archivo plano con al menos estas columnas: fecha, código de cuenta, departamento e importe
- Familiaridad con SUMIFS, referencias de celda absolutas vs. relativas y rangos con nombre
- Un archivo o pestaña de Presupuesto con cifras mensuales por línea para comparar con los datos reales
- Comprensión básica de la estructura de un estado de resultados y el cálculo del EBITDA
Guía paso a paso
Diseña la Arquitectura de Pestañas de tu Plantilla de Estado de Resultados en Google Sheets
Cinco pestañas, un flujo de datos unidireccional. Cada número del modelo tiene una fuente única: GL_Raw para datos reales, Budget para el plan, Assumptions para tasas y drivers. En el P&L en sí no se escribe nada directamente.
- Assumptions** - tasa de descuento, tasa impositiva, drivers de crecimiento, costos de headcount, tasa de referencia SOFR (a mediados de 2025, ~5.3%)
- P&L** - el estado de resultados; todas las fórmulas referencian otras pestañas, sin entradas directas aquí
- GL_Raw** - el export de tu ERP, pegado o importado como tabla plana; se sobreescribe en cada cierre
- Budget** - presupuesto mensual por línea, con la misma estructura de filas que el P&L
- Variance** - delta entre presupuesto y real en valores absolutos y porcentaje, solo fórmulas
Pro Tip
Congela la fila 1 en cada pestaña y usa nombres de encabezados de columna idénticos en todas ellas. SUMIFS falla silenciosamente cuando tu export del GL usa "Dept" y tu pestaña Budget usa "Department".Configura la Pestaña de Supuestos
La pestaña Assumptions es el único lugar del modelo donde las personas escriben números. Todo lo demás se calcula.
- Define
B1como encabezadoFY2026 Assumptions; usa la columna B para valores, la columna A para etiquetas y la columna C para notas de fuente - Entradas clave:
RevenueBase($18.7M),RevenueGrowthRate(12%),GrossMarginPct(38.5%),EffectiveTaxRate(25%),DiscountRate_WACC(10.5%),DA_Annual($880,000) - Define rangos con nombre para cada una: selecciona B3, abre Datos > Rangos con nombre, nómbralo
RevenueBase. Refiérelo en cualquier parte del modelo como=RevenueBase - Bloquea la pestaña para usuarios no autorizados: Datos > Proteger hojas y rangos, restringe las ediciones a los responsables de finanzas
Pro Tip
Agrega una celdaÚltima actualización con =TODAY() en el encabezado de la pestaña Assumptions. Es una confirmación visual rápida de que el modelo no está corriendo con datos de hace seis meses antes de la llamada con el directorio.Pega y Estructura tus Datos en GL_Raw
GL_Raw es tu fuente de datos reales. Se sobreescribe en cada cierre. El P&L lee de ella; nada escribe de vuelta.
- Columnas requeridas:
Date(AAAA-MM-DD),Account_Code,Account_Name,Department,Amount,Type(Revenue/Expense o Dr/Cr) - Si tu export del ERP usa nombres de columna distintos, renombra los encabezados en GL_Raw, no las referencias de criterios en el P&L
- Google Sheets tiene un límite de 10 millones de celdas por hoja de cálculo (límites de almacenamiento de Google Workspace); un GL de 12 meses para una empresa de $20M suele tener entre 5,000 y 15,000 filas, muy por debajo del límite
- Convierte el rango en una Tabla (Formato > Convertir en tabla) para que las filas nuevas extiendan automáticamente tus rangos de SUMIFS
- Agrega una columna auxiliar
Month:=EOMONTH(A2,0)- usarás SUMIFS sobre esta columna para extraer los datos mensuales reales sin necesidad de lógica de rangos de fecha
Pro Tip
Nunca filtres ni ordenes GL_Raw manualmente. Si necesitas una vista limpia para análisis puntuales, crea una pestaña Analysis separada. Ordenar los datos crudos y guardar por accidente es la forma más rápida de perder líneas del registro.Conecta SUMIFS Entre Pestañas para Extraer Datos Reales
Aquí es donde el modelo se conecta. Cada línea del P&L extrae sus datos reales mensuales de GL_Raw usando SUMIFS con referencias entre pestañas. Según la documentación de SUMIFS de Google (última actualización 2025), la función acepta hasta 127 pares de rango/criterio, más que suficiente para filtrar por código de cuenta, departamento y mes.
Ingresos de enero de 2026 en la celda C5 de la pestaña P&L:
=SUMIFS(
GL_Raw!$E:$E,
GL_Raw!$B:$B, 'P&L'!$A5,
GL_Raw!$D:$D, 'P&L'!C$2
)
La columna A del P&L contiene los códigos de cuenta. La fila 2 contiene las fechas de fin de período (=EOMONTH("2026-01-01",0) hasta diciembre). La columna E de GL_Raw contiene los importes, la columna B los códigos de cuenta y la columna D el auxiliar EOMONTH del paso 3.
Para agregaciones de múltiples departamentos, como el COGS total entre cuentas de manufactura y logística que comparten el prefijo "4xxx":
=SUMIFS('GL_Raw'!$E:$E, 'GL_Raw'!$B:$B, "4*",
'GL_Raw'!$D:$D, 'P&L'!C$2)
+ SUMIFS('GL_Raw'!$E:$E, 'GL_Raw'!$B:$B, "5*",
'GL_Raw'!$D:$D, 'P&L'!C$2)
Bloquea la columna A con $A5 y la fila 2 con C$2. Copia a los 12 meses una vez que enero esté validado.
Pro Tip
Antes de copiar a los 12 meses, valida un cierre de mes de extremo a extremo. Extrae la misma cuenta y mes en una celda de borrador con un SUMIF simple. Si los totales no coinciden con tu salida de SUMIFS, la referencia de criterio está mal antes de que hayas copiado el error 11 veces más.Construye las Líneas del Estado de Resultados en el P&L
Con los datos reales fluyendo desde GL_Raw, el estado de resultados calcula de arriba hacia abajo. Cada subtotal es una fórmula que referencia las líneas anteriores, nunca una SUMA nueva desde cero que podría desincronizarse.
Estructura estándar para una empresa con ingresos de $15-25M:
Ingresos =SUMIFS(actuals GL_Raw, cuentas de ingresos 1xxx)
(menos) COGS =SUMIFS(actuals GL_Raw, cuentas COGS 4xxx-5xxx)
Utilidad Bruta =Ingresos - COGS
Margen Bruto % =Utilidad Bruta / Ingresos [objetivo: 38.5%]
(menos) S&M =SUMIFS(...)
(menos) R&D =SUMIFS(...)
(menos) G&A =SUMIFS(...)
EBITDA =Utilidad Bruta - OpEx
Margen EBITDA % =EBITDA / Ingresos
(menos) D&A =Assumptions!DA_Annual / 12 [$880K / 12]
EBIT =EBITDA - D&A
(menos) Gasto Financiero =Deuda * SOFR_Rate / 12
EBT =EBIT - Gasto Financiero
(menos) Impuestos =MAX(EBT,0) * EffectiveTaxRate [25%]
Utilidad Neta =EBT - Impuestos
Aplica formato condicional a las filas de margen: rojo si el margen bruto cae por debajo del 35%, amarillo entre 35-38%, verde por encima. Toma 2 minutos y te evita revisar una vista de 12 columnas buscando el mes problemático.
Pro Tip
Agrega una columnaYTD que sume de enero hasta el período actual, no el año completo. =SUMIF('P&L'!$C$2:$N$2,"<="&EOMONTH(TODAY(),0),'P&L'!C5:N5) avanza automáticamente cada mes sin tocar la fórmula.Agrega la Variación Presupuesto vs. Real a tu Plantilla de Estado de Resultados
La pestaña Variance es donde este modelo justifica su lugar en el informe trimestral para el directorio. El presupuesto está en su propia pestaña; la pestaña Variance lo compara con los datos reales del P&L línea por línea, de forma automática.
En la pestaña Variance, para enero: columna C (real), columna D (presupuesto), columna E (delta en dólares), columna F (delta en porcentaje):
=P&L!C5 - Budget!C5 [variación en dólares, negativo = incumplimiento]
=(P&L!C5 / Budget!C5) - 1 [variación porcentual]
Para una base de ingresos de $18.7M con un crecimiento presupuestado del 12%, los resultados podrían verse así:
| Línea | Real | Presupuesto | Var. $ | Var. % |
|---|---|---|---|---|
| Ingresos | $18.2M | $19.1M | -$0.9M | -4.7% |
| Utilidad Bruta | $6.9M | $7.4M | -$0.5M | -6.8% |
| EBITDA | $2.0M | $2.3M | -$0.3M | -10.9% |
Una variación de ingresos del -4.7% merece discutirse. Una variación de EBITDA del -10.9% sobre $2.3M de EBITDA ($251K de incumplimiento) es la que genera el correo de seguimiento. Aplica formato condicional a la columna de porcentaje en rojo por debajo del -5% y en amarillo entre -5% y -2%. Los umbrales de -$50K/-5% están calibrados para un negocio con EBITDA de $2-5M; ajusta el piso en valor absoluto de forma proporcional.
Pro Tip
Agrega una columna G de 'Explicación de Variación' y protégela como solo texto libre: finanzas escribe la narrativa y las fórmulas quedan bloqueadas en E y F. Esta es la columna que tu CFO mirará primero.Construye el Puente EBITDA y los Resultados de Retornos
El puente convierte tu P&L en cálculos de transacción: múltiplo EBITDA, valor empresa y valor patrimonial implícito. Si este modelo alimenta un DCF para un sindicato bancario o una actualización para LPs, esta sección es la que termina en capturas de pantalla.
En una sección Returns (parte inferior de la pestaña P&L o una pestaña separada):
LTM EBITDA =Suma de la fila EBITDA en los 12 meses [$2.3M]
EV / EBITDA Múltiplo =Assumptions!EV_Multiple [14.2x]
Valor Empresa =LTM_EBITDA * EV_Multiple [$32.6M]
(menos) Deuda Neta =DeudaTotal - EfectivoYEquivalentes
Valor Patrimonial =ValorEmpresa - DeudaNeta
Incluye el múltiplo en una tabla de datos de dos variables para análisis de sensibilidad: filas con el múltiplo EV/EBITDA (10x a 18x), columnas con el margen EBITDA (33% a 44%). Una tabla de 9 columnas por 6 filas genera 54 escenarios de valor patrimonial sin modificar ninguna fórmula del modelo. Con una base de EBITDA de $2.3M, la diferencia entre 10x y 18x representa una variación de $18.4M en el valor empresa. Ese rango pertenece al deck del directorio, no escondido detrás de un selector de escenario.
Pro Tip
El EBITDA que se usa aquí es siempre LTM (últimos doce meses), no forward. Si tu banco o comprador pide múltiplos NTM, mantén una celda separadaNTM_EBITDA en Assumptions. Nunca modifiques la fórmula SUMIFS del P&L para alternar entre LTM y NTM: así es como los modelos se rompen sin que nadie pueda rastrear qué pasó.Conclusión
Ahora tienes una plantilla de estado de resultados de 5 pestañas en Google Sheets donde cada número tiene su fuente: Assumptions controla las tasas, GL_Raw maneja los datos reales, Budget está limpio para la comparación, el P&L calcula de arriba hacia abajo y Variance señala lo que está fuera de rango. El modelo sobrevive un cierre: pega los nuevos datos del GL y todo se actualiza.
Lo que suele fallar en la práctica no son las fórmulas, sino el export del GL. Los códigos de cuenta se renombran a mitad de año, los departamentos se reestructuran y tus SUMIFS devuelven cero en silencio. Agrega una fila de verificación de conciliación al final del P&L que sume los importes totales de GL_Raw para cada mes y los compare con los ingresos totales del P&L. Si no cuadra dentro de $1, algo cambió en los datos fuente antes de que enviaras el informe al directorio.
Para equipos que ejecutan este modelo contra datos de MRR en vivo de Stripe o del pipeline de HubSpot, el paso de descargar y pegar el CSV rompe el ciclo de actualización. Elige un plan de ModelMonkey: conecta datos de facturación y CRM en vivo directamente a tu pestaña de datos reales sin romper la estructura de SUMIFS que construiste.
Preguntas frecuentes
¿Cuántas pestañas debe tener una plantilla de estado de resultados en Google Sheets?
Cinco pestañas cubren la mayoría de los casos de uso para una empresa mediana: Assumptions, P&L, GL_Raw, Budget y Variance. Agrega una pestaña Returns si el modelo alimenta un análisis de transacción. La regla clave es no poner entradas y salidas en la misma pestaña: es la forma más rápida de dejar un número escrito directamente que olvidarás en tres meses.
¿Puede SUMIFS manejar un año completo de datos del GL con múltiples departamentos?
Sí. Según la documentación de SUMIFS de Google, la función soporta hasta 127 pares de rango/criterio, y Google Sheets maneja hasta 10 millones de celdas por hoja de cálculo. Un export del GL de 12 meses para una empresa de $20M suele tener entre 5,000 y 15,000 filas, muy por debajo de ambos límites. El rendimiento solo se degrada de forma notable por encima de 50,000 filas con múltiples criterios complejos.
¿Cómo manejo cambios en los códigos de cuenta a mitad de año en el export del GL?
Agrega una columna de mapeo en GL_Raw que traduzca los códigos anteriores al catálogo de cuentas actual. Ejecuta tus SUMIFS contra la columna mapeada, no contra la columna de código de cuenta crudo. Así, un cambio de nombre de departamento en octubre no rompe tus datos reales de enero, y tienes un registro documentado de qué cambió y cuándo.
¿Qué múltiplo EV/EBITDA es el correcto para una empresa con ingresos de $15-25M?
Depende del sector, la tasa de crecimiento y las condiciones actuales del mercado, no es una pregunta de Sheets. Para fines de modelado, parametrízalo en la pestaña Assumptions (esta guía usa 14.2x como referencia) y construye una tabla de sensibilidad que cubra de 10x a 18x. El trabajo del modelo es mostrar un rango; la selección del múltiplo corresponde a la conversación de la transacción, no a un valor fijo en una sola celda.
¿Cómo automatizo la actualización mensual del GL sin pegar datos manualmente?
El método más limpio dentro de Sheets es una macro que limpia GL_Raw desde la fila 2 hacia abajo y pega el nuevo export en un solo paso. Si tu ERP exporta a Google Drive como CSV, Apps Script puede automatizar el pegado con una programación. Para fuentes de datos en vivo como Stripe o HubSpot, una conexión directa via API a la pestaña elimina el paso del CSV por completo.