Informes financieros en Power BI: P&L, balance, flujo de caja
Los directores financieros que reemplazaron los paquetes financieros estáticos de Excel con paneles de Power BI reportan una reducción del 60 al 80 % en el tiempo de generación de informes de cierre de fin de mes. La razón: en lugar de ensamblar manualmente tablas de pérdidas y ganancias, formatear balances y enviar archivos PDF por correo electrónico, publican una vez y cada parte interesada (miembros de la junta directiva, jefes de departamento, inversores) ve los datos en vivo filtrados en su vista relevante.
La creación de estados financieros en Power BI es arquitectónicamente diferente de la creación de paneles operativos o de ventas. Los estados financieros requieren un mapeo preciso de las cuentas, comparaciones de períodos al detalle y transparencia en los registros de auditoría. Esta guía muestra la implementación completa: modelo de datos, clasificación de cuentas, estructura de pérdidas y ganancias, visualización del balance, cascada de flujo de efectivo y las fórmulas de inteligencia temporal de DAX que hacen que todo funcione.
Conclusiones clave
- Los informes financieros requieren un modelo de datos a nivel de transacción del libro mayor (no extractos de informes preagregados)
- La tabla de clasificación de cuentas asigna el plan de cuentas a las categorías de PyG / Balance / Flujo de efectivo
- El objeto visual de matriz con columnas calculadas es el mejor objeto visual de Power BI para el formato de declaración
- Inteligencia de tiempo: DATESYTD, SAMEPERIODLASTYEAR y PARALLELPERIOD manejan todas las comparaciones de períodos
- El estado de flujo de efectivo utiliza el método indirecto: Utilidad Neta → Ajustes de Capital de Trabajo → CF Operativo
- Las medidas de análisis de variaciones (real frente a presupuesto) son esenciales para los informes de gestión
- La seguridad a nivel de fila en la dimensión subsidiaria controla qué entidades ve cada lector
- Los informes paginados (Power BI Report Builder) exportan declaraciones con píxeles perfectos a PDF para paquetes de tableros
Modelo de datos para informes financieros
Tablas principales
GL_Transactions (tabla de hechos: una fila por línea de asiento de diario):
| Columna | Tipo | Descripción |
|---|---|---|
| CÓDIGO0 | Texto | Número de asiento de diario o de transacción |
| CÓDIGO0 | internacional | Número de línea dentro de la transacción |
| CÓDIGO0 | Texto | FK al plan de cuentas |
| CÓDIGO0 | Fecha | Fecha de transacción |
| CÓDIGO0 | Fecha | Fecha de publicación en GL |
| CÓDIGO0 | Texto | Período fiscal (por ejemplo, "2026-03") |
| CÓDIGO0 | decimales | Importe del débito (positivo) |
| CÓDIGO0 | decimales | Importe del crédito (positivo) |
| CÓDIGO0 | decimales | Débito - Crédito |
| CÓDIGO0 | Texto | FK a filial |
| CÓDIGO0 | Texto | FK al Departamento |
| CÓDIGO0 | Texto | FK a Proyecto (opcional) |
| CÓDIGO0 | Texto | Nota de transacción |
Plan_de_cuentas (dimensión):
| Columna | Descripción |
|---|---|
| CÓDIGO0 | Código de cuenta interna |
| CÓDIGO0 | Mostrar número de cuenta |
| CÓDIGO0 | Nombre de cuenta |
| CÓDIGO0 | Activo, Pasivo, Patrimonio, Ingresos, Gastos |
| CÓDIGO0 | Activo circulante, activo fijo, COGS, gastos operativos, etc. |
| CÓDIGO0 | PyG, balance general o flujo de caja |
| CÓDIGO0 | Ingresos, COGS, beneficio bruto, gastos operativos, EBITDA, ingresos netos |
| CÓDIGO0 | Activos circulantes, Activos fijos, Pasivos circulantes, Pasivos a largo plazo, Patrimonio |
| CÓDIGO0 | Operación, Inversión, Financiamiento |
| CÓDIGO0 | Para pedidos de estados de cuenta personalizados |
| CÓDIGO0 | Para resumen de jerarquía |
| CÓDIGO0 | Bandera para entradas eliminatorias |
Presupuesto (tabla de datos opcional):
| Columna | Descripción |
|---|---|
| CÓDIGO0 | FK al plan de cuentas |
| CÓDIGO0 | Período fiscal |
| CÓDIGO0 | Importe presupuestado |
| CÓDIGO0 | Presupuesto, Previsión, Revisado |
| CÓDIGO0 | FK a filial |
Estructura del estado de pérdidas y ganancias
Clasificación de cuentas para P&L
La estructura de la sección P&L debe asignar su plan de cuentas a las categorías estándar de P&L:
Revenue
- Product Revenue
- Service Revenue
- Other Revenue
Cost of Goods Sold
- Product COGS
- Direct Labor
- Manufacturing Overhead
= Gross Profit
Operating Expenses
- Sales & Marketing
- General & Administrative
- Research & Development
- Depreciation & Amortization
= EBITDA / Operating Income
Other Income / Expense
- Interest Income
- Interest Expense
- Foreign Exchange
= Net Income Before Tax
- Income Tax Expense
= Net Income
Medidas DAX para P&L
// Core GL amount measure (handles sign convention)
GL Amount =
SUMX(
GL_Transactions,
SWITCH(
RELATED(Chart_of_Accounts[AccountType]),
"Revenue", GL_Transactions[CreditAmount] - GL_Transactions[DebitAmount],
"Expense", GL_Transactions[DebitAmount] - GL_Transactions[CreditAmount],
"Asset", GL_Transactions[DebitAmount] - GL_Transactions[CreditAmount],
"Liability", GL_Transactions[CreditAmount] - GL_Transactions[DebitAmount],
"Equity", GL_Transactions[CreditAmount] - GL_Transactions[DebitAmount],
GL_Transactions[NetAmount]
)
)
// Revenue
Total Revenue =
CALCULATE([GL Amount], Chart_of_Accounts[PLSection] = "Revenue")
// COGS
Total COGS =
CALCULATE([GL Amount], Chart_of_Accounts[PLSection] = "COGS")
// Gross Profit
Gross Profit = [Total Revenue] - [Total COGS]
// Gross Margin %
Gross Margin % = DIVIDE([Gross Profit], [Total Revenue], 0)
// Operating Expenses
Total OpEx =
CALCULATE([GL Amount], Chart_of_Accounts[PLSection] = "Operating Expense")
// EBITDA
EBITDA = [Gross Profit] - [Total OpEx]
// D&A (addback for EBITDA from EBIT)
DA Addback =
CALCULATE(
[GL Amount],
Chart_of_Accounts[AccountName] IN {"Depreciation", "Amortization"}
)
// Net Income
Net Income =
[EBITDA] +
CALCULATE([GL Amount], Chart_of_Accounts[PLSection] = "Other Income/Expense") -
CALCULATE([GL Amount], Chart_of_Accounts[PLSection] = "Tax Expense")
Inteligencia de tiempo de pérdidas y ganancias
// Prior Year same period
PY Revenue = CALCULATE([Total Revenue], SAMEPERIODLASTYEAR(Date[Date]))
// YTD Revenue
YTD Revenue = CALCULATE([Total Revenue], DATESYTD(Date[Date]))
// Prior YTD Revenue
PY YTD Revenue = CALCULATE([YTD Revenue], SAMEPERIODLASTYEAR(Date[Date]))
// Budget Variance
Revenue Budget Variance =
[Total Revenue] -
CALCULATE(SUM(Budget[BudgetAmount]), Budget[ScenarioID] = "Budget")
// Budget Variance %
Revenue Budget Var % =
DIVIDE([Revenue Budget Variance],
CALCULATE(SUM(Budget[BudgetAmount]), Budget[ScenarioID] = "Budget"), 0)
// Rolling 12-Month Revenue
R12M Revenue =
CALCULATE(
[Total Revenue],
DATESINPERIOD(Date[Date], LASTDATE(Date[Date]), -12, MONTH)
)
Diseño visual de matriz de pérdidas y ganancias
El objeto visual recomendado para un estado de pérdidas y ganancias es una matriz:
- Filas: partidas de pérdidas y ganancias (de
Chart_of_Accounts[PLSection]con subtotales) - Columnas: Períodos (meses, trimestres, YTD)
- Valores: Monto real, Monto presupuestado, Variación $, Variación %
Configurar la matriz:
- Habilite subtotales a nivel de sección (total de ingresos, total de COGS, etc.)
- Utilice formato condicional: rojo = variación desfavorable, verde = favorable
- Aplicar orden de clasificación personalizado a través de
Chart_of_Accounts[SortOrder] - Dar formato a los números:
£#,##0Kpara miles,0.0%para porcentajes
Visualización del balance
Estructura del balance
Assets
Current Assets
- Cash and Equivalents
- Accounts Receivable
- Inventory
- Prepaid Expenses
Fixed Assets
- Property, Plant & Equipment (net)
- Intangible Assets
- Goodwill
= Total Assets
Liabilities
Current Liabilities
- Accounts Payable
- Accrued Expenses
- Deferred Revenue
- Short-term Debt
Long-term Liabilities
- Long-term Debt
- Deferred Tax
= Total Liabilities
Equity
- Common Stock
- Retained Earnings
- Additional Paid-In Capital
= Total Equity
= Total Liabilities + Equity
Medidas del DAX del balance
Las medidas del balance utilizan el saldo (acumulado) en lugar de los montos del período: todas las transacciones desde el inicio hasta la fecha seleccionada:
// Balance Sheet uses cumulative amounts (not period totals)
BS Amount =
CALCULATE(
[GL Amount],
FILTER(
ALL(Date),
Date[Date] <= MAX(Date[Date])
)
)
// Total Current Assets
Current Assets =
CALCULATE([BS Amount], Chart_of_Accounts[BSSection] = "Current Assets")
// Total Fixed Assets (net of depreciation)
Fixed Assets =
CALCULATE([BS Amount], Chart_of_Accounts[BSSection] = "Fixed Assets")
// Total Assets
Total Assets = [Current Assets] + [Fixed Assets]
// Total Current Liabilities
Current Liabilities =
CALCULATE([BS Amount], Chart_of_Accounts[BSSection] = "Current Liabilities")
// Total Equity
Total Equity =
CALCULATE([BS Amount], Chart_of_Accounts[BSSection] = "Equity")
// Balance Sheet Check (must equal 0 for a balanced BS)
BS Balance Check =
[Total Assets] - ([Current Liabilities] +
CALCULATE([BS Amount], Chart_of_Accounts[BSSection] = "Long-term Liabilities") +
[Total Equity])
// Key Ratios
Current Ratio = DIVIDE([Current Assets], [Current Liabilities], 0)
Quick Ratio =
DIVIDE(
[Current Assets] -
CALCULATE([BS Amount], Chart_of_Accounts[AccountSubType] = "Inventory"),
[Current Liabilities],
0
)
Debt to Equity = DIVIDE([Current Liabilities], [Total Equity], 0)
Patrón de visualización del balance
Utilice una combinación de elementos visuales:
- Matriz para la tabla del balance completo (misma estructura que la matriz de pérdidas y ganancias)
- Gráfico de barras apiladas para Activos vs Pasivos + Patrimonio (tendencia durante 12 meses)
- Tarjetas KPI para ratio actual, ratio rápido, deuda/capital
- Indicador de capital de trabajo versus objetivo
Estado de flujo de efectivo (método indirecto)
El método indirecto comienza con la utilidad neta y se ajusta por partidas no monetarias y cambios en el capital de trabajo.
Operating Activities:
+ Net Income
+ Depreciation & Amortization
+ / - Changes in Working Capital:
+ Decrease / - Increase in Accounts Receivable
+ Decrease / - Increase in Inventory
- Decrease / + Increase in Accounts Payable
- Decrease / + Increase in Accrued Expenses
= Net Cash from Operations
Investing Activities:
- Capital Expenditures (PP&E additions)
+ Proceeds from Asset Sales
= Net Cash from Investing
Financing Activities:
+ Debt Proceeds
- Debt Repayments
- Dividends Paid
+ Equity Raised
= Net Cash from Financing
= Net Change in Cash
+ Beginning Cash Balance
= Ending Cash Balance
Medidas DAX de flujo de caja
// Period-over-Period change in Accounts Receivable
AR Change =
VAR CurrentAR = CALCULATE([BS Amount], Chart_of_Accounts[AccountSubType] = "Accounts Receivable")
VAR PriorAR = CALCULATE(
[BS Amount],
Chart_of_Accounts[AccountSubType] = "Accounts Receivable",
DATEADD(Date[Date], -1, MONTH)
)
RETURN PriorAR - CurrentAR // Decrease in AR = positive cash impact
// Change in Inventory
Inventory Change =
VAR CurrentInv = CALCULATE([BS Amount], Chart_of_Accounts[AccountSubType] = "Inventory")
VAR PriorInv = CALCULATE([BS Amount], Chart_of_Accounts[AccountSubType] = "Inventory",
DATEADD(Date[Date], -1, MONTH))
RETURN PriorInv - CurrentInv
// Capital Expenditures (negative — cash outflow)
CapEx =
-CALCULATE(
[GL Amount],
Chart_of_Accounts[AccountSubType] = "Fixed Asset Addition",
Chart_of_Accounts[CFSection] = "Investing"
)
// Net Cash from Operations
Operating Cash Flow =
[Net Income] +
[DA Addback] +
[AR Change] +
[Inventory Change] +
CALCULATE([GL Amount], Chart_of_Accounts[AccountSubType] = "Accounts Payable Change")
// Free Cash Flow
Free Cash Flow = [Operating Cash Flow] + [CapEx]
Gráfico de cascada de flujo de caja
El gráfico en cascada es la imagen ideal para el flujo de caja:
- Cree una tabla calculada con las partidas de flujo de efectivo y sus montos.
- Utilice el objeto visual del gráfico en cascada (integrado en Power BI)
- Configure las categorías "Aumentar" y "Disminuir" para mostrar la contribución de cada elemento.
- Marque "Efectivo neto de operaciones", "Efectivo neto de inversiones", "Efectivo neto de financiación" como subtotales.
- Marque "Saldo de caja final" como total
Análisis de varianza: real versus presupuesto versus pronóstico
// Scenario selector (works with a scenario slicer)
Selected Measure =
SWITCH(
SELECTEDVALUE(Scenario[Scenario]),
"Budget", SUM(Budget[Amount]),
"Forecast", CALCULATE(SUM(Budget[Amount]), Budget[ScenarioID] = "Q2 Forecast"),
[Total Revenue] -- default to Actual
)
// Traffic light variance
Variance Status =
VAR Var% = [Revenue Budget Var %]
RETURN
SWITCH(TRUE(),
Var% >= 0.05, "Favorable",
Var% >= -0.05, "On Track",
"Unfavorable"
)
Preguntas frecuentes
¿Puede Power BI reemplazar nuestro módulo de informes financieros ERP existente?
Power BI puede reemplazar la mayoría de los informes financieros estándar (PyG, balance general, flujo de caja, envejecimiento de AR) con equivalentes más flexibles e interactivos. Sin embargo, los estados financieros legales (certificados GAAP/IFRS), los informes listos para auditoría con controles de firma y las funciones de publicación de transacciones permanecen en el ERP. El enfoque óptimo: utilice ERP para el control y el cumplimiento de las transacciones, Power BI para la generación de informes de gestión y análisis a nivel de junta directiva.
¿Cómo me aseguro de que mis pérdidas y ganancias en Power BI coincidan exactamente con el ERP?
El problema de conciliación más común son las convenciones de signos: los ERP definen si las cuentas de ingresos tienen saldos normales de crédito o débito, y Power BI debe aplicar la misma lógica. Cree una medida de prueba que sume todas las entradas del libro mayor (débitos + créditos) y verifique que sea igual a cero para un período cerrado. Luego compare sus totales de pérdidas y ganancias con el informe de pérdidas y ganancias nativo del ERP período por período hasta que coincidan.
¿Se pueden consolidar varias subsidiarias en un informe financiero de Power BI?
Sí, esta es una de las principales ventajas de Power BI sobre muchos módulos de informes financieros de ERP. Importe datos del libro mayor de todas las subsidiarias con una columna SubsidiaryID y luego cree medidas de consolidación que sumen todas las subsidiarias. Para eliminaciones entre compañías, marque las cuentas entre compañías en el Plan de cuentas y exclúyalas de las medidas consolidadas. La conversión de moneda requiere una tabla de tipos de cambio adjunta a la fecha de la transacción.
¿Cómo creo informes PDF con calidad de paquete de tablero desde Power BI?
Power BI Report Builder (informes paginados) crea resultados PDF con píxeles perfectos: formato profesional, saltos de página, encabezados y pies de página y diseños de tablas precisos. Esto es independiente de Power BI Desktop pero utiliza los mismos conjuntos de datos. Para los paquetes de tableros, cree el comentario de gestión en Word, genere las tablas financieras mediante informes paginados y combine a través de Power Automate en un cronograma mensual. Se requiere una licencia Power BI Premium o PPU para los informes paginados.
¿Cuál es la mejor manera de manejar los años fiscales que no coinciden con los años calendario?
Cree una tabla de fechas personalizada en DAX o Power Query que incluya una columna FiscalYear, FiscalQuarter y FiscalPeriod según el mes de inicio del año fiscal. Marque esta tabla como tabla de fechas en Power BI. Utilice DATESYTD con el parámetro de fecha de finalización del año fiscal: CALCULATE([Revenue], DATESYTD(Date[Date], "3/31")) para el final del año fiscal en marzo. Todas las funciones de inteligencia horaria aceptan este parámetro opcional de fin de año.
Próximos pasos
Los informes financieros en Power BI requieren un modelado de datos más cuidadoso que los paneles operativos: las convenciones de firma de cuentas, la lógica acumulativa del balance y los cálculos del método indirecto del flujo de efectivo necesitan una implementación precisa. Cuando se hace correctamente, el resultado es un panel de CFO que reemplaza semanas de trabajo en Excel con minutos de exploración.
ECOSIRE combina la experiencia en Power BI con un profundo conocimiento en contabilidad y finanzas. Nuestros servicios de desarrollo de paneles de Power BI incluyen un diseño completo de estados financieros y nuestros servicios de contabilidad cubren la calidad de los datos y la estructuración del plan de cuentas que hace que los paneles financieros sean confiables.
Póngase en contacto con nuestro equipo de análisis financiero para analizar sus requisitos de informes financieros y diseñar una arquitectura Power BI que brinde a su equipo de liderazgo la visibilidad financiera que necesita.
Escrito por
ECOSIRE Research and Development Team
Construyendo productos digitales de nivel empresarial en ECOSIRE. Compartiendo perspectivas sobre integraciones Odoo, automatización de eCommerce y soluciones empresariales impulsadas por IA.
Artículos relacionados
AI-Powered Accounting Automation: What Works in 2026
Discover which AI accounting automation tools deliver real ROI in 2026, from bank reconciliation to predictive cash flow, with implementation strategies.
Audit Preparation Checklist: Getting Your Books Ready
Complete audit preparation checklist covering financial statement readiness, supporting documentation, internal controls documentation, auditor PBC lists, and common audit findings.
Australian GST Guide for eCommerce Businesses
Complete Australian GST guide for eCommerce businesses covering ATO registration, the $75,000 threshold, low value imports, BAS lodgement, and GST for digital services.