Hallo Thunderstorm,
Auch in diesem Fall müsste ich dann ggf. die komplette Formel zwei mal eingeben.
Quasi:
=WENN(NICHT(ISTFEHLER(<sehr sehr lange Funktion>)); <sehr sehr lange Funktion>; "")
Ich frag mich ganz ernsthaft, ob Du das Pferd nicht verkehrt herum aufzäumst?
Musst Du wirklich mit WENNFEHLER arbeiten, oder reicht es nicht wenn die ursprüngliche Formel anders aufgebaut wird?
Nicht nur bei Excel-Anwendern, sondern auch bei OpenOffice-Anwendern, sehe ich immer wieder Formelkonstrukte die total unüberlegt sind. Teilweise aus unwissenheit, und teilweise nach dem Motto: "Hauptsache es Funktioniert."
Beispiel.
Es soll in einem Datenbereich in der ersten Datenspalte etwas gesucht werden, und dann das zurückgegeben werden was in der gleichen Zeile ein paar Spalten weiter rechts daneben steht. Das ist also ein Fall für SVERWEIS.
Also würde dies so aussehen.
Und jetzt stellt jemand fest:
"Es kann da ja ein Fehler auftreten, wenn das gesuchte nicht in dem Datenbereich vorhanden ist. Also muss da eine Fehlerabfrage eingebaut werden, damit es nicht zu einer Fehlerausgabe kommt."
Alles so weit korrekt. Nur das dumme ist, das die meisten es sich jetzt doch zu einfach machen. Und deshalb die eigentliche Abfrage in eine Fehlerabfrage packen, das wie folgt aussieht.
Code: Alles auswählen
=WENN(ISTFEHLER(SVERWEIS(A1;W10:Z50;4;0));"Kein Treffer";SVERWEIS(A1;W10:Z50;4;0))
Okay, sieht ja auch echt logisch aus. Wenn SVERWEIS ein Fehler zurück gibt, dann wird dieser durch die ISTFEHLER ausgewertet, und es wird dann halt der Text "Kein Treffer" ausgegeben.
Und jetzt kommt WENNFEHLER ins Spiel.
Na das sieht doch echt super, schön, einfach und Kurz aus!
Stimmt! Es
sieht aus. Mehr aber auch nicht!
Denn der Arbeitsaufwand intern ist der gleiche wie der bei der vorherigen längeren Formel. Und es wird auch genau so vorgegangen. Erst wird die erste SVERWEIS abgearbeitet, und wenn es zu keinem Fehler kommt, dann wird die zweite SVERWEIS auch noch abgearbeitet.
Aber wer macht sich denn überhaupt noch Gedanken darum durch was der Fehler eigentlich entsteht, in diesem Beispiel mit der SVERWEIS?
Da wird einfach das Symptom behandelt, aber die Ursache wird einfach ausgeblendet.
Also, die Ursache dafür das SVERWEIS einen Fehler zurückgibt, liegt dadrin, das das Suchkriterium in der Suchspalte des Datenbereichs nicht vorhanden ist, es existiert nicht. Das ist also die Ursache. Nun muss man sich nur noch überlegen wie man dies Wissen als eine Fehleruntersuchung einbauen kann. Und das ist eigentlich recht simpel. Und zwar wie folgt.
Code: Alles auswählen
=WENN(ZÄHLENWENN(W10:W50;A1);SVERWEIS(A1;W10:Z50;4;0);"Kein Treffer")
ZÄHLENWENN geht jetzt einfach daher und schaut nach ob Das Suchkriterium in der 1. Spalte des Datenbereichs vorhanden ist. Wenn ja, wird die SVERWEIS ausgrführt, und wenn nein, dann wird der Text ausgegeben, und Fertig.
Diese Formel ist wohl etwas länger als die WENNFEHLER, aber dafür kürzer als die andere längere.
Ist ja wohl ganz gut und schön das Du dich mit so einer Thematik auseinander setzt, und ich habe auch einen gewissen Respekt davor allein schon wegen dem auseinandersetzen mit der Programmierung, aber irgendwie ist das ersetzen der WENNFEHLER in meinen Augen überflüssig.
Ich habe jetzzt dein vorläufiges Endergebnis ein klein wenig reduziert, das FALSCH() kann man durch 0 ersetzen.
Code: Alles auswählen
=WENN(ISTFEHLER(ZWISCHENSPEICHER(SVERWEIS(A1;A2:G3;7;0)));0;ZWISCHENSPEICHER())
Und hier im Gegenzug meine Formel die ohne zusätzliches Makro auskommt.
Egal ob Du meine Überlegung für dich für später aufhebst, oder nicht, hab deinen Spaß daran. Denn eines hast Du ja auf alle Fälle geschaft; Du hast wohl so einiges über die Programmierung gelernt, und das ist auch sehr viel Wert
Gruß
balu