1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Überwindung der max. 7-fachen Verschachtelung der WENN-Funktion

Discussion in 'Office-Programme' started by geldberg, Jan 8, 2006.

Thread Status:
Not open for further replies.
  1. geldberg

    geldberg ROM

    Hallo Leute,
    wer kann mir mit folgendem Excel-Problem (Office-XP-Version)weiterhelfen:

    =WENN(ODER(E16="";G16="";H16="");"";SVERWEIS($G16;WENN(LINKS($E16;2)="01";Rohr_EP;WENN(LINKS($E16;2)="02";Armatur_EP;WENN(LINKS($E16;2)="03";Bogen_EP;WENN(LINKS($E16;2)="04";Flansch_EP;WENN(LINKS($E16;2)="05";Reduzierung_EP;"")))));SVERWEIS($H16;Isolierstärke;2)))

    Leider kann ich in Excel keine weitere WENN-Verschachtelung innerhalb der Formel verwenden, da ich nur max. sieben verwenden kann. Ich muß jedoch bis zu 40 Fallunterscheidungen innerhalb der Formel vornehmen mit der Ergebnisrückgabe als Zellbezug bzw. -bereich zur weiteren Verwendung im Sverweis-Befehl, damit aus der richtigen Matrix der richtige Preis entnommen wird.

    Gruß Rainer
     
  2. meyster

    meyster Halbes Megabyte

    ich würde sagen: Da hilft nur noch Visual Basic ;)
     
  3. Winnie The Pooh

    Winnie The Pooh Viertel Gigabyte

    Kannst du das nicht über die VERWEIS-Funktion machen?
     
  4. geldberg

    geldberg ROM

    Und wer kann mir da mit einem entsprechenden Code in VB helfen?
     
  5. Hallole z´sammen.

    @ meyster: nö
    @ winnie: sicher. Die sverweis oder wahl Funktion stellen eine sehr gute Alternative dar.
    @geldberg: es geht auch mit der WENN-Funktion
    Man kann theoretisch bis zu 7 WENN miteinander verknüpfen. Praktisch aber mehr. Dazu muß man, jenachdem was man machen will, nach dem 7ten WENN ein "+" oder ein "&" schreiben. Schon passen weitere 7 WENN dahinter. Ein Beispiel:
    =WENN(B49=1;"Eins";WENN(B49=2;"Zwei";WENN(B49=3;"Drei";WENN(B49=4;"Vier";WENN(B49=5;"Fünf";WENN(B49=6;"Sechs";WENN(B49=7;"Sieben";""))))))&WENN(B49=8;"Acht";""))
    =WENN(B49=1;"Eins";WENN(B49=2;"Zwei";WENN(B49=3;"Drei";WENN(B49=4;"Vier";WENN(B49=5;"Fünf";WENN(B49=6;"Sechs";WENN(B49=7;"Sieben";""))))))&WENN(B49=8;"Acht";""))
    oder
    =WENN(B51=1;1;WENN(B51=2;2;WENN(B51=3;3;WENN(B51=4;4;WENN(B51=5;5;WENN(B51=6;6;WENN(B51=7;7)))))))+WENN(B51=8;8)

    Viel Spaß beim Testen

    :jump: FE
     
  6. meyster

    meyster Halbes Megabyte

    @First Evangelist:

    möchte ja gar nicht bestreiten, dass das geht. Aber so ne verschachtelte Funktion wird irgendwann ja völlig unhandlich und unübersichtlich. Eine einfache Schleife in VB erfüllt oftmals den gleichen Zweck, ist 10 Zeilen lang und auch nicht so schwer.

    Allerdings sollte man sich dazu schon ein Buch kaufen und sich selbst nen Crashkurs beibringen.
     
  7. @ meyster
    Da haste zwar Recht, aber daher auch mein Verweis auf die SVerweis und/oder Wahl - Funktionen. Die sind eindeutig simpler und kürzer.
    Außerdem hat der TO doch bekanntgegeben, dass er mit VBA nix am Hut hat. Formeln hingegen scheint er zumindest einigermaßen zu beherrschen. Jetzt frage ich mich: Was ist einfacher?? Eone verschachtelte Wenn-Funktion oder alternativ eine Wahl- bzw. SVerweis-Funktion oder ein Einarbeiten in VBA für einen Newbie??? :confused:
     
  8. MIKAPet

    MIKAPet Kbyte

    Hallo geldberg
    Nur mal ein Versuch, bitte unbedingt an eine Kopie ausprobieren:
    Ich gehe mal davon aus, dass die verschachtelte Wenn-Funktion innerhalb deiner Formel nur einen Wert ausgibt, mit dem weitergerechnet wird. Nämlich den Einkaufspreis (_EP). Da es ja immer nur einen ausgegebenen Wert gibt, könnte es so vielleicht klappen:
    In einer freien Zelle-->Spalte die 7 mal verschachtelten "wenn"-Formeln eingeben.
    Ich habe mal B5 genommen, nimmt Bezug auf A5
    =WENN(LINKS(A5;2)="01";Rohr_EP;WENN(LINKS(A5;2)="02";Bogen_EP;WENN(LINKS(A5;2)="03";Schelle_EP;WENN(LINKS(A5;2)="04";SchraubeM6_EP;WENN(LINKS(A5;2)="05";SchraubeM8_EP;WENN(LINKS(A5;2)="06";Verlängerung1Zoll_EP;WENN(LINKS(A5;2)="07";Muffe45_EP;"")))))))
    In Zelle B6 die nächste 7mal verschachtelte Wenn-Funktion:
    =WENN(LINKS(A5;2)="8";Muffe90_EP;WENN(LINKS(A5;2)="9";Winkel45_EP;WENN(LINKS(A5;2)="10";Winkel90_EP;WENN(LINKS(A5;2)="11";Mutter_EP;WENN(LINKS(A5;2)="12";Dichtung_EP;"";)))))usw.
    In Zelle B7; B8 usw. ausfüllen, bis alle 40 Fallunterscheidungen aufgeführt bzw. in den Wenn-Funktionen untergebracht worden sind.
    Gibst Du nun in der Eingabzelle (bei mir A5) den Wert 11 ein, wird in Zelle B6 der _EP -Wert ausgegeben.
    In Deiner Formel ersetzt Du nun die Verschachtelte Wenn-Funktion mit der Funktion Summe(B5:B9). Je nachdem, wieviele Zellen in der Spalte B zusammengezählt werden müssen.
    Deine Formel sieht nun so aus:
    =WENN(ODER(E16="";G16="";H16="");"";SVERWEIS($G16;SUMME(B5:B9);SVERWEIS($H16;Isolierstärke;2)))
    Ob das so hinhaut, kann ich leider nicht sagen, da ich die Tabelle im Original nicht kenne (Die Namen "Dichtung_EP" usw. in meiner Wenn-Formel habe ich mir ausgedacht). Vielleicht klappt es ja.

    Ich sehe grad, hast ja schon ein paar gute Vorschläge bekommen, ich sende meinen aber dennoch mal ab:)
     
  9. geldberg

    geldberg ROM

    ...
    Für mein Problem: "Suche von verschiedenen Einheitspreisen aus 31 verschiedenen Matritzen nach bestimmten Auswahlkriterien" hat schließlich die folgende Kombination aus WENN-, WAHL- und SVERWEIS-Funktion zum Erfolg geführt. Für alle Interessenten hier meine funktionierende Lösungsformel:
    =WENN(ODER(D16="";F16="";G16="");"";SVERWEIS($F16;WENN(WERT(LINKS(D16;2))<21;WAHL(SVERWEIS(D16;Codetabelle;5);Rohr_EP;Armatur_EP;Bogen_EP;Flansch_EP;Reduzierung_EP;T_Stück_EP;EFA_EP;KFA_EP;SFA_EP;B_unter30_EP;B_über30_EP;Trichter_EP;Kalotte_EP;Zeppelin_EP;ZvierKalotte_EP;ZzweiKalotte_EP;ZeinsKalotte_EP;ZvierZeppelin_EP;ZzweiZeppelin_EP;ZeinsZeppelin_EP);WAHL(SVERWEIS(D16;Codetabelle;5);Stoßkappe_EP;Abflachung_EP;EinsatzG_EP;EinsatzK_EP;Ausschnitt_EP;AusschnittR_EP;Rosette_EP;Regenabweiser_EP;Nähte_EP;Stoßkappe600_EP;Regenabweiser_groß_EP));SVERWEIS($G16;Isolierstärke;2)))

    Nochmals allen Tip-Gebern herzlichsten Dank und macht weiter so. Ihr seid absolut zu empfehlen.

    Geldberg
     
Thread Status:
Not open for further replies.

Share This Page