Entscheidungstabelle: Regeln in einer Tabelle pflegen und als API ausführen

Eine Entscheidungstabelle ist eine Tabelle, die die Bedingungen einer Entscheidung auflistet und für jede Kombination das Ergebnis nennt. Jede Regel ist eine Zeile, und aus verschachtelter Wenn-Dann-Logik wird etwas, das jeder lesen, prüfen und ändern kann.

Was eine Entscheidungstabelle ist

Eine Entscheidungstabelle hat drei Teile. Bedingungen sind die Fragen, von denen die Entscheidung abhängt: im Beispiel die Kundenstufe und der Bestellwert. Regeln sind die Kombinationen von Antworten, auf die es ankommt, eine pro Zeile. Ergebnisse (auch Aktionen genannt) sagen, was passiert, wenn eine Regel zutrifft: hier der Rabatt und ob jemand ihn freigeben muss.

Lies sie von oben nach unten: Die erste Regel, deren Bedingungen alle erfüllt sind, entscheidet. Ein Gold-Kunde mit einem Bestellwert von 12.000 bekommt 15 % und braucht eine Freigabe (Regel 1). Regel 8 ist die Standardregel: Sie fängt jeden Fall auf, den keine andere Regel abdeckt, und so gibt die Entscheidungstabelle immer eine Antwort.

Manche schreiben jede Regel als Spalte und die Bedingungen als Zeilen; der Inhalt ist derselbe. In einem Spreadsheet sind Regeln als Zeilen leichter zu pflegen, weil eine neue Regel eine neue Zeile ist.

Eine Rabattentscheidung: zwei Bedingungen, zwei Ergebnisse, acht Regeln
RegelKundenstufeBestellwertRabattFreigabe
1Goldab 10.00015 %ja
2Goldab 2.50010 %nein
3Goldbeliebig5 %nein
4Silverab 10.00010 %ja
5Silverab 2.5006 %nein
6Silverbeliebig3 %nein
7Standardab 10.0003 %nein
8beliebig (sonst)beliebig0 %nein

Warum Teams Entscheidungstabellen nutzen.

Zeilen statt verschachtelter WENNs

Dieselbe Rabattlogik als Code ist ein Wenn in einem Wenn in einem Wenn. In der Entscheidungstabelle steht jede Regel in einer eigenen Zeile: Wer die Rabattpolitik verantwortet, kann sie lesen, und wer prüft, geht Regel für Regel durch.

Vollständig und ohne Widersprüche

Eine Entscheidungstabelle macht Lücken sichtbar: Drei Kundenstufen und drei Bestellwert-Bereiche ergeben neun Kombinationen, und du kannst abhaken, dass jede bei einer Regel landet. Zwei Regeln, die für denselben Fall Verschiedenes ergeben, stehen nebeneinander.

Gepflegt von denen, die die Regeln kennen

Der Vertrieb verschiebt eine Schwelle, die Finanzabteilung ändert einen Satz. Die Änderung ist eine geänderte Zelle, gemacht von der Fachperson, und die Software drumherum bleibt, wie sie ist.

Eine Entscheidungstabelle in einem Spreadsheet aufbauen.

Ein Spreadsheet wertet eine Entscheidungstabelle mit Verweisformeln aus. Welche passt, hängt von der Form ab: eine Matrix für eine oder zwei Bedingungen, eine Regelliste, wenn sich Regeln überschneiden oder eine Bedingung offenlassen.

Form 1: eine Matrix

Eine Bedingung nach unten, eine nach rechts. In B1 steht die Kundenstufe, in B2 der Bestellwert.

HIJK
8Bestellwert abGoldSilverStandard
905 %3 %0 %
102.50010 %6 %0 %
1110.00015 %10 %3 %

Form 2: eine Regelliste

EingabenErgebnisse

Eine Regel pro Zeile; Spalte F sagt, ob die Zeile zu den Eingaben in B1 und B2 passt.

AB
1KundenstufeGold
2Bestellwert12.000
3
4Rabatt15 %
5Freigabe nötigWAHR
6Angewandte Regel1
ABCDEF
8RegelKundenstufeBestellwert abRabattFreigabe nötigTrifft zu
91Gold10.00015 %WAHRWAHR
102Gold2.50010 %FALSCHWAHR
113Gold05 %FALSCHWAHR
124Silver10.00010 %WAHRFALSCH
135Silver2.5006 %FALSCHFALSCH
146Silver03 %FALSCHFALSCH
157Standard10.0003 %FALSCHFALSCH
16800 %FALSCHWAHR
Eine Bedingung mit Bereichen

Ein Verweis mit Schwellen

Bei einer einzigen Bedingung ist die Entscheidungstabelle eine Liste aus Schwellen und Ergebnissen, zum Beispiel die Gold-Spalte der Matrix. XLOOKUP mit Vergleichsmodus -1 liefert den Eintrag der größten Schwelle, die nicht über dem Bestellwert liegt.

=XLOOKUP(B2;H9:H11;I9:I11;;-1)

Dasselbe mit INDEX und MATCH. Hier müssen die Schwellen aufsteigend sortiert sein.

=INDEX(I9:I11;MATCH(B2;H9:H11;1))

Für einen Bestellwert von 12.000 liefern beide 15 %.

Zwei Bedingungen

Eine Matrix mit zwei Verweisen

Bei zwei Bedingungen kommt die eine in die Zeilen und die andere in die Spalten. INDEX nimmt die Zeile aus einem MATCH und die Spalte aus einem zweiten. IFERROR liefert den Standardwert: Eine Kundenstufe, die nicht in der Kopfzeile steht, bekommt 0.

=IFERROR(INDEX(I9:K11;MATCH(B2;H9:H11;1);MATCH(B1;I8:K8;0));0)

Gold und 12.000 ergeben 15 %; eine Kundenstufe, die die Matrix nicht kennt, ergibt 0 %.

Erste zutreffende Regel

Eine Regelliste mit Hilfsspalte

Eine Matrix reicht nicht mehr, wenn sich Regeln überschneiden, eine Bedingung offenlassen oder von mehr als zwei Bedingungen abhängen. Dann schreibst du eine Regel pro Zeile, und eine Hilfsspalte sagt, ob die Zeile zutrifft; eine leere Bedingungszelle heißt „beliebig“. Das ist F9, nach unten kopiert bis F16:

=AND(OR(B9="";B9=$B$1);$B$2>=C9)

Die Ergebnisse in B4, B5 und B6 nehmen die erste Zeile, deren Hilfszelle WAHR ist:

=XLOOKUP(TRUE;F9:F16;D9:D16)
=XLOOKUP(TRUE;F9:F16;E9:E16)
=XLOOKUP(TRUE;F9:F16;A9:A16)

Ohne Hilfsspalte behält FILTER die zutreffenden Zeilen, und INDEX nimmt die erste:

=INDEX(FILTER(D9:D16;((B9:B16="")+(B9:B16=B1))*(B2>=C9:C16));1)

Gold und 12.000 treffen auf die Regeln 1, 2, 3 und 8 zu. Die erste entscheidet: 15 %, Freigabe nötig, Regel 1.

Die Standardzeile

Eine letzte Regel, die immer zutrifft

Regel 8 nennt keine Kundenstufe und beginnt bei 0, also trifft sie auf jeden Fall zu. Ohne sie endet ein Fall, den keine Regel abdeckt, in #N/A, und wer die API aufruft, bekommt diesen Fehlertext als Ergebnis. Lass die Standardzeile an letzter Stelle und gib ihr ein sicheres Ergebnis.

Ein Standard-Kunde mit einem Bestellwert von 9.999 landet bei Regel 8: 0 %, keine Freigabe.

Die Formeln stehen so in der Demo-Arbeitsmappe des Live-Beispiels unten, dort mit Komma statt Semikolon. In deutschem Excel heißen die Funktionen XVERWEIS (XLOOKUP), VERGLEICH (MATCH), WENNFEHLER (IFERROR), UND (AND), ODER (OR) und WAHR (TRUE); INDEX und FILTER heißen gleich.

Von der Entscheidungstabelle zur API.

Eine Entscheidungstabelle in einer Datei beantwortet eine Frage nach der anderen, für eine Person. Als API veröffentlicht, antwortet sie deinem Shop, deinem CRM und deinen Workflows mit denselben Regeln.

Schritt 1

Eingaben und Ergebnisse markieren

Die Bedingungszellen werden zu Eingaben (B1 als tier, B2 als order_value), die Ergebniszellen zu Ergebnissen (B4, B5, B6). Eine Eingabe lässt sich auf einen Bereich oder erlaubte Werte begrenzen; ein Aufruf außerhalb wird abgelehnt, bevor gerechnet wird.

Schritt 2

Testen und veröffentlichen

Probiere bekannte Fälle im Test-Panel aus, dann veröffentliche. Um eine Regel zu ändern, bearbeitest du die Entscheidungstabelle und veröffentlichst neu; bis dahin bekommen Aufrufer weiter die veröffentlichte Version.

Schritt 3

Aufrufen

Eine Anfrage mit den Werten der Bedingungen liefert die Ergebnisse als JSON. Aufrufer sehen Eingaben und Ergebnisse, nie die Formeln.

Die Anfrage und die Antwort

GET https://spreadapi.io/api/v1/services/{serviceId}/execute?tier=Gold&order_value=12000
{
  "inputs": [
    { "name": "tier", "title": "Customer tier", "value": "Gold" },
    { "name": "order_value", "title": "Order value", "value": 12000 }
  ],
  "outputs": [
    { "name": "discount", "title": "Discount",
      "value": 0.15, "formatString": "0%" },
    { "name": "approval_needed", "title": "Approval needed",
      "value": true },
    { "name": "rule", "title": "Rule applied", "value": 1 }
  ]
}

Gekürzt: Die Antwort enthält außerdem die Teile service und metadata. Ein Prozentwert kommt als Dezimalzahl zurück, 0.15 für 15 %.

RabattentscheidungLive-Beispiel · erfundene Regeln
Beispielwerte der Demo-Arbeitsmappe
Rabatt15 %
Freigabe nötig
ja
Angewandte Regel
1: Gold, ab 10.000
Aufruf ansehen

Ein Beispiel, kein Live-Aufruf: die Anfrage für die Standardwerte und die Ausgaben der Antwort.

GETAnfrage
https://spreadapi.io/api/v1/services/410c7f87-78c7-42db-83dd-edbe83cb2d03_mwfd9hcw69zkq/execute?tier=Gold&order_value=12000
Antwort
{
  "outputs": [
    {
      "name": "discount",
      "title": "Discount",
      "value": 0.15,
      "formatString": "0%"
    },
    {
      "name": "approval_needed",
      "title": "Approval needed",
      "value": true
    },
    {
      "name": "rule",
      "title": "Rule applied",
      "value": 1
    }
  ]
}

In einem Workflow ist das ein einziger Schritt: n8n, Zapier, Make und Power Automate senden die Werte und bekommen die Entscheidung zurück (Geschäftsregeln im Workflow). KI-Assistenten wie Claude und ChatGPT nutzen dieselbe Entscheidungstabelle als Tool über MCP (Excel-MCP-Server).

Die Regeln müssen nicht jede Zahl selbst enthalten: Formeln können bei jeder Berechnung eine Preisliste aus deinem eigenen System lesen (Live-Daten). Gemessen an unserem Demo-Rechner dauert eine Berechnung auf dem Server etwa 20 ms. Der Basic-Plan ist kostenlos: ein veröffentlichter Service, 1.000 Aufrufe im Monat, Arbeitsmappen bis 250 KB.

Entscheidungstabelle, DMN oder eine Rules Engine?

DMN (Decision Model and Notation) ist ein Standard, um Entscheidungen zu beschreiben. Seine Entscheidungstabellen haben ein festes Format und eine Hit Policy. Sie legt fest, was passiert, wenn mehrere Regeln zutreffen: Unique (nur eine Regel darf zutreffen), First (der erste Treffer gewinnt) und Collect (alle Treffer werden zurückgegeben) sind drei davon. Eigene Werkzeuge modellieren solche Tabellen und führen sie aus.

Eine Entscheidungstabelle in einem Spreadsheet ist weniger formal. Ihre Hit Policy ist das, was deine Formeln tun: Der XLOOKUP auf die Hilfsspalte oben verhält sich wie „First“, und nichts hindert zwei Zeilen daran, sich zu überschneiden. SpreadAPI ergänzt die API und die Prüfung der Eingaben. Es gibt keinen Versionsverlauf mit Rollback, keinen Freigabe-Workflow und keinen Audit-Trail, wer welche Regel geändert hat.

Müssen Änderungen freigegeben, versioniert und auditiert werden, nimm DMN-Werkzeuge oder eine Rules Engine. Kann eine Fachperson oder ein Team die Regeln in einem Spreadsheet lesen und pflegen, ist das veröffentlichte Spreadsheet der kürzere Weg. Mehr zu dieser Grenze: Eine Business Rules Engine, oder einfach ein Spreadsheet?

Eine gute Entscheidungstabelle: die Checkliste

Sieben Punkte, die du prüfst, bevor andere Systeme von der Entscheidungstabelle abhängen.

  • Jede Bedingung hat eine eigene Spalte, mit klarem Namen und Einheit.
  • Schwellen sagen, zu welcher Seite sie gehören: „ab 2.500“ schließt 2.500 ein.
  • Jeder mögliche Fall landet bei einer Regel; eine Standardzeile fängt den Rest auf.
  • Wo sich Regeln überschneiden, steht die Reihenfolge fest: Der erste Treffer gewinnt.
  • Ergebnisse sind Werte, mit denen ein Programm arbeiten kann: 0,15 und WAHR, nicht „etwa 15 %“.
  • Jede Regel hat eine Nummer, und die Antwort nennt die angewandte Regel.
  • Bekannte Fälle sind aufgeschrieben und werden nach jeder Änderung getestet.

Fragen zu Entscheidungstabellen

Was ist eine Entscheidungstabelle?

Eine Entscheidungstabelle listet die Bedingungen einer Entscheidung auf und nennt für jede Kombination das Ergebnis. Jede Regel ist eine Zeile oder eine Spalte. Sie ersetzt verschachtelte Wenn-Dann-Logik durch eine Tabelle, die Menschen lesen, auf Lücken prüfen und ändern können.

Was ist der Unterschied zwischen Entscheidungstabelle und Entscheidungsbaum?

Beide beschreiben dieselbe Logik. Ein Entscheidungsbaum stellt eine Frage nach der anderen und verzweigt; er zeigt die Reihenfolge der Fragen und wird unübersichtlich, wenn er wächst. Eine Entscheidungstabelle zeigt alle Regeln nebeneinander, und fehlende Kombinationen und Widersprüche fallen leichter auf. Jeder Pfad eines Baums von der Wurzel zum Blatt ist eine Regel einer Tabelle.

Kann ich Excel für Entscheidungstabellen nutzen?

Ja. Schreib eine Regel pro Zeile und werte die Entscheidungstabelle mit Verweisformeln aus: XVERWEIS oder INDEX und VERGLEICH für Schwellen und Matrizen, eine Hilfsspalte oder FILTER, wenn die erste zutreffende Regel gewinnt. Excel prüft die Tabelle nicht auf Lücken oder Überschneidungen; das machst du mit Testfällen.

Wie rufe ich eine Entscheidungstabelle aus einem Workflow auf?

Veröffentliche die Arbeitsmappe mit SpreadAPI und ruf sie als einen Schritt auf: mit dem SpreadAPI-Node in n8n, der Aktion in Zapier, dem Custom Connector in Power Automate oder einem HTTP-Schritt in Make und anderen Tools. Der Schritt sendet die Werte der Bedingungen und bekommt die Ergebnisse als JSON zurück.

Mach aus deiner Entscheidungstabelle eine API.