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.