Problem:
Mehrfaches Berechnen gleicher Verweise bringt nichts, kostet aber Rechenzeit. Das fällt bei vielen Verweisen und/oder bei langen Verweislisten besonders ins Gewicht. Ein häufiger Fall hierfür ist die Behandlung von Fehlern, also das Nichtauftreten eines Verweis-Werts.
Lösungen:
1) Eine Möglichkeit (Variablenspeicherung) dazu ist schon unter 0001.htm mit SETV/GETV genannt.
2) Außerdem gibt es ab xl2007 die Funktion =WENNFEHLER(), deren Verwendung am Beispiel zu 0001.htm so lautet:
xl2003: =WENN(ISTFEHLER(SVERWEIS("X";A1:B9999;2;));"nix";SVERWEIS("X";A1:B9999;2;))
wird zu
xl2007: =WENNFEHLER(SVERWEIS("X";A1:B9999;2;);"nix")
Problematisch ist hier die fehlende Rückwärtskompatibilität vom xl12 (2007)- zum xl4 (2003)-Modell.
3) Ausgliederungen von sich wiederholenden Formelteilen in eigene Zellen mögen unelegant wirken, aber sie sind kaum schlagbar in punkto Verständlichkeit, Schnelligkeit, Dateigröße und nicht zuletzt Plattform-Kompatibilität.
Hier ein völlig anderer Ansatz:
4) Bernd Plumhoff (2007.09.10) hat folgende Idee:
Y1: =SVERWEIS(X1;A1:B10000;2;) reicht ihm aus.
A B CDEFGHIJKLMNOPQRSTUVW X Y 1 Key1 Wert1 Z-966 nix 2 A-100 1 3 A-102 2 4 A-103 3 5 A-105 4 6 A-106 5 7 A-107 6 8 A-108 8 9 A-110 9 : 9998 Z-985 10 9999 Z-991 11 10000 =X1 nix
Er hängt ein Feld an die Suchliste an, welches sich auf die Eingabe bezieht (in A10000 steht die Formel =X1), und gibt statt eines Nichtauffinden-Fehlers einen gewünschten Inhalt zurück. Dies lässt sich insbesondere gut anwenden in den häufigen Fällen, in welchen die Fehlerbehandlung nur für Zwecke der Tabellenkosmetik vorgenommen wird. Da in B10000 jedoch auch eine Formel stehen kann, ist fast jede andere Konstellation genauso denkbar.
Achtung: Der letzte (vierte) Parameter für genaue Übereinstimmung bei =SVERWEIS() sollte dafür mit FALSCH spezifiziert sein, obwohl es auch Intervallanwendungen (Einzug einer Obergrenze) geben könnte. Analog funktioniert die Vorgehensweise übrigens auch bei den anderen Lookup-Funktionen wie =WVERWEIS() und =VERGLEICH(). Bei =VERGLEICH() wird allerdings die Position statt eines Werts zurückgegeben, was eine andere Behandlung des "Fehlers" nach sich zieht.