Sensitivitätstabellen (Ein- und Zwei-Variablen)

Erstellt eine Ein- und Zwei-Variablen-Sensitivitätsanalyse (Datenblatt) für einen Modelloutput in einer .xlsx-Datei mit Live-Formeln und einem Neuberechnungs-Check und liefert die Arbeitsmappe aus.

Was ist Sensitivitätstabellen (Ein- und Zwei-Variablen)?

Diese Fähigkeit erstellt eine vollständige Sensitivitätsanalyse in einer Excel-Arbeitsmappe (.xlsx), die speziell für Strategie- und Finanzmodelle entwickelt wurde. Sie identifiziert die relevanten Eingabe- und Ausgabezellen eines Modells (z. B. NPV, IRR, EPS, Marge) und erstellt ein Datenblatt, das zeigt, wie sich der Output bei Variation eines oder zwei Treiber (z. B. Preis, Volumen, Diskontsatz, Wachstum) ändert. Das Ergebnis ist eine herunterladbare Datei mit Live-Formeln, einer farbskalierten Ergebnisdarstellung und einem integrierten Prüfblock. Die Fähigkeit arbeitet unabhängig, d. h. sie verwendet openpyxl und numpy, um die Tabelle im Claude-App zu generieren – nicht über das Claude-Excel-Add-In. Sie baut zwei Versionen: eine native Excel-Datentabelle mit `{=TABLE(r,c)}`-Arrayformeln (die nach der Neuberechnung in einer realen Engine wie LibreOffice ihre Werte erhalten) und eine robuste, durch Code berechnete Fallback-Matrix (ebenfalls in Python). Ein Neuberechnungs- und Verifikationsschritt stellt sicher, dass keine Formelfehler auftreten und alle Prüfungen (z. B. Übereinstimmung der Eckzelle mit dem Live-Output) erfolgreich sind.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/andreworia/claude-excel-skills/tree/main/skills/sensitivity-tables

Installed? Explore more Produktivität & Zusammenarbeit skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht Sensitivitätstabellen (Ein- und Zwei-Variablen)?

Wann verwenden

Verwenden Sie dies, wenn ein Strategie- oder Finanzmodell einen einzelnen Schlüsseloutput hat und Sie zeigen möchten, wie dieser Output reagiert, wenn ein oder zwei Treiber über einen Bereich variiert werden. Typische Treiber sind Preis, Volumen, Diskontsatz, Wachstum, Abwanderung oder Kosten pro Einheit. Diese Fähigkeit ERSTELLT eine herunterladbare .xlsx von Grund auf in der Claude-App (openpyxl plus numpy), mit Live-Formeln und einem Neuberechnungs- und Verifikationsdurchlauf. Es ist nicht das Claude-Excel-Add-In.

Was erstellt wird

Ein einzelner Sensitivity-Tab, der an ein bestehendes Modell anknüpft. Er referenziert die Eingabezellen und die Ausgabezelle des Modells, legt Ein-Variablen- und Zwei-Variablen-Gitter an und färbt den Ergebnisblock mit einer Farbskala ein. Wenn das Quellmodell auf einem anderen Tab liegt, verknüpft sich das Gitter mit tabellenübergreifenden Referenzen, sodass es live bleibt.

Erstellungs-Workflow

  1. Identifizieren Sie die Ausgabezelle (z. B. Model!B40 für NPV) und die eine oder zwei Eingabezellen, die sie antreiben (z. B. Model!B6 Diskontsatz, Model!B7 Wachstum).
  2. Bestätigen Sie, dass der Output eine Live-Formelkette zurück zu diesen Eingaben ist. Wenn der Output hartcodiert ist, stoppen Sie und verdrahten Sie das Modell zuerst; eine Datentabelle über eine Konstante gibt die Konstante zurück.
  3. Wählen Sie Eingabebereiche um den Basisfall herum (z. B. Basisdiskontsatz 10 %, Durchlauf 6 bis 14 % in Schritten von 2).
  4. Erstellen Sie die native Excel-Datentabellenstruktur: Eckformel, Eingabeachsen und das {=TABLE(r,c)}-Array (siehe Spezifikation).
  5. ERSTELLEN SIE AUCH das codeberechnete Gitter als robuste Fallback-Lösung: Bewerten Sie das Modell in Python für jede Eingabekombination neu und schreiben Sie die resultierenden Werte als beschriftete Matrix.
  6. Wenden Sie eine 3-Farben-Skala auf den Ergebnisblock an und beschriften Sie beide Achsen mit den Namen der Eingabezellen.
  7. Fügen Sie den Prüfblock hinzu.
  8. Berechnen Sie die Arbeitsmappe in einer echten Engine (headless LibreOffice) neu.
  9. Überprüfen Sie null Formelfehler (#REF!, #DIV/0!, #WERT!, #NAME?), bestätigen Sie, dass die Prüfungen bestanden werden, und liefern Sie die .xlsx aus.

Tab-für-Tab-Spezifikation

Sensitivity-Tab, Ein-Variablen-Block

Wählen Sie eine Layout-Richtung. Für Eingaben, die eine SPALTE hinunterlaufen:

  • B3: die Ausgabeformel, die den Live-Output referenziert: =Model!B40. Dies ist die Eckzelle.
  • A4:A10: die Eingabewerte, die Sie durchlaufen (blaue Eingaben), z. B. 6%, 8%, 10%, 12%, 14%.
  • B4:B10: die Datentabellen-Ergebnisspalte.
  • Wählen Sie A3:B10 aus, dann Daten > Was-wäre-wenn-Analyse > Datentabelle, lassen Sie das Feld "Zeileneingabezelle" leer und setzen Sie "Spalteneingabezelle" auf Model!B6. Excel schreibt {=TABLE(,Model!B6)} in B4:B10.
  • openpyxl kann die Array-Formelzeichenfolge =TABLE(,Model!B6) in den Block und =Model!B40 in die Eckzelle schreiben, aber die Werte werden erst nach der Neuberechnung in einer echten Engine ausgefüllt.

Codeberechnete Fallback-Lösung für denselben Block (empfohlen bei der Generierung per Code), geschrieben als beschriftete Matrix darunter, z. B. ab A14:

  • A14: Beschriftung "Diskontsatz". B14: "NPV (berechnet)".
  • Für jeden Eingabewert in A15:A21 setzt Python Model!B6 auf diesen Wert, berechnet die Modelllogik in numpy neu und schreibt den resultierenden NPV als einfachen Wert in Spalte B.
  • Behalten Sie beide: Die native Datentabelle beweist, dass sie live ist; die berechnete Matrix garantiert ausgefüllte Zahlen, auch bevor der Benutzer Excel öffnet.

Sensitivity-Tab, Zwei-Variablen-Block

  • Eckzelle E3: =Model!B40 (der Live-Output).
  • E4:E10: Zeileneingabewerte die LINKE Kante hinunter (erster Treiber, z. B. Wachstum 0%, 1%, ..., 6%).
  • F3:L3: Spalteneingabewerte über die OBERE Zeile (zweiter Treiber, z. B. Diskontsatz 6% ... 14%).
  • Wählen Sie E3:L10 aus, Daten > Was-wäre-wenn-Analyse > Datentabelle, Zeileneingabezelle = Model!B7 (der horizontale Treiber), Spalteneingabezelle = Model!B6 (der vertikale Treiber). Excel füllt F4:L10 mit {=TABLE(Model!B7,Model!B6)}.
  • Achten Sie auf die Ausrichtung: Die Zelle, die mit der OBERE Zeile verbunden ist, geht in das Feld "Zeileneingabezelle"; die Zelle, die mit der LINKEN Spalte verbunden ist, geht in das Feld "Spalteneingabezelle". Ein Vertauschen transponiert das Ergebnis stillschweigend.
  • Codeberechnete Fallback-Lösung: Eine doppelte Schleife in Python über beide Achsen, die die Wertematrix in einen beschrifteten Block schreibt (Achsenüberschriften in Grün, wenn sie aus dem Modell stammen, blau, wenn es Literal-Durchlaufwerte sind).

Auswahl der Achsenbereiche

  • Zentrieren Sie jede Achse auf den Basisfallwert, sodass die Basis in der mittleren Zeile und der mittleren Spalte sitzt, was den Mittelzellen-Check sinnvoll macht.
  • Verwenden Sie eine ungerade Anzahl von Schritten (5, 7 oder 9), sodass eine einzelne mittlere Zelle exakt mit dem Basisfall übereinstimmt, anstatt zwischen zwei Zellen zu liegen.
  • Halten Sie die Schrittgrößen auf jeder Achse gleichmäßig (konstantes Inkrement), damit das Raster als sauberer Gradient lesbar ist und die Farbskala interpretierbar bleibt.
  • Bei Zinssätzen in absoluten Punkten durchlaufen (8%, 10%, 12%), nicht als relativer Prozentsatz des Basisfalls, um Leser nicht zu verwirren.

openpyxl-Erstellungshinweise

  • Schreiben Sie die Eckzelle als echte Formelzeichenfolge: ws["B3"] = "=Model!B40". Fügen Sie nicht den aktuellen numerischen Wert des Outputs ein.
  • Für das native Datentabellen-Array kann openpyxl den =TABLE(...)-Text speichern, aber eine echte Engine muss neu berechnen, um den Block zu füllen; behandeln Sie das Array als Platzhalter, bis der Neuberechnungsschritt ausgeführt wird.
  • Beim Schreiben der berechneten Fallback-Lösung setzen Sie die Datenwerte mit Python (ws.cell(row=r, column=c, value=float(npv))) und halten Sie sie visuell getrennt vom Live-Block mit einer Kopfnotiz wie "berechneter Schnappschuss".
  • Wenden Sie die Farbskala mit openpyxl.formatting.rule.ColorScaleRule über den Ergebnisblock an, ordnen Sie Min einer Farbe und Max einer anderen über einen Mittelpunkt zu.

Formel- und Formatierungskonventionen

  • Blaue Schrift für Eingaben (die durchlaufenen Achsenwerte, die Sie eingeben).
  • Schwarze Schrift für tabelleninterne Formeln.
  • Grüne Schrift für tabellenübergreifende Verknüpfungen wie =Model!B40.
  • Keine Hardcodes, wo eine Formel hingehört: Die Eckzelle muss =Model!B40 sein, niemals die getippte Basisfallzahl.
  • Eine konsistente Formel pro Zeile oder Spalte: Der gesamte Datentabellenblock ist ein einzelnes Array; die berechnete Fallback-Lösung verwendet einen Python-Ausdruck, der auf das gesamte Raster angewendet wird.
  • Zahlenformate: Zinssätze als 0,0%, Währungsoutputs als #.##0, Verhältnisse als 0,00. Achsenwerte entsprechen der Einheit der Eingabezelle, die sie ersetzen.

Prüfungen

  • Eckzelle entspricht dem Live-Output: =(B3=Model!B40) gibt WAHR zurück.
  • Achsen mit den Namen der Eingabezellen beschriftet (eine Textbeschriftung über oder neben jeder Achse, die den Treiber und seine Zelladresse nennt).
  • Mitte des Rasters stimmt mit dem Basisfall überein: Die Rasterzelle an der Basisfall-Zeile und Basisfall-Spalte entspricht dem aktuellen Output des Modells, =(<Mittelzelle>=Model!B40) WAHR.
  • Für die berechnete Fallback-Lösung: Die Zelle bei den Basiseingaben entspricht der nativen Datentabellen-Zelle bei denselben Eingaben (innerhalb der Rundung).

Neuberechnen und verifizieren

Speichern Sie mit openpyxl, berechnen Sie dann headless neu (z. B. libreoffice --headless --convert-to xlsx), damit =TABLE(...) und tabellenübergreifende Links Werte erhalten. Laden Sie neu und scannen Sie jede Zelle auf #REF!, #DIV/0!, #WERT!, #NAME?. Bestätigen Sie, dass die drei Prüfungen WAHR ergeben. Wenn ein Fehler oder FALSCH auftritt, korrigieren Sie die Referenz oder den Bereich und wiederholen Sie den Vorgang, bis alles sauber ist, und liefern Sie dann aus.

Zu sammelnde Eingaben

  • Pfad zum Quellmodell und die genaue Ausgabezelladresse.
  • Die eine oder zwei Eingabezelladressen zum Durchlaufen.
  • Basisfallwerte und der gewünschte Bereich und Schritt für jede Achse.
  • Einheiten und bevorzugte Zahlenformate für Achsen und Output.

Beispiel

Hypothetisches Modell: Model!B40 = Projekt-NPV, angetrieben durch Model!B6 Diskontsatz (Basis 10%) und Model!B7 Umsatzwachstum (Basis 3%). Ein-Variablen-Block durchläuft Diskontsatz 6% bis 14% in 2%-Schritten und liefert NPV von (z. B.) 1.210 / 980 / 760 / 560 / 380 in hypothetischen Einheiten. Zwei-Variablen-Block kreuzt Wachstum 0% bis 6% gegen Diskontsatz 6% bis 14%; die Mittelzelle bei 3% Wachstum und 10% Diskontsatz entspricht Model!B40 von 760, was bestätigt, dass der Basisfall in der Mitte des Rasters sitzt.

Individual skills in this repo

This repo contains 11 individual skills — each has its own dedicated page.

andreworia/assumption-registry-builder

Creates a structured assumption register for any Excel model with columns for name, category, base value, source, Bull/Bear values, sensitivity rank, and owner, plus a formula for computing sensitivity rank from Data Table outputs.

andreworia/data-cleaning-for-excel

Turns pasted or exported data with mixed formats, blank rows, or duplicates into a clean, consistently formatted range ready for analysis. Use it right after pasting raw data into a worksheet.

andreworia/formula-audit-checker

Provides a systematic audit checklist for Excel model formula logic, hardcoded values, circular references, and error handling, with step-by-step instructions for using Excel's native auditing tools.

andreworia/inputs-calcs-outputs-design

Enforces the three-tab separation principle for any Excel model, producing a full design for a dedicated Inputs tab, one or more Calculations tabs, and a clean Outputs tab with a conventions checklist.

andreworia/model-architecture-template

Defines the master tab structure, naming conventions, color codes, number formats, and print area setup for any new strategy or finance Excel model, serving as the structural template before any content is added.

andreworia/output-summary-tab

Designs the executive summary tab of an Excel model with KPI tiles, a narrative block, a sensitivity summary, and an assumption log, formatted for print or screenshot use in a board pack.

andreworia/pivot-table-builder

Specifies and builds a pivot table from a flat data range, choosing rows, columns, values, and filters. Use it when you have raw tabular data and need a summary view without building it cell by cell.

andreworia/revenue-build

Builds a driver-based revenue forecast .xlsx with live formulas across separate drivers, build, and output tabs plus checks, rolling a customer or units schedule (beginning, adds, churn, ending) into revenue with Base/Bull/Bear scenario toggles. Use when someone needs a bottom-up revenue model, an ARR build, or a driver-based forecast for planning or a board deck. Do not trigger for editing an existing workbook through the Claude for Excel add-in.

andreworia/scenario-manager

Builds a Base/Bull/Bear scenario switching layer for a model in a .xlsx with a live selector, CHOOSE or INDEX assumption links, a side-by-side output comparison, and a recalc check, then delivers the workbook. Use when someone wants an auditable scenario toggle instead of Excel's hidden Scenario Manager. Do not trigger for editing an existing workbook through the Claude for Excel add-in.

andreworia/sensitivity-tornado

Ranks variable sensitivities to a key output and builds a tornado chart by swinging each input over a defined range, computing output impact, and producing a horizontal bar chart data structure.

andreworia/unit-economics

Builds a unit-economics and cohort .xlsx with live formulas across separate assumptions, cohort, and output tabs plus checks, computing CAC, LTV, LTV/CAC, and CAC payback from a monthly cohort retention grid. Use when someone needs unit economics, an LTV/CAC analysis, a payback model, or a cohort retention build. Do not trigger for editing an existing workbook through the Claude for Excel add-in.

Verwandte Skills