Wenn Funktion

Dieses Thema Wenn Funktion im Forum "Microsoft Office Suite" wurde erstellt von L.Faas, 24. Aug. 2005.

Thema: Wenn Funktion Hallo, ich habe ein Problem mit einer Wenn - Funktion. Eine verschachtelte Wenn - Funktion soll einen Wahrheitswert...

  1. Hallo,
    ich habe ein Problem mit einer Wenn - Funktion.
    Eine verschachtelte Wenn - Funktion soll einen Wahrheitswert (Kontrollkästchen) prüfen und ggf. eine Bezeichung z.B A zurückliefern.
    Ansonsten soll die Funktion eine weitere Prüfung des Wahrheitswertes
    durchführen
    =WENN(S6=WAHR;A;WENN(S7=WAHR;B;WENN(S8=WAHR;C; usw.)))


    Leider ist bei einer Verschachtelung nach der siebten Prüfung eine weitere Prüfung nicht mehr möglich.
    Eine Erweiterung der Funktion durch das + Zeichen ist nur bei alphanumerischen Werten, nicht jedoch bei einer Wahrheitsprüfung
    möglich.
    Hat jemand irgend eine Idee wie ich Excel doch dazu bewegen kann, mehr als nur sieben Prüfungen durchzuführen.

    Vielen Dank
    Lothar :)
     
  2. Hallo L.Faas,

    ich hab dir mal ein Beispiel zusammengestellt, wie du deine Abfrage in einer Funktion(Makro) erstellen  und dann als Formel weiter benutzen kannst.


    Funktion (Makro) für die Verwendung in Formeln erstellen:

    a) deine Excel-Arbeitsmappe öffnen
    b) VB-Editor öffnen mit Alt+F11
    c) mit rechter Maustaste im Projekt-Fenster  VBAProject(Dateiname) selektieren
       -> Einfügen -> Modul
      (es öffnet sich ein Modul-Fenster)
    d) den Makro per copy and paste in dieses Modulfenster kopieren


    Code:
    Function BereichPruefenAufWahr_RetAbisZ(myRange As Range) As Variant
    '*** es kann als Range eine zusammenhängender Bereich
    '*** einer Spalte angegeben werden
    '***
    '*** Vom Anfang bis zum Ende des Bereiches werden die
    '*** Zellinhalte auf WAHR geprüft
    '*** Ist keine Inhalt WAHR liefert die Funktion KEIN WERT WAHR
    '*** Andernfalls liefert sie die Buchstaben A -Z,
    '*** abhängig von der Fundstelle.
    '*** Also wenn die 1.  Zelle der Wert WAHR enthält, liefert sie A
    '*** Also wenn die 2.  Zelle der Wert WAHR enthält, liefert sie B
    '*** Also wenn die 26. Zelle der Wert WAHR enthält, liefert sie Z
    '***
    '*** Ist der Bereich
    '*** - nicht zusammenhängend
    '***   gibt die Funktion BEREICH NICHT ZuSAMMENHAENGEND zurück
    '*** - nicht in einer Spalte
    '***   gibt die Funktion BEREICH ENTHAELT MEHR ALS EINE SPALTE zurück
    '*** - größer als 26 Zellen
    '***   gibt die Funktion BEREICH ENTHAELT MEHR ALS 26 ZELLEN zurück
    '***
      
      Dim l_cnt As Long, Zelle As Range
      Dim f As Variant
      f = Array( _
            A, B, C, D, E, F, G, H, I, J, K, L, M, _
            N, O, P, Q, R, S, T, U, V, W, X, Y, Z)
      
     ->Pruefen, ob r ein zusammenhängender Bereich ist
      If myRange.Areas.Count > 1 Then
        BereichPruefenAufWahr_RetAbisZ = BEREICH NICHT ZuSAMMENHAENGEND
        Exit Function
      End If
      
     ->Pruefen, ob r in einer Spalte liegt
      If myRange.Columns.Count > 1 Then
        BereichPruefenAufWahr_RetAbisZ = BEREICH ENTHAELT MEHR ALS EINE SPALTE
        Exit Function
      End If
      
     ->Pruefen, ob r mehr als 26 Zellen beinhaltet
      If myRange.Count > 26 Then
        BereichPruefenAufWahr_RetAbisZ = BEREICH ENTHAELT MEHR ALS 26 ZELLEN
        Exit Function
      End If
      
     ->Rückgabe-Kennung KEIN WERT WAHR setzen
      BereichPruefenAufWahr_RetAbisZ = KEIN WERT WAHR
      
      l_cnt = -1
     ->Zellinhalte der Reihe nach prüfen
      For Each Zelle In myRange
        l_cnt = l_cnt + 1
       ->Inhalt WAHR ?
        If Zelle.Value = True Then
         ->Buchstabe für Rückgabe-Kennung setzen
          BereichPruefenAufWahr_RetAbisZ = f(l_cnt)
          Exit For
        End If
      Next
      Set Zelle = Nothing
    End Function
    e) Speichern mit Alt+S
    f) VB-Editor schliessen mit Alt+Q

    Jetzt steht dir für die Formel eine Funktion BereichPruefenAufWahr_RetAbisZ zur Verfügung.

    Formel erstellen:
    1) Gehe in die Zelle in der die Auswertung erscheinen soll.
    2) schreibe ein Gleichheitszeichen
       (es wird in der Symbolleiste die Drop-Down-Auswahl für Funktionen angezeigt)
    3) im der Drop-Down-Auswahl für Funktionen wählst du
       'weitere Funktionen...'
       (das Fenster->Funktionen einfügen' öffnet sich)
    4) im Fenster->Funktionen einfügen' wählst Du->Benutzerdefiniert'
       (im Fenster->Funktion:' erscheint BereichPruefenAufWahr_RetAbisZ)
    5) BereichPruefenAufWahr_RetAbisZ mit einem Doppelklick auswählen
       (Es öffnet sich ein Formel-Fenster der Funktion BereichPruefenAufWahr_RetAbisZ
        in dem der auszuwertende Bereich eingegeben werden muß)
    6) Den Bereich entwerder als S6:S31 eingeben
        oder auf das Symbol zur Bereichsmarkierung klicken und den Bereich mit der Maus selektieren
    7) Ende-Button

    Fertig  :D

    Gruß Matjes  ;)
     
  3. Hallo Matjes.
    Vielen Dank für den Tipp.
    Ich werde es mal ausprobieren.
    Es kann aber etwas dauern bis ein Feedback kommt,
    deshalb an dieser Stelle schon mal vielen Dank für die Mühe.
    die DU Dir gemacht hast.

    L.Faas
     
  4. Hallo,

    in solchen Fällen arbeite ich gern mit Index-Zellen:

    =WENN(S6=WAHR;A;WENN(S7=WAHR;B;WENN(S8=WAHR;C;...;...;...; C8)))

    in Zelle C8:

    =WENN(S13=WAHR;H;WENN(S14=WAHR;I;WENN(S15=WAHR;J;...;...;...; C9)))

    usw. usf.

    Fibo
     
Die Seite wird geladen...

Wenn Funktion - Ähnliche Themen

Forum Datum
COM Surrogate funktioniert nicht mehr - Wenn ich Drucken will !? Hardware 8. Juni 2010
Doppelte Wenn Funktion Microsoft Office Suite 2. Nov. 2010
Wake On Lan funktioniert nur wenn PC vorher korrekt heruntergefahren wurde Windows XP Forum 5. Nov. 2009
Wenn(Prüfung)-Dann_Wert-Funktion ohne einen Sonst_Wert! Microsoft Office Suite 10. Juli 2009
Excel 2003 Verschachtelte Wenn-Funktion Microsoft Office Suite 30. Jan. 2009