@ > Home > Inhalt > Doppelberechnung von SVERWEIS bei WENN oder ISTFEHLER vermeiden Excel 97+

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.