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. März 202610 Min. Lesezeit2.1k Wörter|

Finanzberichterstattung in Power BI: Gewinn- und Verlustrechnung, Bilanz, Cashflow

CFOs, die statische Excel-Finanzpakete durch Power BI-Dashboards ersetzt haben, berichten von einer Reduzierung der Berichtszeit zum Monatsende um 60–80 %. Der Grund: Anstatt Gewinn- und Verlusttabellen manuell zusammenzustellen, Bilanzen zu formatieren und PDFs per E-Mail zu versenden, veröffentlichen sie einmalig und jeder Stakeholder – Vorstandsmitglieder, Abteilungsleiter, Investoren – sieht Live-Daten, gefiltert nach seiner relevanten Ansicht.

Die Erstellung von Finanzberichten in Power BI unterscheidet sich architektonisch von der Erstellung von Vertriebs- oder Betriebsdashboards. Abschlüsse erfordern eine präzise Kontenabbildung, Cent-genaue Periodenvergleiche und Audit-Trail-Transparenz. Dieser Leitfaden zeigt die vollständige Implementierung: Datenmodell, Kontoklassifizierung, GuV-Struktur, Bilanzvisualisierung, Cashflow-Wasserfall und die DAX-Time-Intelligence-Formeln, mit denen alles funktioniert.

Wichtige Erkenntnisse

  • Für die Finanzberichterstattung ist ein Datenmodell auf GL-Transaktionsebene erforderlich (keine voraggregierten Berichtsauszüge).
  • Die Kontenklassifizierungstabelle ordnet den Kontenplan den GuV-/Bilanz-/Cashflow-Kategorien zu – Matrix-Visual mit berechneten Spalten ist das beste Power BI-Visual für das Kontoauszugsformat
  • Zeitintelligenz: DATESYTD, SAMEPERIODLASTYEAR und PARALLELPERIOD verarbeiten alle Periodenvergleiche
  • Die Kapitalflussrechnung verwendet die indirekte Methode: Nettoeinkommen → Anpassungen des Betriebskapitals → Betriebs-CF
  • Abweichungsanalysemaßnahmen (Ist vs. Budget) sind für die Managementberichterstattung unerlässlich – Die Sicherheit auf Zeilenebene für untergeordnete Dimensionen steuert, welche Entitäten jeder Leser sieht
  • Paginierte Berichte (Power BI Report Builder) exportieren pixelgenaue Aussagen in PDF für Board-Pakete

Datenmodell für die Finanzberichterstattung

Kerntabellen

GL_Transactions (Faktentabelle – eine Zeile pro Journaleintragszeile):

SpalteGeben Sieein Beschreibung
TransactionIDTextJournaleintrag oder Transaktionsnummer
LineIDIntZeilennummer innerhalb der Transaktion
AccountIDTextFK zum Kontenplan
TransDateDatumTransaktionsdatum
PostingDateDatumDatum der Veröffentlichung im Hauptbuch
PeriodTextGeschäftsjahr (z. B. „2026–03“)
DebitAmountDezimalSollbetrag (positiv)
CreditAmountDezimalKreditbetrag (positiv)
NetAmountDezimalLastschrift - Haben
SubsidiaryIDTextFK zur Tochtergesellschaft
DepartmentIDTextFK zur Abteilung
ProjectIDTextFK zu Projekt (optional)
DescriptionTextTransaktionsnotiz

Chart_of_Accounts (Dimension):

SpalteBeschreibung
AccountIDInterner Kontocode
AccountNumberKontonummer anzeigen
AccountNameKontoname
AccountTypeVermögenswerte, Verbindlichkeiten, Eigenkapital, Einnahmen, Ausgaben
AccountSubTypeUmlaufvermögen, Anlagevermögen, COGS, Betriebskosten usw.
StatementSectionGewinn- und Verlustrechnung, Bilanz oder Cashflow
PLSectionUmsatz, COGS, Bruttogewinn, Betriebskosten, EBITDA, Nettoeinkommen
BSSectionUmlaufvermögen, Anlagevermögen, kurzfristige Verbindlichkeiten, langfristige Verbindlichkeiten, Eigenkapital
CFSectionBetrieb, Investition, Finanzierung
SortOrderFür die Bestellung individueller Kontoauszüge
ParentAccountIDFür Hierarchie-Rollup
IsIntercompanyKennzeichen für Eliminierungseinträge

Budget (optionale Faktentabelle):

SpalteBeschreibung
AccountIDFK zum Kontenplan
PeriodIDGeschäftsjahr
BudgetAmountBudgetierter Betrag
ScenarioIDBudget, Prognose, überarbeitet
SubsidiaryIDFK zur Tochtergesellschaft

Struktur der Gewinn- und Verlustrechnung

Kontoklassifizierung für GuV

Die Struktur des GuV-Abschnitts sollte Ihren Kontenplan den Standard-GuV-Kategorien zuordnen:

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

DAX-Kennzahlen für Gewinn und Verlust

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

GuV-Zeitintelligenz

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

Visuelles Design der GuV-Matrix

Das empfohlene Bild für eine Gewinn- und Verlustrechnung ist eine Matrix:

  • Zeilen: GuV-Einzelposten (von Chart_of_Accounts[PLSection] mit Zwischensummen)
  • Spalten: Perioden (Monate, Quartale, YTD)
  • Werte: Tatsächlicher Betrag, Budgetbetrag, Abweichung $, Abweichung %

Konfigurieren Sie die Matrix:

  1. Aktivieren Sie Zwischensummen auf Abschnittsebene (Gesamtumsatz, COGS-Gesamt usw.)
  2. Bedingte Formatierung verwenden: Rot = ungünstige Varianz, Grün = günstig
  3. Benutzerdefinierte Sortierreihenfolge über Chart_of_Accounts[SortOrder] anwenden
  4. Zahlen formatieren: £#,##0K für Tausender, 0.0% für Prozentsätze

Bilanzvisualisierung

Bilanzstruktur

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

Bilanz DAX-Kennzahlen

Bilanzkennzahlen verwenden Salden (kumuliert) statt Periodenbeträge – alle Transaktionen vom Beginn bis zum ausgewählten Datum:

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

Bilanzvisualisierungsmuster

Verwenden Sie eine Kombination aus visuellen Elementen:

  1. Matrix für die vollständige Bilanztabelle (gleiche Struktur wie GuV-Matrix)
  2. Gestapeltes Balkendiagramm für Vermögenswerte vs. Verbindlichkeiten + Eigenkapital (Trend über 12 Monate)
  3. KPI-Karten für aktuelles Verhältnis, schnelles Verhältnis, Schulden/Eigenkapital
  4. Messwert für Working Capital vs. Ziel

Kapitalflussrechnung (indirekte Methode)

Die indirekte Methode beginnt mit dem Nettoeinkommen und bereinigt nicht zahlungswirksame Posten und Änderungen des Betriebskapitals.

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

Cashflow-DAX-Kennzahlen

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

Cashflow-Wasserfalldiagramm

Das Wasserfalldiagramm ist die ideale Visualisierung für den Cashflow:

  1. Erstellen Sie eine berechnete Tabelle mit den Cashflow-Einzelposten und deren Beträgen
  2. Verwenden Sie das visuelle Wasserfalldiagramm (integriert in Power BI).
  3. Konfigurieren Sie die Kategorien „Erhöhen“ und „Verringern“, um den Beitrag jedes Elements anzuzeigen
  4. Markieren Sie „Netto-Bargeld aus dem operativen Geschäft“, „Netto-Bargeld aus Investitionen“ und „Netto-Bargeld aus Finanzierung“ als Zwischensummen
  5. Markieren Sie „Endbarguthaben“ als Gesamtsumme

Abweichungsanalyse: Ist vs. Budget vs. Prognose

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

Häufig gestellte Fragen

Kann Power BI unser bestehendes ERP-Finanzberichtsmodul ersetzen?

Power BI kann die meisten Standardfinanzberichte (GuV, Bilanz, Cashflow, AR-Alterung) durch flexiblere, interaktive Äquivalente ersetzen. Allerdings verbleiben gesetzlich vorgeschriebene Finanzberichte (GAAP/IFRS-zertifiziert), revisionssichere Berichte mit Signaturkontrollen und Transaktionsbuchungsfunktionen im ERP. Der optimale Ansatz: Nutzen Sie ERP für die Transaktionskontrolle und Compliance, Power BI für Management-Reporting und Analysen auf Vorstandsebene.

Wie stelle ich sicher, dass meine Gewinn- und Verlustrechnung in Power BI genau mit der ERP übereinstimmt?

Das häufigste Abstimmungsproblem sind Vorzeichenkonventionen – ERPs legen fest, ob Umsatzkonten über normale Soll- oder Habensalden verfügen, und Power BI muss dieselbe Logik anwenden. Erstellen Sie eine Testkennzahl, die alle Hauptbucheinträge (Belastungen + Gutschriften) summiert, und stellen Sie sicher, dass sie für einen geschlossenen Zeitraum gleich Null ist. Vergleichen Sie dann Ihre Gewinn- und Verlustsummen periodenweise mit dem nativen Gewinn- und Verlustbericht des ERP, bis sie übereinstimmen.

Können mehrere Tochtergesellschaften in einem Power BI-Finanzbericht konsolidiert werden?

Ja – das ist einer der Hauptvorteile von Power BI gegenüber vielen ERP-Finanzberichtsmodulen. Importieren Sie FIBU-Daten von allen Tochtergesellschaften mit einer SubsidiaryID-Spalte und erstellen Sie dann Konsolidierungskennzahlen, die die Summe aller Tochtergesellschaften ergeben. Für konzerninterne Eliminierungen kennzeichnen Sie konzerninterne Konten im Kontenplan und schließen Sie sie von konsolidierten Kennzahlen aus. Für die Währungsumrechnung ist eine Wechselkurstabelle erforderlich, die mit dem Transaktionsdatum verknüpft ist.

Wie erstelle ich PDF-Berichte in Board-Pack-Qualität aus Power BI?

Power BI Report Builder (paginierte Berichte) erstellt pixelgenaue PDF-Ausgaben – professionelle Formatierung, Seitenumbrüche, Kopf-/Fußzeilen und präzise Tabellenlayouts. Dies ist von Power BI Desktop getrennt, verwendet jedoch dieselben Datensätze. Erstellen Sie für Board-Pakete den Managementkommentar in Word, generieren Sie die Finanztabellen über paginierte Berichte und kombinieren Sie sie über Power Automate in einem monatlichen Zeitplan. Für paginierte Berichte ist eine Power BI Premium- oder PPU-Lizenz erforderlich.

Wie geht man am besten mit Geschäftsjahren um, die nicht mit Kalenderjahren übereinstimmen?

Erstellen Sie eine benutzerdefinierte Datumstabelle in DAX oder Power Query, die eine Spalte „FiscalYear“, „FiscalQuarter“ und „FiscalPeriod“ basierend auf dem Startmonat Ihres Geschäftsjahres enthält. Markieren Sie diese Tabelle als Datumstabelle in Power BI. Verwenden Sie DATESYTD mit dem Parameter für das Geschäftsjahresenddatum: CALCULATE([Revenue], DATESYTD(Date[Date], "3/31")) für ein Geschäftsjahresende im März. Alle Zeitintelligenzfunktionen akzeptieren diesen optionalen Jahresendparameter.


Nächste Schritte

Die Finanzberichterstattung in Power BI erfordert eine sorgfältigere Datenmodellierung als operative Dashboards – Kontozeichenkonventionen, Bilanzkumulationslogik und indirekte Cashflow-Methodenberechnungen erfordern alle eine präzise Implementierung. Wenn es richtig gemacht wird, ist das Ergebnis ein CFO-Dashboard, das wochenlange Excel-Arbeit durch minutenlange Erkundung ersetzt.

ECOSIRE kombiniert Power BI-Expertise mit fundiertem Buchhaltungs- und Finanzwissen. Unsere Entwicklungsdienste für Power BI-Dashboards umfassen den vollständigen Entwurf von Finanzberichten und unsere Buchhaltungsdienste decken die Datenqualität und die Strukturierung von Kontenplänen ab, die Finanz-Dashboards zuverlässig machen.

Kontaktieren Sie unser Finanzanalyseteam, um Ihre Anforderungen an die Finanzberichterstattung zu besprechen und eine Power BI-Architektur zu entwerfen, die Ihrem Führungsteam die finanzielle Transparenz bietet, die es benötigt.

E

Geschrieben von

ECOSIRE Research and Development Team

Entwicklung von Enterprise-Digitalprodukten bei ECOSIRE. Einblicke in Odoo-Integrationen, E-Commerce-Automatisierung und KI-gestützte Geschäftslösungen.

Chatten Sie auf WhatsApp