[Excel] Wenn Funktion mit mehrern Bedingungen

Ricarda

Grünschnabel
Hallo Zusammen,

vielleicht könnt ihr mir hlfen.Ich habe folgende Herausforderung

Ich möchte gern, in Feld B eine Wenn Funktion einfügen mit mehrern Bedingungen.
Und zwar:

Wenn Feld D1,E1, F1, G1,H1 leer dann 0
Wenn Feld H1 nicht leer dann 6
Wenn Feld H1 und D1 nicht leer dann 2
Wenn Feld H1, D1 und E1 nicht leer dann 1
Wenn Feld E1 nicht leer dann 1
Wenn Feld E1 und G1 nicht leer dann 5
Wenn Feld H1, D1, E1 und G1 nicht leer dann 5


Könnt ihr mir hiebei helfen? Mit meiner normalen Wenn(ISTLEER) Formel komm ich nicht weiter.

Danke schon mal im Voraus für eure Lösungsvorschläge

LG
Ricarda ;-)
 
Kopiere dir SWITCH() in dein Excel oder schreibe eine kleine VBA-Funktion.
Alles andere wird seeeehr unübersichtlich

Nachtrag: So auf die Schnelle:
Visual Basic:
'Zur Besseren Lesbarkeit des Codes die Spaltenbuchstaben auf die Spaltennumern legen
Private Const D = 4: Private Const E = 5: Private Const F = 6: Private Const G = 7: Private Const H = 8:

Public Function myFunc(ByRef d2h As Range) As Integer
    'v, wie value. Ein Array der speichert, ob ein Value vorhanden ist
    Dim v(D To H)   As Boolean
    Dim cell        As Range
    
    'Alle D bis H in dem Range überprüfen, ob ein Value vorhanden ist.
    For Each cell In d2h.Rows(1).Cells
        If D <= cell.Column And cell.Column <= H Then
            v(cell.Column) = Not (IsNull(cell.Value) Or (cell.Value = Empty))
        End If
    Next cell
    
    'Anhand der Flags die Prüfungen machen
    'Reihenfolge ist wichtig. Beim ersten Treffer sprint er aus der Funktion
    If v(D) And v(E) And v(F) And v(G) And v(H) Then myFunc = 5:    Exit Function
    If v(E) And v(G) Then myFunc = 5:                               Exit Function
    If v(H) And v(D) And v(E) Then myFunc = 1:                      Exit Function
    If v(H) And v(D) Then myFunc = 2:                               Exit Function
    If v(E) Then myFunc = 1:                                        Exit Function
    If v(H) Then myFunc = 6:                                        Exit Function
    If Not (v(D) Or v(E) Or v(F) Or v(G) Or v(H)) Then myFunc = 0:  Exit Function
End Function

Und aufrufen kann man dass dann so
Code:
// Ganze Zeileauswählen
=myFunc(1:1)
//oder nur denBereich auswählen
=myFunc(D1:H1)
 
Zurück