Vielfach verschachtelte Bedingung auswerten

Ich benötige in Excel 97 eine neunfach verschachtelte Wenn-Funktion. Excel selbst erlaubt aber lediglich sieben verschachtelte Ebenen. Gibt es an dieser Stelle einen geheimen Trick oder eine Lösung, um die Wenn-Funktion in Excel 97 neunfach zu verschachteln?

Wie Sie richtig bemerkt haben, lässt sich die Funktion WENN in Excel lediglich über sieben Ebenen verschachteln, was in den meisten Fällen auch ausreichend ist. Zur Lösung Ihres Problems greifen Sie am besten auf die Fähigkeiten von Visual Basic for Applications (VBA) zurück und definieren dort eine eigene Funktion.

Bereiten Sie zunächst Ihr Arbeitsblatt in Excel so weit vor, dass die benötigten Eingabewerte für die verschachtelten Bedingungen zur Verfügung stehen. Starten Sie anschließend den Visual-Basic-Editor mit dem Befehl »Extras | Makro | Visual-Basic-Editor«. Wählen Sie dort den Befehl »Einfügen | Modul« und geben Sie danach einen Programm-Code zur Definition einer eigenen Funktion zum Beispiel folgendermaßen ein:


Function Entscheidung(W1, W2, W3, W4, W5, W6, W7, W8, W9)
Entscheidung = „W0“
If W1 > 0 Then
Entscheidung = „W1“
If W2 > 0 Then
Entscheidung = „W2“
If W3 > 0 Then

Entscheidung = „W3“
If W4 > 0 Then
Entscheidung = „W4“
If W5 > 0 Then
Entscheidung = „W5“
If W6 > 0 Then
Entscheidung = „W6“
If W7 > 0 Then
Entscheidung = „W7“
If W8 > 0 Then
Entscheidung = „W8“
If W9 > 0 Then
Entscheidung =“W9“
End If
End If
End If
End If
End If
End If
End If
End If
End If
End Function



Der Aufbau des Programm-Codes dient an dieser Stelle lediglich als Beispiel für das Prinzip. Auf insgesamt neun Ebenen dienen auch neun verschiedene Werte jeweils als Vergleichsgröße in einer Bedingung. Diese Werte sind der Funktion als Argumente zu übergeben. Abhängig vom Ergebnis der einzelnen Bedingungen erhält die Funktion einen Wert als Ergebnis zugewiesen. Das Beispiel prüft sukzessiv, ob die Eingabewerte positiv sind und informiert anschließend mit einem Kürzel, bis zu welchem Argument die Werte positiv sind. Sie können die Bedingungen nach Belieben ändern oder sie auch durch »Else«-Abschnitte ergänzen.
Falls nur ein einzelner Wert in die Bedingungen eingeht, können Sie den Aufbau mit der Funktion »Case Select« übersichtlicher gestalten, etwa in folgender Form:



Function Entscheidung2(Wert1, Wert2, Wert3)
Select Case Wert1
Case 1
Entscheidung2 = Wert2
Case 2
Entscheidung2 = Wert3
Case 3
Entscheidung2 = Wert2 + Wert3
Case 4
Entscheidung2 = Wert2 * Wert3
Case 5
Entscheidung2 = Wert2 * Wert2
Case 6
Entscheidung2 = 3 * Wert2
Case 7
Entscheidung2 = Wert3 / 3
Case 8
Entscheidung2 = Wert3 * Wert3
Case 9
Entscheidung2 = Wert2 / Wert3
Case Else
Entscheidung2 = 0
End Select
End Function



Dieses Beispiel entscheidet anhand der Variablen »Wert1«, welche Rechenoperationen mit den weiteren Argumenten der selbst definierten Funktion auszuführen sind. Auch an dieser Stelle dient das Beispiel lediglich als Muster für eine Funktion, die Sie Ihren konkreten Anforderungen entsprechend festlegen müssen. Auf der Heft-CD zu dieser Ausgabe finden Sie unter dem CHIP-Code VERSCHAC ein fertiges Beispiel.