Irren ist (nicht nur) menschlich. Oder: Fehlerbehandlung in Excel 1

So werden Fehlerwerte in Excel-Funktionen gezielt abgefangen und sinnvoll behandelt.
 

Welcher Excel-Anwender ist nicht schon mal auf eine Formel gestoßen, die nur ein unschönes “#NV”, “DIV/0!” oder “#WERT!” anzeigt.

Es hat natürlich grundsätzlich schon seine Richtigkeit, wenn eine Formel aufgrund von falschen oder fehlenden Eingaben kein vernünftiges Ergebnis liefern kann und stattdessen eine dieser Fehlermeldungen ausgibt. Aber es sieht eben nicht besonders schön aus und verwirrt weniger versierte Anwender unnötig.

Excel bietet verschiedene Funktionen zur Fehlerbehandlung an, von denen ich an dieser Stelle die beiden folgenden vorstellen möchte:

  • ISTFEHLER()
  • FEHLER.TYP()

Und so geht’s:

ISTFEHLER

Vereinfacht gesagt prüft diese Funktion, ob eine Formel einen Fehlerwert ergibt (#DIV/0!, #NV, #NAME?, #WERT!, #BEZUG!, #NULL!). Wenn ja, dann liefert die ISTFEHLER()-Funktion den logischen Wert “WAHR” und ansonsten (also bei keinem Fehler) den Wert “FALSCH” zurück. Das können wir uns nun zunutze machen und eine etwaige Fehlermeldung einfach unterdrücken.

In meiner Beispieltabelle möchte ich eine Auswertung der durchschnittlichen Krankheitstage in meiner Belegschaft vornehmen. Solange die Tabelle noch nicht oder nicht vollständig befüllt ist, kommt es in den Berechnungsformeln zu den unschönen “#DIV/0!”-Meldungen:

Ein typischer #DIV/0! Fehler

Ein typischer #DIV/0! Fehler

Sobald ich die ersten Werte eingebe, verschwinden die Fehler zwar in den befüllten Zeilen, der Rest bleibt aber weiterhin erhalten:

Die Fehler werden weniger

Die Fehler werden weniger

Nun fangen wir den Fehler in einer WENN-Formel ab:

Der Fehler wird abgefangen

Der Fehler wird abgefangen

Im Klartext:
WENN die Funktion ISTFEHLER() wahr ist (das heißt, ein Fehler wurde gefunden), DANN gib stattdessen eine Null aus.
ANSONSTEN führe die Berechnung durch (D3/C3).

Sieht doch gleich viel besser aus!

FEHLER.TYP

Da jeder Fehler eine Excel-interne Fehlernummer hat, kann man dieses Wissen nutzen, um dem Anwender gezielte Rückmeldungen zu geben. Die Funktion FEHLER.TYP() liefert mir genau diesen numerischen Wert. In der folgenden Übersicht habe ich in Spalte A die verschiedenen Fehler aufgelistet. In Spalte B steht der von der Funktion FEHLER.TYP() ermittelte numerische Wert:

Fehlercodes und Fehlerwerte

Fehlercodes und Fehlerwerte

Nun habe ich meine Krankheitstabelle aus dem vorigen Beispiel etwas “aufgebohrt”. In der Spalte F lasse ich mir von FEHLER.TYP() den jeweiligen Fehlerwert aus der Spalte E berechnen. Und über eine SVERWEIS()-Funktion in Spalte G gebe ich zu diesem Fehlerwert nun einen etwas aussagefähigeren Hinweistext aus:

Aussagefähige Hinweise

Aussagefähige Hinweise

Noch eine kurze Erläuterung der Formeln:
=WENN(ISTFEHLER(E4);FEHLER.TYP(E4);"-")
Hier prüfe ich also mit Hilfe der ISTFEHLER()-Funktion, ob Zelle E4 einen Fehler enthält.
Wenn ja, dann ermittle ich den numerischen Fehlerwert.
Wenn nein, dann soll einfach ein Bindestrich ausgegeben werden.

=SVERWEIS(F4;$F$18:$G$25;2;FALSCH)
Hier nehme ich den in Zelle F4 ermittelten Fehlerwert und suche in meiner Referenztabelle F18:G25 den Hinweistext heraus, der sich in der zweiten Spalte befindet.

Natürlich lassen sich die beiden Formeln in den Spalten F und G auch zusammenfassen. Ich habe sie hier nur zum besseren Verständnis getrennt.

Damit hat man nun alle Möglichkeiten an der Hand, die etwas kryptischen Standardfehlermeldungen abzufangen und entweder zu unterdrücken oder durch sprechende Hinweise zu ersetzen.

Das könnte dich auch interessieren:

Und immer daran denken: Excel beißt nicht!

P.S. Die Lösung ist immer einfach. Man muss sie nur finden.
(Alexander Solschenizyn)

P.P.S. Das Problem sitzt meistens vor dem Computer.



Kommentar erstellen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Ein Gedanke zu “Irren ist (nicht nur) menschlich. Oder: Fehlerbehandlung in Excel