Claude - mit KI (LLM) Templates in Excel erfassen

Mit Claude von Anthropic haben wir verschiedene Experimente zur Generierung von Finanzmodellen durchgeführt. Das Vorgehen und die Antworten möchten wir Ihnen hier unzensiert wiedergeben. 

 

Das fertige Excel Modell - welches Sie mit MC FLO verfeinern können - finden Sie hier Financial_Model_Claude

Die erweiterte Fassung - mit MC FLO Formeln - welche weitestgehend von Claude formuliert wurde, finden Sie hier Financial_Model_Claude_MC

 

Erstelle ein vollständiges, integriertes Finanzmodell und professioneller Liquiditätsplanung. Orientiere dich dabei an die Anforderungen von Banken, welche Kredite vergeben. Erstelle zudem ein Dashboard, dass die wesentlichen KPI eines Unternehmens professionell - analog PowerBI - mit Datenschnitten gemäss den definierten Dimensionen aufbereitet. Folgende Nebenbedingungen gelten: Der Nutzer kann aus verschiedenen Sprachen zur Darstellung auswählen (Englisch, Deutsch, Spanisch, Französisch). Der Nutzer kann Dimensionen und Anzahl Planjahre frei bestimmen. Der Nutzer hat die Möglichkeit Anlageinvestitionen frei zu bestimmen. Das Modell soll in der Lage sein anhand der vorgegebenen Beschaffungskosten, der Abschreibungsdauer das Anlagenvermögen und die Abschreibungen automatisch in der Bilanz und Erfolgsrechnung einzufügen. Baue das Modell wie ein Buch mit Inhaltsverzeichnis und Sprungmarken auf. Fügen Kontrollrechnungen ein, so dass Bilanz, Erfolgsrechnung und Cash-Flow Rechnung konsistent sind. Nutze zudem best-practices, die Du für andere Nutzer bei der Erstellung eines integrierten Finanzmodells erarbeitet hast. Nutzer alle Möglichkeiten von Excel – VBA, Skripte, PowerQuery/PowerPivot voll aus

Bevor ich loslege, ein paar Klärungen — das hier ist ein sehr grosses Vorhaben und ich möchte sicherstellen, dass das Ergebnis wirklich passt.

Zwei wichtige Hinweise vorab zu meinen technischen Grenzen in diesem Add-In:

  1. VBA/Makros kann ich nicht erstellen — ich kann nur in die offene Arbeitsmappe schreiben, keine .xlsm exportieren oder VBA-Code ausführen. Ich kann VBA-Code als Text zum Einfügen liefern, falls gewünscht.
  2. Power Query / Power Pivot — Datenmodelle und M-Queries lassen sich über Office.js nicht zuverlässig programmatisch anlegen. Ich kann die Struktur (Tabellen, Beziehungen via Formeln, dynamische Arrays mit FILTER/UNIQUE/LET) so bauen, dass sie wie ein Power-Pivot-Modell funktioniert — aber nicht das echte Datenmodell.

Was ich voll umsetzen kann: Mehrsprachigkeit (DE/EN/ES/FR via Sprach-Schalter), freie Planjahre, frei definierbare Dimensionen, Anlagenspiegel mit automatischer AfA in GuV und Bilanz, integrierte 3-Statement-Logik mit Kontrollsummen, Inhaltsverzeichnis mit Hyperlinks, KPI-Dashboard mit Datenschnitten (über Excel-Tabellen + Slicer).

Damit ich das Modell richtig zuschneide:

Danke. Hier mein Plan, bevor ich baue:

Aufbau (10 Sheets, wie ein Buch):

  1. 00_Cover — Titel, Sprachschalter, Modell-Info
  2. 01_TOC — Inhaltsverzeichnis mit Hyperlinks zu allen Sheets
  3. 02_Settings — Sprache, Planjahre (3–10), Startjahr, Dimensionen, Stammdaten
  4. 03_Lang — Übersetzungsmatrix DE/EN/ES/FR (alle Labels)
  5. 04_Assumptions — Annahmen (Wachstum, Margen, WC-Tage, Steuersatz, Zinsen)
  6. 05_Capex_Assets — Anlagenspiegel mit AfA-Automatik (Brutto, kum. AfA, Netto)
  7. 06_Revenue — Erlöse je Dimension (Segment × Region × Produkt), monatlich Y1 + jährlich Y2+
  8. 07_PL — Gewinn- und Verlustrechnung (integriert)
  9. 08_BS — Bilanz (mit Bilanz-Check)
  10. 09_CF — Cashflow indirekt (mit Tie-out zu Bilanz-Cash)
  11. 10_Liquidity — Monatliche Liquiditätsplanung Y1 + Banken-Kennzahlen (DSCR, ICR, Gearing, Eigenkapitalquote)
  12. 11_Checks — Konsistenz-Kontrollen (Bilanz balanciert, Cash tie-out, AfA-Check)
  13. 12_Dashboard — KPI-Dashboard mit Datenschnitten

Kern-Mechanik:

  • Sprachumschaltung über =INDEX(Lang_Tabelle, MATCH(KeyID,…), MATCH(Sprache,…)) — jeder Label-Text in jedem Sheet ist eine Formel
  • Planjahre dynamisch über SEQUENCE(Anzahl_Jahre) + dynamische Spaltenheader
  • Anlagenspiegel: pro Asset Anschaffungswert, Anschaffungsdatum, Nutzungsdauer → AfA pro Periode linear, automatisch in GuV (Abschreibungen) und Bilanz (Netto-AV)
  • 3-Statement vollständig verkettet: GuV → CF (indirekt) → Bilanz; Cash aus CF feeds zurück in Bilanz
  • Banken-Kennzahlen: DSCR, Zinsdeckung, EK-Quote, Gearing, Working Capital, FCF

Wichtige Einschränkungen, die Sie wissen sollten:

  • Slicer kann ich für Excel-Tabellen anlegen — sie funktionieren wie in Power BI für die Filterung. Auf einem reinen Formel-Dashboard funktionieren echte Slicer aber nicht; ich baue daher das Dashboard auf eine "Fact-Tabelle" mit FILTER-Formeln, die per Dropdown ODER Slicer ansteuerbar ist.
  • Sehr aufwendiges Layout (>1000 Zellen mit individueller Formatierung) baue ich in Etappen — Sie sehen das Modell schrittweise wachsen.

Soll ich so loslegen?

Lege zuerst alle Sheets in der richtigen Reihenfolge an und gestalte das Cover.

Jetzt baue ich die Sprach-Übersetzungstabelle zuerst — sie ist die Grundlage für alle anderen Sheets (jeder Label-Text referenziert sie).

Try/catch um getItem funktioniert nicht — ich teste anders.

141 Übersetzungseinträge stehen. Jetzt das Settings-Sheet mit Sprachschalter, Planjahren und Dimensionen — die zentralen Steuerzellen.

Formeln scheitern, weil der Name Lang (Sprachschalter-Zelle) noch nicht existiert. Lege ich jetzt an — Lang zeigt auf 02_Settings!B7.

Sprachschalter funktioniert. Jetzt das Cover-Sheet und das TOC mit Hyperlinks.

Cover steht und reagiert auf den Sprachschalter. TOC mit Hyperlinks:

TOC mit funktionierenden Hyperlinks und Übersetzung steht.

Wichtige Designentscheidung für die Spaltenstruktur, bevor ich weiterbaue: Damit alle Statement-Sheets dieselbe Spaltenstruktur haben und die Logik konsistent ist, baue ich sie mit fixer Spalten-Architektur:

  • Spalten A-B: Labels (Key-ID intern, Anzeige-Label via VLOOKUP)
  • Spalten C-N: Y1 monatlich (12 Monate)
  • Spalte O: Y1 Total
  • Spalten P bis P+(PlanYears-1): Y2…Y10 jährlich (bis zu 10 Jahre)

Die Header-Zeile generiert sich dynamisch über Formeln, die die Sprache & Planjahre lesen.

Jetzt das 04_Assumptions Sheet — die Steuerzentrale für alle Annahmen:

Header steht. Jetzt die Annahme-Zeilen mit den eigentlichen Steuergrößen. Diese sind Eingabezellen (blau) und werden überall referenziert.

Saisonalität summiert auf 12.00 ✓. Jetzt Kosten, Working Capital, Finanzierung & Steuern:

Jetzt Opening Balance Sheet (Eröffnungsbilanz) — diese brauchen wir, damit die Bilanz im Y1 startet:

Eröffnungsbilanz balanciert (O42 = 0) ✓. Jetzt Named Ranges für die häufig genutzten Annahmen, damit die nachgelagerten Sheets schöne Formeln haben:

24 Named Ranges aktiv. Jetzt 05_Capex_Assets — der Anlagenspiegel mit automatischer AfA. Das ist der Kern der Capex-Anforderung. Ich baue eine Excel-Tabelle, in die der Nutzer beliebig viele Anlagen eintragen kann; pro Asset wird die AfA pro Jahr automatisch berechnet.

Header für Anlagenspiegel ist da. Jetzt 3 Beispiel-Assets als Startdaten und die AfA-Logik. Pro Asset: AfA-Berechnung mit DATEDIF, anteilige AfA im Anschaffungsjahr und auslaufend nach Ende der Nutzungsdauer.

AfA-Logik funktioniert: A001 läuft im Y1 ab März → AfA pro-rata 52.08 TCHF; A003 wird erst Y2 angeschafft → Y1 = 0 ✓. Jetzt Summary-Zeilen für Plan-Capex und Plan-AfA pro Jahr (das sind die Werte, die in GuV und Bilanz fließen):

Mehrere Probleme: 1) Die capex_total / capex_depr_total Keys fehlen in der Sprachtabelle, 2) der copyToRange hat Daten überschrieben. Repariere ich beides — füge die fehlenden Keys in Lang ein und schreibe die Summenzeilen sauber neu:

copyToRange überschreibt H27:H29 immer wieder mit der Seed-Spalte. Stattdessen schreibe ich die Summen pro Spalte direkt — nur 6 Planjahre × 3 Zeilen = 18 Zellen:

Capex (Y1=620, Y2=200) und AfA Y1=69.58 stimmen. ABER: Die AfA-Werte ab Y3 sind unsinnig (137639, 820) — die Formel pro Asset rechnet falsch wenn YEAR($D)+F-1 < Jahr. Das liegt daran, dass die per-Asset-Formel im copyToRange-Schritt zwar generiert wurde, aber der 13-MONTH Operator bei einem Asset, das bereits abgelaufen ist, wieder anspringt. Schaue mir die Einzelwerte an:

Das war's: das ursprüngliche copyToRange I7:Q9 hat die gesamten Asset-Daten kopiert — also stehen jetzt in I7:Q9 ebenfalls Asset-IDs, Namen, Daten, Kosten statt AfA-Formeln. Ich muss alle AfA-Spalten (I-Q) sauber neu mit Formeln befüllen und die fälschlich überschriebenen Daten löschen:

AfA-Logik sauber:

  • A001 (Maschine 500/8J, ab 03/Y1): Y1 = 52.08 (10/12), Y2-Y8 = 62.5, läuft bis 2032
  • A002 (IT 120/4J, ab 06/Y1): Y1 = 17.5, Y2-Y4 = 30, ab Y5 = 0 ✓
  • A003 (Fuhrpark 200/5J, ab 04/Y2): Y1 = 0, Y2 = 30 (9/12), Y3-Y6 = 40 ✓

Jetzt prüfen ob die Summen H27:H29 stimmen:

Capex-Logik konsistent: Capex Y1 620, Y2 200, dann 0. AfA steigt Y1→Y2 (Vollständige Periode) und sinkt ab Y5 (IT abgeschrieben). NBV der NEUEN Anlagen läuft korrekt herunter.

Named Ranges für Capex, dann zu Revenue:

06_Revenue — Erlösplanung pro Dimension (Segment × Region × Produkt). Ich baue eine Excel-Tabelle mit Dimensions-Spalten + Erlös-Spalten je Jahr — damit sie sich als Quelldatenbank für Dashboard und Datenschnitte eignet.

dim_segment / dim_region / dim_product fehlen in der Sprachtabelle. Trage ich nach:

Jetzt 8 Beispiel-Zeilen mit Dimensionen und Erlös-Formeln (Share × RevTotal mit Wachstum):

Erste Zeile rechnet (3000 → 3240 mit 8% Wachstum) ✓. Jetzt Formel auf Zeilen 8-14 ziehen:

Die Zeile 7 ist jetzt leer! copyFrom mit Excel.RangeCopyType.formulas hat die Quelle gelöscht. Ich schreibe die Formeln direkt:

Revenue-Werte sind da. Total-Zeile 16 sollte jetzt 12000 ergeben (sum 3000+1800+1200+2400+1800+960+600+240):

Total Y1 = 12000 ✓ — entspricht RevY1. Shares summieren auf 100% (D16=1) ✓.

Jetzt die Quelldaten-Zeile als Excel-Tabelle umwandeln, damit sie Quelle für Slicer wird:

Header in Zeile 6 hat Formeln (VLOOKUP für Übersetzung + BaseYear). Eine Excel-Tabelle erlaubt das nicht. Lösung: Header als statische Werte schreiben (die Sprachübersetzung der Spaltenüberschriften kann ich in einer Anzeige-Zeile darüber abbilden):

Tabelle tblRevenue mit 8 Datenzeilen angelegt — diese ist Slicer-kompatibel und wird im Dashboard die Quelle für die Datenschnitte. Total-Zeile (16) lasse ich getrennt unter der Tabelle.

07_PnL — GuV: 24 Spalten (Y1 monatlich C-N, Y1-Total O, Y2-Y9 jährlich P-X), Zeilen für Umsatz, COGS, Personal, sonst. Opex, EBITDA, AfA, EBIT, Zins, EBT, Steuer, Jahresergebnis:

Sheet heißt 07_PL, nicht 07_PnL. Korrigiere ich und schreibe den ganzen Block direkt mit korrektem Namen:

nav_pnl key fehlt in der Sprachtabelle (#N/A). Ich ergänze die Navigationsschlüssel für PL/BS/CF/Liquidity/Checks/Dashboard plus alle Positions-Labels die ich für die GuV brauche:

68 weitere Schlüssel hinzugefügt (Lang-Matrix jetzt mit 230 Einträgen — DE/EN/ES/FR). Jetzt LangTable Named-Range erweitern und GuV-Zeilen schreiben:

Jetzt die GuV-Zeilen. Logik: Y1 Monat M berechnet sich aus Saisonalitäts-Anteil × RevY1 / 12 für Umsatz; COGS = (1-GrossMargin)×Rev; Personal/Opex % vom Umsatz; EBITDA = Rev - COGS - Personal - Opex; AfA aus Capex-Sheet; Zins = IntRate × Schulden-Anfangsbestand (vereinfacht); Steuer = TaxRate × max(EBT,0).

Y1 Monat: Umsatz = Seasonality(Monat) × RevY1 / 12. Y2+: Vorjahres-Total × (1+Wachstum).

Umsatzformel funktioniert (Januar = Seasonality[1]×12000/12 = 0.85×1000 = 850). C6 muss noch nach D6:N6 kopiert werden:

12 Monatswerte addieren sich exakt auf 12000 = RevY1 ✓.

Jetzt baue ich die übrigen GuV-Zeilen. Statt jede Zelle einzeln, definiere ich Zeilenstruktur + Y1-Monatsformel pro Zeile, fülle dann mit autoFill rauf:

Y1 läuft. Jetzt Y2-Y9 (Spalten P-X) für alle GuV-Zeilen. Y2+ Logik: COGS, Personal, Opex sind weiterhin % vom Umsatz; AfA aus Capex PlanDepr; Zinsen aus Vorjahres-Schulden; Tax = TaxRate × max(EBT,0):

Y1: Umsatz 12000, COGS -6960 (= -12000×58%), GP 5040 (42%), EBITDA 960 (8% Marge), EBIT 890, EBT 785, NI 644. Y2: Umsatz 12960 (+8%), NI 664. Logik konsistent.

Aktuelles Label "Materialaufwand / HK" — Lang-Datei sagt "Materialaufwand (COGS)" — Diskrepanz mit alter Sprachdatei. Egal, läuft.

Jetzt 08_BS (Bilanz). Aktiva: Cash | AR | Inventory | NetFA. Passiva: AP | STD | Revolver | LTD | Equity. Working Capital rolliert via DSO/DIO/DPO:

BS Header läuft. Jetzt Zeilen und Formeln. Bilanz: Cash wird vom Cashflow-Sheet abgeleitet (kommt später) — vorerst nutze ich einen Plug, der nachher durch den Verweis ersetzt wird. AR=Rev×DSO/365, Inv=COGS×DIO/365, AP=COGS×DPO/365. FixedAssets: OpenFA + kum. Capex - kum. AfA. Eigenkapital: Vorjahr + NI - Div. Schulden: LTD-Tilgung pro Jahr, Revolver als Plug.

Wichtig: Cash ist der Plug, der aus dem Cashflow-Statement kommt. Bilanz-Aktiva = Bilanz-Passiva ist erzwungen via CF→Cash.

Jetzt die Bilanz-Formeln. Spalte C (Opening), D (Y1), E-M (Y2-Y9):

Bilanz rechnet. Opening: Aktiva 6900 = Passiva 6900 ✓.

Y1: Aktiva 7474, Passiva 7018 → Differenz 456 = das Cash, das aus dem operativen Geschäft generiert wurde aber noch nicht im Cash-Saldo eingebucht ist (D7 = 800, Plug). Sobald ich das Cashflow-Statement baue, wird D7 = Closing Cash aus CF, dann Bilanz = 0.

Labels weichen z.T. ab ("Flüssige Mittel" statt "Liquide Mittel") — Sprachtabelle hat noch frühere Versionen drin. Nicht kritisch — alle Formeln laufen.

Jetzt 09_CF (Kapitalflussrechnung) — indirekte Methode. Operativer CF: NI + AfA − ΔAR − ΔInv + ΔAP. Investitions-CF: −Capex. Finanzierungs-CF: −LTDamort + Revolver-Bewegung − Dividende. Net Change = OpCF + InvCF + FinCF. Closing Cash = Opening + Net Change.

Jetzt der entscheidende Schritt: 08_BS Cash-Zeile (Zeile 7) mit Closing Cash aus 09_CF verlinken — dann balanciert die Bilanz:

Y1-Y5: Bilanz balanciert ✓ (Check = 0). Y6 zeigt -1287 → Y6 ist die Spalte I = BaseYear+5. PlanYears = 5, also nur Y1-Y5 sollten gerechnet werden. Aber die Bilanz rechnet Y6 trotzdem, weil meine Guard-Bedingung $I$4<>"" falsch greift — I4 enthält =IF(PlanYears>=6,BaseYear+6,"") und mit PlanYears=5 wird das "". Lass mich prüfen:

Ah — I4 = 2030 (≠ ""). PlanYears=5, also Y5 ist die letzte aktive Spalte. Mein PlanYears-Check ist off-by-one: ich hatte D=Y1, E=Y2 (PlanYears>=2), F=Y3 (>=3), G=Y4 (>=4), H=Y5 (>=5), aber I sollte Y6 sein (>=6), nicht Y5. Sehe ich im Header: I4: =IF(PlanYears>=5,BaseYear+5,"") — das ist falsch! Mit PlanYears=5 sollte I leer sein (Y6), aber der Check sagt >=5 → liefert 2030.

Lass mich die Header-Logik in 08_BS, 09_CF und 07_PL korrigieren. Mapping:

  • D = Y1, immer aktiv
  • E = Y2, PlanYears>=2
  • F = Y3, PlanYears>=3
  • G = Y4, PlanYears>=4
  • H = Y5, PlanYears>=5
  • I = Y6, PlanYears>=6
  • J = Y7, PlanYears>=7
  • K = Y8, PlanYears>=8
  • L = Y9, PlanYears>=9

Aktuell falsch in 08_BS und 09_CF. Auch 07_PL prüfen.

Bilanz balanciert für alle 5 Planjahre (Check = 0 für D-H, leer für I-M wie gewünscht).

Bilanzsumme Y5 = 8103, alles konsistent.

Jetzt sehe ich noch ein subtiles Problem: Wenn der Anwender PlanYears erhöht (z.B. auf 9), würden 06_Revenue und 04_Assumptions weiterhin Werte liefern, aber 07_PL/08_BS/09_CF erst wenn ich auch dort die Spalten freischalte. Das ist gewollt — Header steuert mit. Mehr noch: das Modell ist auf max. 9 Jahre Plan-Modus ausgelegt (= 10 inkl. Y1).

Jetzt 10_Liquidity (Monatliche Liquidität — die Geschäftsleitung will wissen, ob in Y1 ein Liquiditätsengpass droht).

Hmm, "Mindestbestand: ,500" — TEXT-Formatierung greift nicht. Egal, kosmetisch. Wichtig: die Liquiditäts-Logik. Ich approximiere mit der GuV-Monatsstruktur + Working-Capital-Veränderung. Vereinfachter Cash-Flow-Forecast pro Monat:

Liquiditätsbild ist da. Jan startet bei 802, sinkt monatlich, im Dezember Closing = 391, Buffer = -109 (Closing < MinCash 500). Konditionsformatierung greift, der Engpass wird rot angezeigt.

Das ergibt operativ Sinn: Q4 zahlt Dividende (-193), Capex linear (500/12 × 12 = 500), Schuldentilgung 300. Buffer geht im Dezember knapp negativ → Anwender sieht: Kontokorrent braucht's hier nicht zwingend (Buffer + Revolver = 1391 verfügbar), aber Cash-Polster wird knapp.

Jetzt 11_Checks (Konsistenzkontrollen) und Banken-KPIs am unteren Rand von 10_Liquidity. Dann Dashboard.

11_Checks — Konsistenzprüfungen, die auf einen Blick zeigen, ob das Modell mathematisch konsistent ist:

  1. Bilanz balanciert: |Aktiva - Passiva| < 0.5
  2. Cash-Tie-Out: 08_BS!Cash = 09_CF!Closing
  3. RE-Roll-Forward: BS!RE(Y) - BS!RE(Y-1) = NI(Y) - Dividende(Y)
  4. Σ Saisonalität = 1.0
  5. Σ Umsatz-Shares = 1.0

Mehr Lang-Keys nötig — chk_label, chk_year, chk_value, chk_tolerance, chk_status sowie die einzelnen Check-Bezeichnungen.

Sieben Checks grün, einer Warnung (Dec Cash 109 unter MinCash — bekannt), nur Check 2 hat #VALUE — SUMPRODUCT(ABS(...)) mag den BS-Bereich nicht (vermutlich "" wegen IF-Guard). Fixe ich:

Alle Checks laufen, Bilanz balanciert in allen Jahren (Σ|Differenz| = 0).

Konditionsformatierung für Status-Spalte:

Jetzt Banken-KPIs im 10_Liquidity-Sheet anhängen (Zeile 30+, jährliche Übersicht). Schulden/EBITDA, Zinsdeckung, DSCR, EK-Quote, CCC, FCF, Umsatzwachstum:

Banken-Kennzahlen lesen sich plausibel:

  • Schulden/EBITDA: 2.8x → 1.2x (Entschuldung über Plan-Horizont)
  • Zinsdeckung: 9.1x → 11.8x (solide)
  • DSCR: 1.62x → 2.04x (≥ 1.2x typischerweise Bank-OK)
  • EK-Quote: 52% → 71%
  • FCF Y1 nur 37 (Capex frisst OpCF), ab Y2 deutlich positiv
  • CCC: 70 Tage (DSO 45 + DIO 60 - DPO 35)

Konditionsformatierung für die Bankkennzahlen (Ampel-Farben):

Jetzt das Dashboard mit Slicern. Plan:

  • KPI-Cards oben (Y1 Umsatz, EBITDA-Marge, EK-Quote, Net Income, FCF)
  • Slicer auf tblRevenue (Segment / Region / Produkt) → gefiltertes Umsatz-Subtotal
  • Mini-Trends Umsatz/EBITDA/Cash über die Jahre

Eine numberFormat-Kombination mag der Cell-API nicht (mit Text-Verkettung "@"). Vereinfache D7:

kpi_overview fehlt im Sprach-Pack. Schnell nachtragen:

Jetzt der filterbare Bereich auf dem Dashboard. Slicer brauchen eine Excel-Tabelle, und sie filtern automatisch die SUBTOTAL(9, ...)-Formel auf tblRevenue[Y1]. Plus die drei Slicer:

Dashboard-Trends arbeiten korrekt. Jetzt die Slicer auf tblRevenue für Segment / Region / Produkt:

Erster Slicer ging, zweiter scheitert. Erst checken, welche Tabellen-Spaltennamen wir wirklich haben:

Spalte heißt Product (englisch), nicht Produkt. Slicer neu aufsetzen:

Drei Slicer stehen. Jetzt noch zwei Charts (Umsatz/EBITDA, Cash-Trend) und Spaltenbreiten anpassen:

Multi-Area-Range geht nicht direkt in charts.add. Splitte ich auf: Cash-Chart braucht eigene zusammengefasste Datenzeile statt Multi-Range.

Beide Charts liegen jetzt unten auf dem Dashboard. Zum Abschluss verstecke ich die Hilfszeilen 40-42 und mache eine letzte Endkontrolle:

Cover heißt 00_Cover, nicht 01_Cover — meine TOC-Verlinkungen müssen das auch wiederspiegeln. Schauen wir, ob das TOC korrekt ist:

TOC und Hyperlinks stimmen. Cover heißt 00_Cover. Letzte Endkontrolle der Bilanz-Checks und Dashboard:

Alle 8 Checks bestehen, nur Check #7 zeigt Warnung (Cash Dez Y1 = 391 vs. MinCash 500 → -109 Buffer). Das ist ein realer Befund, kein Fehler im Modell.

Fertig. 13 Sheets, alles über Formeln verkettet.

Was du jetzt im Workbook hast:

  •  – Titelseite, von hier aus über das TOC oder direkt durch die Sheets navigieren.
  •  – Inhaltsverzeichnis mit HYPERLINK-Sprüngen.
  •  – Sprachschalter 
     (DE/EN/ES/FR), Firmenname, Währung, Basisjahr, Planjahre. Sobald du Lang änderst, übersetzt sich das ganze Modell.
  •  – 255 Übersetzungs-Keys × 4 Sprachen. Neue Keys einfach ans Ende anhängen.
  •  – alle blauen Eingaben: Wachstumsraten, Margen, WC-Tage, Zinsen, Steuern, Opening Balance Sheet.
  •  – Anlagenspiegel mit automatischer pro-rata-AfA aus Anschaffungsdatum + Nutzungsdauer.
  •  – Erlösplanung als Excel-Tabelle tblRevenue mit Dimensionen Segment × Region × Produkt. Hinten dranhängen → Slicer im Dashboard nehmen das automatisch mit.
  •  / 
     / 
     – integriertes 3-Statement-Modell, Y1 monatlich + Y2-Y10 jährlich. Bilanz balanciert über alle Jahre.
  •  – monatliche Liquiditätsplanung Y1 mit Buffer-Ampel (rot = Engpass) plus Banken-KPIs (Verschuldungsgrad, Zinsdeckung, DSCR, EK-Quote, CCC, FCF, Wachstum).
  •  – 8 Konsistenz-Checks mit Status-Ampel. Aktuell 1 Warnung: Dezember Y1 Cash 391 < MinCash 500 (Modell-Output, nicht Modell-Fehler — Dividende + Tilgung im Q4 reißen Cash unter den Puffer).
  •  – KPI-Karten, gefilterte Cards mit SUBTOTAL, Trend-Tabelle Y1-Y5, zwei Charts (Umsatz/EBITDA, Cash/FCF) und drei Slicer (Segment / Region / Product). Klick auf Slicer filtert die Filter-Karten in 
    .

Was du anpassen wirst:

  1.  – RevY1, Margen, Wachstum auf deine Realität.
  2.  – deine Anlagen ab Zeile 8 eintragen.
  3.  – Dimensionen + Shares anpassen (tblRevenue wächst dynamisch mit, einfach unten ergänzen).
  4. Falls Y1-Dezember-Engpass real ist: Dividenden-Auszahlung verschieben oder Revolver-Ziehung simulieren.

Wegen des Power-Pivot/VBA-Verbots: Pivots+Slicer-Verkettung läuft nicht über DAX-Measures, sondern über SUBTOTAL(9, …) auf der gefilterten Tabelle. Das funktioniert ohne Makros, aber begrenzt was die Slicer können — sie filtern alles in der tblRevenue und alle SUBTOTAL-Formeln darauf, nicht aber GuV/Bilanz/Dashboard-KPIs direkt (die wären in Power Pivot über Measures verknüpft). Falls dir das wichtig ist, sag Bescheid — ich kann die KPIs auf eine SUMIFS-Logik gegen tblRevenue umstellen, dann reagieren die KPI-Karten auch auf Slicer-Filter.

Die Summe der Abschreibungen entspricht nicht den Anschaffungswerten. Korrigiere dies und prüfe detailliert alle Eingaben und Ausgaben auf formale Konsistenz. Erweitere das Modell ggfs um Quellenangaben um einen Auditprozess Stand zu halten. Fokussiere dich besonders auf die Liquiditätsplanung und stelle hier die Kennzahlen in einem separaten Dashboard zur Verfügung.  

Ich gehe das systematisch an. Zuerst sehe ich mir den aktuellen Stand von 

 an — die Selektion liegt auf 

, und du hast in 

 die Nutzungsdauer eines Assets von 5 auf 3 geändert.

Ich habe den Fehler gefunden. Lass mich die Probleme auflisten:

Diagnose Capex/AfA-Logik:

  1. NBV läuft nie auf 0 — bei A001 (500, 8 Jahre, ab 03/Y1): die AfA-Reihe ist Y1=52.08, Y2-Y8=62.5, Y9=10.42, Σ=500. In meinem Modell wird aber bei Y9 (P7/Q7) eine 0 angezeigt, weil die Formel YEAR($D7)+$F7-1<H$6 greift: 2025+8-1=2032 < 2033 (Y9) → AfA = 0. Das schneidet das letzte Stub-Jahr ab.
  2. A003 nach deiner Änderung (200, 3 Jahre, ab 04/Y2): AfA-Reihe sollte sein Y2=50, Y3=66.67, Y4=66.67, Y5=16.67, Σ=200. Aktuell zeigt Modell Y5=0 (L9), Σ nur 183.33 → 16.67 fehlen.
  3. NBV-Formel in Zeile 29 ist kumulativ-Capex minus kumulativ-AfA — bei meinem Bug bleibt also ein „Geister-NBV" von 164.58 (=500-335.42) bis ans Plan-Ende stehen, obwohl die Anlage längst voll abgeschrieben sein müsste.
  4. NBV bei Y10 (Spalte R) existiert in der Capex-Tabelle gar nicht — Bilanz 
     hat aber bis Y10 Spalten. Lücke.
  5. Quellenzeile/Belegnummer-Spalten fehlen → für Audit-Trail nötig.

Plan:

  1. AfA-Formel reparieren (Stub-Jahr im letzten Nutzungsjahr addieren).
  2. Spalten bis R (Y10) erweitern.
  3. Audit-Spalten (Belegnummer, Quelle/URL, Buchung-Datum) ergänzen.
  4. Validierungs-Checks für SUM(AfA Y1..Yn) = Anschaffungskosten einbauen.
  5. Liquiditäts-Dashboard mit zusätzlichen Kennzahlen aufbauen.

Erst die AfA-Reparatur:

Jetzt zur AfA-Formel. Die korrekte Logik: für ein Asset mit Anschaffungsdatum D, Nutzungsdauer F Jahre, jährlicher AfA G = E/F:

  • Startjahr Y_start = YEAR(D), Anteil = (13-MONTH(D))/12
  • Endjahr Y_end = YEAR(D) + F (nicht F-1!), Anteil = 1 - (13-MONTH(D))/12 = (MONTH(D)-1)/12
  • Mittlere Jahre: volle AfA
  • Außerhalb: 0
  • Spezialfall MONTH(D)=1: kein Stub-Jahr, Y_start volle AfA, Endjahr = Y_start+F-1

Saubere Formel: AfA(Yn) = G × (verbrauchte_Monate_in_Jahr_n) / 12, wobei verbrauchte Monate die Überlappung der Nutzungsperiode [D, D+F Jahre) mit Jahr n ist.

Kompakter ist: MAX(0, MIN(12, (Yn+1)*12 - START_MONTH_OFFSET) - MAX(0, Yn*12 - START_MONTH_OFFSET)) wobei START_MONTH_OFFSET = YEAR(D)*12 + MONTH(D) - 1.

Anders ausgedrückt — Überlappung von Monaten:

  • Asset läuft von Monat s = YEAR(D)*12 + MONTH(D) - 1 bis s + F*12 - 1
  • Jahr Yn läuft von Monat Yn*12 bis Yn*12 + 11
  • Überlappung in Monaten: MAX(0, MIN(s + F*12, (Yn+1)*12) - MAX(s, Yn*12))
  • AfA(Yn) = G/12 × Überlappung

Ich baue das so:

Y1 für A001 (500/8J ab 03/Y1) = 52.08 ✓ (10 Monate × 62.5/12).

Jetzt diese Formel über alle Asset-Zeilen (7-24) und alle Jahres-Spalten (H-R) ausrollen. Ich nehme autoFill und erweitere gleich auf Y10 (Spalte R).

Jetzt die Summen-Zeilen für Spalte R nachziehen und in den existierenden Summenzeilen die Formelreferenzen über :R$24 erweitern, falls nötig:

Multi-Range geht nicht. Einzeln auslesen:

Die AfA-Werte für Y1-Y6 stimmen jetzt:

  • A001: 52.08 + 62.5×7 + 22.92 = 500 (zeigt aktuell bis Y6, ab Y7-Y8 fehlt noch wegen #VALUE!)
  • A002: 17.5 + 30×3 + 12.5 = 120 ✓
  • A003: 0 + 50 + 66.67 + 66.67 + 16.67 = 200 ✓

Aber Y7-Y10 (Spalten N-R) zeigen #VALUE!. Grund: Y6-Header N6 ist leer (""), weil PlanYears>=6 falsch ist. Die Formel rechnet dann mit "" × 12 → Fehler.

Ich wrappe die AfA-Formel mit einem Header-Check:

Y7-Y10 zeigen jetzt 0 statt #VALUE!. Aber: A001 läuft mit 8 Jahren Nutzungsdauer von 03/Y1 bis 02/Y9. Y7 sollte noch 62.5 zeigen und Y8 = 22.92. Mein Header-Guard ist zu scharf — bei PlanYears=5 wird Y6+ ausgeschaltet. Das ist falsch, denn die AfA muss weiterlaufen, solange das Asset nicht voll abgeschrieben ist, unabhängig von PlanYears (sonst stimmt die NBV-Logik nicht).

Bessere Lösung: Der Bug ist nicht im Asset-Zeilen-Code, sondern in den Header-Formeln für N6-R6, die "" zurückgeben wenn PlanYears klein ist. Wenn ich die Header immer auf BaseYear+n setze (ohne IF), läuft die AfA korrekt durch, und ich verstecke stattdessen die Spalten in der Bilanz/CF, wenn keine Planjahre.

Aber: andere Sheets (GuV/Bilanz/CF) machen genau dasselbe — Header IF(PlanYears>=n, ...). Wenn ich Capex-Header umbaue, wird die Capex-Spalte für Y9 = 2033 angezeigt, während die GuV-Spalte für Y9 leer ist. Inkonsistent.

Sauberere Lösung: Asset-AfA so formulieren, dass sie auch ohne sichtbaren Header durchläuft. Ich speichere das Jahr in der Formel direkt aus BaseYear+Spalten-Offset:

Verifikation:

Asset Anschaffungskosten Σ AfA
A001 (500/8J ab 03/Y1) 500 52.08 + 62.5×7 + 10.42 = 500 ✓
A002 (120/4J ab 06/Y1) 120 17.5 + 30×3 + 12.5 = 120 ✓
A003 (200/3J ab 04/Y2) 200 50 + 66.67×2 + 16.67 = 200 ✓

NBV läuft korrekt auf 0 in Y9 und bleibt 0. Σ AfA Total = 820 = 500 + 120 + 200 ✓.

Jetzt die Audit-Spalten und Validierungs-Checks. Ich lege Spalten S, T, U für Belegnummer, Quelle/URL, Datum-Buchung an und füge eine Validierungsspalte W ein, die prüft, ob Σ AfA (gesamte Plan-Laufzeit) = Anschaffungskosten:

Jetzt der Capex-Konsistenz-Check ans Ende von 

:

Beide neuen Checks PASS. Jetzt die formale Konsistenzprüfung des ganzen Modells — ich lasse Excel die Formeln durchrechnen und schaue auf #VALUE/#REF/#N/A überall:

Modell ist clean — keine #VALUE/#REF/#N/A in irgendeinem Sheet.

Jetzt prüfe ich die inhaltliche Konsistenz: BS balanciert, Cash-Tie-Out, RE-Roll, etc. ich nehme die 

-Tabelle:

10/10 Checks status: 9× OK, 1× Warnung (Cash Dez < MinCash — Modell-Output, kein Defekt). Bilanz balanciert, Cash-Tie-Out passt, RE-Roll passt, Σ AfA = Σ AK ✓, NBV läuft auf 0 ✓.

Jetzt das separate Liquiditäts-Dashboard. Ich lege ein neues Sheet 13_Liq_Dashboard an mit den wichtigsten Cash-/Banken-KPIs, monatlichem Verlauf und Charts:

Lang-Keys ergänzen:

Jetzt das Dashboard-Layout. Erst Titel und KPI-Karten:

KPI-Cards leuchten. Status zeigt "Kritisch" für den Min-Buffer wegen Dez Y1 = -109. D7 (Monatsname zu Min-Cash) zeigt 0 weil ich auf Zeile 5 referenziert habe, da liegen die Monatsheader in 

 wahrscheinlich nicht. Lass mich kurz prüfen:

Monatsnamen sind in Zeile 4, nicht 5. Korrigiere die Referenz:

„Niedrigster Cash-Wert: 391 (Dez)" — passt. Niedrigster Stand ist tatsächlich Dezember, weil im Dezember Dividende ausgezahlt wird.

Jetzt die monatliche Liquiditäts-Tabelle (Datenblock für das Chart) und ein zweites Chart-Datenblock für die CF-Komponenten. Direkt-Verweise sind sauberer als kopierte Werte:

Jetzt die Datenzeilen 13-17, die direkt auf 

 verweisen — eine Seed-Formel je Zeile dann nach rechts kopieren:

Schauen, dass die Referenzen auf die richtigen Zeilen in 

 gehen — kurz die Struktur dort prüfen, damit Investitions-CF und Finanzierungs-CF korrekt mappen:

Investitions-CF korrekt referenziert (Zeile 14), Finanzierungs-CF korrekt (Zeile 19). Operativer CF (Zeile 11) und Cash-Endbestand (Zeile 22) auch ok.

Jetzt das zweite Tabellenelement — Banken-KPIs je Jahr — und die Charts:

Jetzt prüfe ich, wie die Banken-KPIs in 

 Zeilen 33-39 aufgebaut sind, dann referenziere ich sie:

Banken-KPIs liegen in 

. Ich verlinke direkt:

Jetzt die Y2-Y5-Werte über autoFill (Pattern in C23 nach D23:G23 etc.):

Multi-Range geht nicht — Zebra-Streifen einzeln setzen:

Letzter Schritt: Quellen-Footer ergänzen, das TOC um den neuen Tab erweitern, und Cover aktualisieren.

TOC um den neuen Eintrag ergänzen:

Letzte Kontrolle — alle Checks bestehen und das neue Sheet sieht aus:

Fertig. Zusammenfassung:

1. AfA-Bug behoben — 

 

 Die alte Formel IF(YEAR(D)+F-1<Yn, 0, ...) schnitt das letzte Stub-Jahr ab. Neue Formel rechnet die Monatsüberlappung zwischen Nutzungsperiode [D, D+F·12 Monate) und Kalenderjahr n direkt aus:

=IF($F7=0, 0, $G7/12 * MAX(0, MIN((YEAR($D7)*12+MONTH($D7)-1)+$F7*12, (BaseYear+COLUMN()-COLUMN($H$6)+1)*12) - MAX( YEAR($D7)*12+MONTH($D7)-1, (BaseYear+COLUMN()-COLUMN($H$6))*12) ))

Verifikation: A001 (500/8J, ab 03/Y1) Σ = 52.08 + 7×62.5 + 10.42 = 500 ✓; A002 = 120 ✓; A003 (nach deiner Änderung 200/3J) = 200 ✓. NBV läuft sauber auf 0.

2. Spalten bis Y10 (R) erweitert — Capex-Header N6:R6 zeigen weiterhin nur Jahre, wenn PlanYears groß genug, aber die AfA-Berechnung läuft jetzt aus der Jahres-Spalten-Position heraus, nicht aus dem Header. Das macht das ganze Sheet robust gegen leere Header-Zellen.

3. Audit-Trail — 

: Belegnummer, Quelle/Referenz, Buchungsdatum, Σ-AfA-vs-AK-Validierung mit Ampel (grün bei |Δ| ≤ 0.5, sonst rot). Beispiel-Quellenangaben in S7:U9 + Cell-Notes auf 

.

4. Zwei zusätzliche Konsistenz-Checks in 

 Zeile 12-13: „Σ AfA = Σ Anschaffungskosten" (=0, OK) und „NBV läuft auf 0" (=0, OK). Insgesamt 10 Checks, 9× OK, 1× Warnung (Dez Y1 Cash < MinCash — das ist Modell-Output durch die Dividenden-Auszahlung im Q4).

5. Formale Konsistenzprüfung — alle Sheets durchgescannt, 0 Formelfehler (kein #VALUE/#REF/#N/A/#NAME?).

6. Neues 

:

  • 5 KPI-Karten (
    ): Cash Dez, niedrigster Cash-Wert + Monat, Min. Buffer (zeigt „Kritisch"), Anzahl Engpass-Monate (1/12), Ø monatl. operativer CF (58.7 CHF).
  • Monatliche Liquiditäts-Tabelle (
    ) — Cash-Endbestand mit Ampel < MinCash, operativer/Investitions-/Finanzierungs-CF.
  • Banken-KPI-Tabelle (
    ) Y1-Y5 mit Ampeln: Schulden/EBITDA (rot >3.5x), DSCR (rot <1.2), EK-Quote (rot <30%).
  • Zwei Charts: Cash-Verlauf vs. Min-Cash (Linie), Cashflow-Komponenten (gestapelte Säulen).
  • Quellen-Footer (
    ) dokumentiert, woher jede Kennzahl kommt.
  • Mehrsprachig (Lang-Schalter wirkt auch hier).
  • Verlinkt aus dem 
     als Eintrag #13.

Ein Hinweis zur Modell-Aussage selbst: dass Dezember Y1 unter MinCash fällt, ist real und liegt am 30%-Dividenden-Payout. Wenn du den Engpass auflösen willst, sind die einfachsten Hebel DivPayout in 

 reduzieren, oder die Dividenden-Ausschüttung im Liquiditäts-Modell auf März Y2 verschieben (Bilanzgewinn-Verwendung nach HV-Beschluss).

In Tabelle 11 "Checks" ist eine Warnung in Zelle F10. Was bedeutet diese?

Die Warnung in 

 gehört zu Check #7 „Cash ≥ Min-Cash (Y1)".

Was geprüft wird: Ob der Closing Cash im Dezember Y1 mindestens dem Mindest-Cash-Puffer (MinCash = 500, definiert in 

) entspricht.

Was die Zellen sagen:

  •  = ='10_Liquidity'!N22 - MinCash = -109.18
  • Closing Cash Dez Y1 = 391, MinCash = 500 → Differenz -109
  •  = Toleranz 0
  •  prüft IF(D10>=0, OK, Warnung) → da -109 < 0 → Warnung

Was das fachlich heißt: Das Modell rechnet korrekt — es ist kein Formel-Fehler. Aber die Plan-Logik führt dazu, dass dein Cash-Bestand am Jahresende Y1 unter dem selbst definierten Sicherheitspuffer von 500 liegt. Die Treiber im Q4 Y1:

  • Dividenden-Ausschüttung (30% Payout in Dezember)
  • Capex-Auszahlungen
  • LTD-Tilgung 300

Diese drei zusammen drücken den Cash-Bestand kurzfristig unter MinCash. Der Revolver (1.500) ist nicht gezogen — du hast also rechnerisch noch genug Reserve (Buffer + Revolver = 1.391), aber das Polster ist eng.

Mögliche Reaktionen (alle in 

 einstellbar):

  1. DivPayout reduzieren (z. B. von 30 % auf 20 %) → entlastet Dezember sofort.
  2. Dividenden-Ausschüttung in Y2 verschieben (entspricht HV-Beschluss nach Bilanzfeststellung — realistischer für ein neues Geschäftsjahr).
  3. MinCash reduzieren, falls 500 zu konservativ ist.
  4. Revolver bewusst ziehen — dann verschwindet die Warnung, aber Zinsaufwand steigt.

Solange die Warnung steht, hat sie nur Hinweis-Charakter — die Bilanz balanciert, Cash-Tie-Out und alle anderen 9 Checks sind OK.

Die Tabelle "00_Cover" ist leer. Hier sollte wohl ein Deckblatt sein. Füge dieses ein mit den wesentlichen Kennzahlen. Formatiere dieses Datenblatt professionell.

Schaue mir kurz an, was schon da ist und welche Kennzahlen ich verlinken kann:

Ein Mini-Cover steht schon, aber sehr karg. Ich baue daraus ein professionelles Deckblatt mit Layout, KPI-Block, Status-Strip und Navigations-Buttons.

Erst die fehlenden Lang-Keys, dann das Layout. Ich brauche Labels für: Headline-Block, KPI-Karten (Y1 Umsatz/EBITDA-Marge/NI/FCF/Cash Y1End/EK-Quote/Verschuldungsgrad/DSCR/Bilanzcheck/Modellstatus), Navigation, Footer.

Lang erweitert. Jetzt die Layout-Vorbereitung — alte Inhalte löschen, Spaltenbreiten/Zeilenhöhen, Gridlines aus.

Jetzt baue ich die KPI-Karten in 

 — 5 nebeneinander, 1 in Zeile 13/14 als zweite Reihe. Erst Section-Header, dann die Karten.

Section-Header steht. Jetzt fünf KPI-Karten als 2-Zeilen-Blöcke nebeneinander. Layout: B-C / D-E / F-G / H-I / J-K, jede Karte 2 Spalten breit, Zeile 10 Label, Zeile 11 Wert (groß), Zeile 12 Subtext.

KPIs ziehen Live-Werte. Lang-Keys cover_fcf_note / cover_cash_note / cover_equity_note fehlen noch (kleinere Subtexte). EBITDA-Format zeigt komische Zahl wegen TEXT-Format — passe das an und ergänze die Lang-Keys.

Jetzt die EBITDA-Subzeile korrigieren (TEXT-Format) und zweite KPI-Reihe (Debt/EBITDA und DSCR) auf Zeilen 13-14 + Status-Strip Zeile 16-17:

Zwei Probleme:

  1. EBITDA: ,960 — das Komma kommt von TEXT(960,"#,##0") mit DE-Locale, das ist eigentlich korrekt (Tausender-Trennzeichen), aber bei 960 < 1000 fügt es trotzdem ein Komma ein. Workaround: anderes Format.
  2. H14 = #VALUE! — SUMPRODUCT(ABS(...)) schluckt Strings in der Range nicht (Header BaseYear+offset produziert Text wenn PlanYears<n).

H14 ist jetzt 0 (Bilanz balanciert). EBITDA-Subtext zeigt immer noch "EBITDA: ,960" — das ist ein lokales Locale-Verhalten der TEXT-Funktion. Lasse ich so stehen, da es nur ein kosmetisches Detail im 9pt-Subtext ist (Wert ist klar lesbar als "960").

Status-Strip Zeile 17, Navigations-Buttons Zeile 19-20, Footer/Disclaimer Zeile 22-24:

Status-Strip funktioniert (in Orange), Text bleibt auf "Beobachten" wegen MinCash-Unterschreitung. Brauche cover_all_consistent-Key noch:

B22 zeigt schon (eine andere) Disclaimer-Version — die war wohl schon mit ähnlichem Key bestückt. Sticker stehen, B23 hat #VALUE! weil 02_Settings!B14 (Datum) vermutlich anders gespeichert ist. Schaue ich kurz nach:

B14 ist serielle Datumszahl (46158). TEXT-Format "DD.MM.YYYY" müsste eigentlich klappen — vielleicht erwartet die Excel-Version TT.MM.JJJJ. Sicherer mit Standard TEXT(...,"yyyy-mm-dd"):

Excel hier nutzt deutsche TEXT-Format-Codes. Versuche JJJJ-MM-TT:

Datum erscheint jetzt korrekt. Letzter Schritt — Rahmen um die KPI-Karten, dünner grauer Border zwischen den Karten damit sie sichtbar getrennt sind:

Lass mich kurz das Endergebnis prüfen, damit ich dir korrekt berichten kann:

Sieht solide aus. Eine Sache fällt mir aber sofort auf: in B17 und ein paar TEXT-Stellen sind Kommas vor Zahlen — das kommt durch das deutsche Excel-Datumsformat JJJJ-MM-TT und das TEXT(F14,"#,##0"), das JJJJ-MM-TT lokal verschluckt aber #,##0 mit Comma-Tausendertrennzeichen produziert. Im Original-Output siehst du ,391 < ,500 CHF — das ist TEXT(...,"#,##0") mit Komma als Tausendertrennzeichen, was bei Werten unter 1000 zu führendem Komma wird. Ich repariere das schnell:

Sauber. Auf einen Blick siehst du jetzt:

  • Banner (
    ) – Titel + Subtitle, beides mehrsprachig.
  • Meta-Block (
    ) – Unternehmen, Währung, Sprache · Basisjahr, Planungshorizont, Datum.
  • KPI-Karten Y1 (
    ) – 8 Karten in zwei Reihen, alle per Formel an die Quell-Sheets gehängt:
    • Reihe 1: Umsatz 
      , EBITDA-Marge 
       mit absoluter EBITDA-Note, Jahresergebnis 
      , Free Cash Flow 
      , Cash zum Jahresende 
      , Eigenkapitalquote 
      .
    • Reihe 2: Verschuldungsgrad 
       mit Ampel-Status, DSCR 
      , Mindest-Cash Y1 
       mit Ampel, Bilanzgleichung 
       (Konsistent), Checks bestanden 
      , Planungshorizont 
      .
  • Status-Strip (
    ) – orangenes Banner, das aktuell sagt: „Beobachten: Mindest-Cash Y1 391 < 500 CHF. Klick für Details →". Die Formel ist eine Kaskade: erst Cash-Engpass prüfen, dann Bilanzgleichung, sonst „Alles konsistent". Sobald du den Cash-Engpass behebst, wechselt der Status automatisch.
  • Navigations-Buttons (
    ) – Inhalt, Annahmen, GuV, Dashboard, Liquidität, Checks – alle als HYPERLINK, springen direkt zu den Tabs.
  • Disclaimer + Footer (
    ) – Hinweis, dass Annahmen vom Anwender geändert werden können, plus Erstellungs-Stempel.

Alles ist über LangTable mehrsprachig (DE/EN/ES/FR). Keine Hardcodes – jede Kennzahl referenziert das jeweilige Modell-Sheet (

). Wenn du im Modell Annahmen änderst, ziehen die KPI-Karten und der Status-Strip automatisch mit..

Kommentar schreiben

Kommentare: 0