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.
| Regel | Kundenstufe | Bestellwert | Rabatt | Freigabe |
|---|---|---|---|---|
| 1 | Gold | ab 10.000 | 15 % | ja |
| 2 | Gold | ab 2.500 | 10 % | nein |
| 3 | Gold | beliebig | 5 % | nein |
| 4 | Silver | ab 10.000 | 10 % | ja |
| 5 | Silver | ab 2.500 | 6 % | nein |
| 6 | Silver | beliebig | 3 % | nein |
| 7 | Standard | ab 10.000 | 3 % | nein |
| 8 | beliebig (sonst) | beliebig | 0 % | 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.
| H | I | J | K | |
|---|---|---|---|---|
| 8 | Bestellwert ab | Gold | Silver | Standard |
| 9 | 0 | 5 % | 3 % | 0 % |
| 10 | 2.500 | 10 % | 6 % | 0 % |
| 11 | 10.000 | 15 % | 10 % | 3 % |
Form 2: eine Regelliste
EingabenErgebnisseEine Regel pro Zeile; Spalte F sagt, ob die Zeile zu den Eingaben in B1 und B2 passt.
| A | B | |
|---|---|---|
| 1 | Kundenstufe | Gold |
| 2 | Bestellwert | 12.000 |
| 3 | ||
| 4 | Rabatt | 15 % |
| 5 | Freigabe nötig | WAHR |
| 6 | Angewandte Regel | 1 |
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 8 | Regel | Kundenstufe | Bestellwert ab | Rabatt | Freigabe nötig | Trifft zu |
| 9 | 1 | Gold | 10.000 | 15 % | WAHR | WAHR |
| 10 | 2 | Gold | 2.500 | 10 % | FALSCH | WAHR |
| 11 | 3 | Gold | 0 | 5 % | FALSCH | WAHR |
| 12 | 4 | Silver | 10.000 | 10 % | WAHR | FALSCH |
| 13 | 5 | Silver | 2.500 | 6 % | FALSCH | FALSCH |
| 14 | 6 | Silver | 0 | 3 % | FALSCH | FALSCH |
| 15 | 7 | Standard | 10.000 | 3 % | FALSCH | FALSCH |
| 16 | 8 | 0 | 0 % | FALSCH | WAHR |
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 %.
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 %.
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.
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.
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.
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.
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 %.
- 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.
https://spreadapi.io/api/v1/services/410c7f87-78c7-42db-83dd-edbe83cb2d03_mwfd9hcw69zkq/execute?tier=Gold&order_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
}
]
}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.