Financial Reporting in Power BI: P&L, Balance Sheet, Cash Flow

Build complete financial statements in Power BI — Profit & Loss, Balance Sheet, and Cash Flow waterfall — with DAX time intelligence formulas and CFO-ready dashboard design.

E
ECOSIRE Research and Development Team
|19 de março de 202611 min de leitura2.5k Palavras|

Relatórios Financeiros no Power BI: P&L, Balanço, Fluxo de Caixa

Os CFOs que substituíram os pacotes financeiros estáticos do Excel por painéis do Power BI relatam uma redução de 60 a 80% no tempo de relatório de fechamento do mês. O motivo: em vez de montar manualmente tabelas de lucros e perdas, formatar balanços e enviar PDFs por e-mail, eles publicam uma vez e todas as partes interessadas – membros do conselho, chefes de departamento, investidores – veem os dados em tempo real filtrados para sua visualização relevante.

A construção de demonstrações financeiras no Power BI é arquitetonicamente diferente da construção de painéis operacionais ou de vendas. As demonstrações financeiras exigem mapeamento preciso das contas, comparações de períodos até o centavo e transparência da trilha de auditoria. Este guia mostra a implementação completa: modelo de dados, classificação de contas, estrutura de lucros e perdas, visualização de balanço, cascata de fluxo de caixa e fórmulas de inteligência de tempo DAX que fazem tudo funcionar.

Principais conclusões

  • Os relatórios financeiros requerem um modelo de dados em nível de transação GL (não extratos de relatórios pré-agregados)
  • A tabela de classificação de contas mapeia o plano de contas para as categorias P&L / Balanço Patrimonial / Fluxo de Caixa
  • O visual de matriz com colunas calculadas é o melhor visual do Power BI para formato de extrato
  • Inteligência de tempo: DATESYTD, SAMEPERIODLASTYEAR e PARALLELPERIOD lidam com todas as comparações de período
  • A demonstração do fluxo de caixa utiliza o método indireto: Lucro Líquido → Ajustes de Capital de Giro → FC Operacional
  • As medidas de análise de variação (real versus orçamento) são essenciais para os relatórios de gestão
  • A segurança em nível de linha na dimensão subsidiária controla quais entidades cada leitor vê
  • Relatórios paginados (Power BI Report Builder) exportam declarações com pixels perfeitos para PDF para pacotes de quadro

Modelo de dados para relatórios financeiros

Tabelas principais

GL_Transactions (tabela de fatos — uma linha por linha de lançamento contábil manual):

ColunaTipoDescrição
CÓDIGO0TextoLançamento contábil manual ou número da transação
CÓDIGO0InternacionalNúmero da linha na transação
CÓDIGO0TextoFK para plano de contas
CÓDIGO0DataData da transação
CÓDIGO0DataData de postagem no GL
CÓDIGO0TextoPeríodo fiscal (por exemplo, "2026-03")
CÓDIGO0DecimaisMontante do débito (positivo)
CÓDIGO0DecimaisMontante do crédito (positivo)
CÓDIGO0DecimaisDébito - Crédito
CÓDIGO0TextoFK para subsidiária
CÓDIGO0TextoFK para Departamento
CÓDIGO0TextoFK para Projeto (opcional)
CÓDIGO0TextoMemorando de transação

Gráfico_de_Contas (dimensão):

ColunaDescrição
CÓDIGO0Código de conta interno
CÓDIGO0Exibir número da conta
CÓDIGO0Nome da conta
CÓDIGO0Ativo, Passivo, Patrimônio Líquido, Receita, Despesa
CÓDIGO0Ativo Circulante, Ativo Fixo, CPV, Despesa Operacional, etc.
CÓDIGO0P&L, Balanço ou Fluxo de Caixa
CÓDIGO0Receita, CPV, Lucro Bruto, Despesa Operacional, EBITDA, Lucro Líquido
CÓDIGO0Ativo circulante, ativo imobilizado, passivo circulante, passivo de longo prazo, patrimônio líquido
CÓDIGO0Operacional, Investimento, Financiamento
CÓDIGO0Para pedidos de extratos personalizados
CÓDIGO0Para acúmulo de hierarquia
CÓDIGO0Sinalizador para entradas de eliminação

Orçamento (tabela de fatos opcional):

ColunaDescrição
CÓDIGO0FK para plano de contas
CÓDIGO0Período fiscal
CÓDIGO0Montante orçamentado
CÓDIGO0Orçamento, Previsão, Revisado
CÓDIGO0FK para subsidiária

Estrutura da demonstração de lucros e perdas

Classificação de contas para lucros e perdas

A estrutura da seção de lucros e perdas deve mapear seu plano de contas para categorias de lucros e perdas padrão:

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 lucros e perdas

// 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")

Inteligência de tempo de P&L

// 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)
)

Matriz de P&L Design Visual

O visual recomendado para uma demonstração de lucros e perdas é uma matriz:

  • Linhas: itens de linha de lucros e perdas (de Chart_of_Accounts[PLSection] com subtotais)
  • Colunas: Períodos (meses, trimestres, acumulados no ano)
  • Valores: Valor real, Valor do orçamento, Variação $, % de variação

Configure a Matriz:

  1. Habilite subtotais no nível da seção (total de receita, total de CPV, etc.)
  2. Use formatação condicional: Vermelho = variação desfavorável, Verde = favorável
  3. Aplique ordem de classificação personalizada via Chart_of_Accounts[SortOrder]
  4. Formate os números: £#,##0K para milhares, 0.0% para porcentagens

Visualização do Balanço

Estrutura do Balanço

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 DAX do balanço patrimonial

As medidas do balanço patrimonial usam o saldo (cumulativo) em vez dos valores do período — todas as transações desde o início até a data selecionada:

// 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)

Padrão de visualização de balanço patrimonial

Use uma combinação de recursos visuais:

  1. Matriz para a tabela de balanço completo (mesma estrutura da matriz de lucros e perdas)
  2. Gráfico de barras empilhadas para Ativos vs Passivos + Patrimônio Líquido (tendência em 12 meses)
  3. Cartões KPI para Índice Atual, Índice Rápido, Dívida/Patrimônio Líquido
  4. Medidor de capital de giro versus meta

Demonstração do Fluxo de Caixa (Método Indireto)

O método indireto começa com o Lucro Líquido e ajusta para itens não monetários e variações de capital de giro.

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 fluxo de caixa

// 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 em cascata do fluxo de caixa

O gráfico em cascata é o visual ideal para fluxo de caixa:

  1. Crie uma tabela calculada com os itens de linha do fluxo de caixa e seus valores
  2. Use o visual do gráfico em cascata (integrado ao Power BI)
  3. Configure as categorias “Aumentar” e “Diminuir” para mostrar a contribuição de cada item
  4. Marque "Caixa Líquido das Operações", "Caixa Líquido dos Investimentos", "Caixa Líquido dos Financiamentos" como subtotais
  5. Marque "Saldo de caixa final" como um total

Análise de Variância: Real x Orçamento x Previsão

// 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"
)

Perguntas frequentes

O Power BI pode substituir nosso módulo de relatórios financeiros ERP existente?

O Power BI pode substituir a maioria dos relatórios financeiros padrão (P&L, Balanço Patrimonial, Fluxo de Caixa, AR Aging) por equivalentes mais flexíveis e interativos. No entanto, as demonstrações financeiras estatutárias (com certificação GAAP/IFRS), os relatórios prontos para auditoria com controles de assinatura e as funções de lançamento transacional permanecem no ERP. A abordagem ideal: use ERP para controle transacional e conformidade, Power BI para relatórios gerenciais e análises em nível de conselho.

Como posso garantir que meu P&L no Power BI corresponda exatamente ao ERP?

O problema de reconciliação mais comum são as convenções de sinalização: os ERPs definem se as contas de receita têm saldos normais de crédito ou débito, e o Power BI deve aplicar a mesma lógica. Crie uma medida de teste que some todos os lançamentos contábeis (débitos + créditos) e verifique se é igual a zero para um período fechado. Em seguida, compare seus totais de lucros e perdas com o relatório de lucros e perdas nativo do ERP, período por período, até que eles correspondam.

É possível consolidar várias subsidiárias em um relatório financeiro do Power BI?

Sim — esta é uma das principais vantagens do Power BI em relação a muitos módulos de relatórios financeiros de ERP. Importe dados contábeis de todas as subsidiárias com uma coluna SubsidiaryID e, em seguida, crie medidas de consolidação que somam todas as subsidiárias. Para eliminações entre empresas, marque as contas entre empresas no Plano de Contas e exclua-as das medidas consolidadas. A conversão de moeda requer uma tabela de taxas de câmbio associada à data da transação.

Como posso criar relatórios PDF com qualidade de pacote de quadro no Power BI?

O Power BI Report Builder (relatórios paginados) cria saídas em PDF com pixels perfeitos — formatação profissional, quebras de página, cabeçalhos/rodapés e layouts de tabela precisos. Isso é separado do Power BI Desktop, mas usa os mesmos conjuntos de dados. Para pacotes de quadro, crie comentários de gerenciamento no Word, gere as tabelas financeiras por meio de relatórios paginados e combine via Power Automate em uma programação mensal. A licença do Power BI Premium ou PPU é necessária para relatórios paginados.

Qual é a melhor maneira de lidar com anos fiscais que não correspondem aos anos civis?

Crie uma tabela de datas personalizada no DAX ou no Power Query que inclua uma coluna FiscalYear, FiscalQuarter e FiscalPeriod com base no mês de início do ano fiscal. Marque esta tabela como uma tabela de datas no Power BI. Use DATESYTD com o parâmetro de data de término do ano fiscal: CALCULATE([Revenue], DATESYTD(Date[Date], "3/31")) para o final do ano fiscal em março. Todas as funções de inteligência temporal aceitam este parâmetro opcional de final de ano.


Próximas etapas

Os relatórios financeiros no Power BI exigem uma modelagem de dados mais cuidadosa do que os painéis operacionais – convenções de sinalização de contas, lógica cumulativa de balanço e cálculos de métodos indiretos de fluxo de caixa, todos precisam de implementação precisa. Quando feito corretamente, o resultado é um painel do CFO que substitui semanas de trabalho no Excel por minutos de exploração.

ECOSIRE combina experiência em Power BI com profundo conhecimento de contabilidade e finanças. Nossos serviços de desenvolvimento de painéis do Power BI incluem o design completo de demonstrativos financeiros e nossos serviços de contabilidade cobrem a qualidade dos dados e a estruturação do plano de contas que torna os painéis financeiros confiáveis.

Entre em contato com nossa equipe de análise financeira para discutir seus requisitos de relatórios financeiros e projetar uma arquitetura do Power BI que dê à sua equipe de liderança a visibilidade financeira necessária.

E

Escrito por

ECOSIRE Research and Development Team

Construindo produtos digitais de nível empresarial na ECOSIRE. Compartilhando insights sobre integrações Odoo, automação de e-commerce e soluções de negócios com IA.

Converse no WhatsApp