Hallo Imhotep,
mit drei Komboboxen wird’s ein wenig komplizierter, weil es nicht so übersichtlich in einer Tabelle abzubilden ist - Du hat hier ja eine dreifache „Vererbung“ bzw. drei Dimensionen.
Zur Erklärung der Funktionen bzw. Namensdefinition:
Ganz ehrlich, ich habe mich oft gefragt: Wofür ist „BEREICH.VERSCHIEBEN“? Mittlerweile sage ich: eine der geilsten Funktionen…
Fangen wir langsam an:
Rasse: =BEREICH.VERSCHIEBEN(Charaktere!$A$1;;;;ANZAHL2(Charaktere!$1:blush:1))
Rasse wird definiert als der Bereich ab Charaktere!$A$1, verschoben um 0 Zellen nach unten und nach rechts (weil es ab A1 losgeht), und keine zusätzliche Zeile nach unten (eben nur in der ersten Zeile), und die Anzahl der unterschiedlichen Zellen (nicht: Zahlen, s. ANZAHL) nach rechts, also die Spaltenanzahl. Heißt im Klartext: Die Rassen stehen in Zeile 1, ohne Leerzellen.
RasseAuswahl: =Auswahl!$A$2
Die Auswahl wird in Zelle A2 getroffen. Das ist trivial und dient lediglich der Übersichtlichkeit.
Klasse: =BEREICH.VERSCHIEBEN(Charaktere!$A$1;1;VERGLEICH(RasseAuswahl;Rasse;0)-1;ANZAHL2(INDIREKT(„Charaktere!S“&VERGLEICH(RasseAuswahl;Rasse;0);FALSCH))-1)
Ein bisschen komplizierter, wenn auch nicht wirklich… Wir fangen in A1 an. Dann verschieben wir das um 1 nach unten (in der ersten Zeile sind die Rassen, darunter erst die Ausprägungen).
VERGLEICH(RasseAuswahl;Rasse;0) liefert die Spalte, in der die Auswahl steht (suche die Auswahl in der Zeile der Rassen und liefere die Spalte, s. o.).
Das -1 hinten dran reduziert das Verschieben: Wenn ich den Eintrag in der ersten Spalte finde, darf ich, weil ich auch mit A1 in der ersten Spalte anfange, nicht noch um eine zusätzliche Spalte verschieben.
Insgesamt hole ich mir hier also die Spalte.
ANZAHL2(INDIREKT(„Charaktere!S“&VERGLEICH(RasseAuswahl;Rasse;0);FALSCH))-1
Jetzt geht’s um die Zeilen. VERGLEICH(RasseAuswahl;Rasse;0) liefert, wie oben beschrieben, die Spalte, in der meine Rasse-Auswahl in der ersten Zeile zu finden ist.
INDIREKT(„Charaktere!S“&VERGLEICH(RasseAuswahl;Rasse;0);FALSCH) liefert mit dann den Bereich aus Tabelle „Charaktere“ in der besagten Spalte („S“ wie Spalte, x wie Nummer; FALSCH als Z1S1-Bezugsart, also Sx wie Spalte x, nicht A1 wie Zeile 1, Spalte A/1.
ANZAHL2(…) liefert die Anzahl der Texte in besagter Spalte; davon noch -1, weil die „Kopfzeile“ mit der Rasse zu ignorieren ist…
Jetzt kannst Du Dir also analog eine zweite Tabelle aufbauen, in der alle Charaktere (ab jeweils Zeile 2) mit zusätzlichen Eigenschaften enthalten sind, die Du mit einer analogen Namen- und Gültigkeitsdefinition versorgst…
Alles klar soweit? 
Gruß, Manfred