![]() |
||
![]() |
Vielfach verschachtelte Bedingung auswertenIch 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. 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. |
![]() |