🚀The world's best VBA AI has evolved. ExcelMaster is now an autonomous Agent.Read more →
Back to Blog

Excel IFERROR-Funktion — Fehler abfangen, ohne Ihre Bugs zu verstecken (IFERROR vs IFNA)

|

Excel IFERROR-Funktion — Fehler abfangen, ohne Ihre Bugs zu verstecken (IFERROR vs IFNA)

KurzfassungIFERROR(formula, value_if_error) führt Ihre Formel aus und gibt, falls sie einen Fehler ergibt, stattdessen einen Ersatzwert zurück: =IFERROR(A2/B2, 0). Der Haken, der Menschen Stunden kostet: IFERROR fängt jeden Fehlertyp ab#REF!, #NAME?, #VALUE!, #DIV/0!, alle — und versteckt so fröhlich den echten Bug (eine gelöschte Spalte, eine falsch geschriebene Funktion) gleich mit dem, den Sie erwartet haben. Für einen Lookup, der vielleicht keine Übereinstimmung findet, nutzen Sie stattdessen IFNA: Es fängt nur #N/A ab und lässt echte Fehler an die Oberfläche. Besser noch: Neue Lookups sollten das eingebaute if_not_found von XLOOKUP nutzen. Sowohl IFERROR als auch IFNA brauchen Excel 2013+.

=IFERROR(A2/B2, 0)                          ' B2 ist 0 oder leer -> 0 statt #DIV/0!
=IFNA(XLOOKUP(A2, Ids, Names), "Not found")  ' nur ein Nicht-Treffer wird abgefangen

IFERROR ist die Funktion, zu der Menschen greifen, sobald sie einen Fehler in einer Zelle sehen — und genau dieser Reflex ist das Problem. Gut eingesetzt macht sie ein Modell robust; als Pauschallösung eingesetzt verwandelt sie Ihre Tabelle in eine, die sauber aussieht, während sie Sie leise belügt. Diese Anleitung dreht sich um eine starke Empfehlung: Fangen Sie den Fehler ab, den Sie erwarten, nicht jeden Fehler, den es gibt.

Hinweis: In einer deutschen Excel-Oberfläche heißt die Funktion WENNFEHLER (IFERROR). Verwandt: IFNA = WENNNV, VLOOKUP = SVERWEIS, XLOOKUP = XVERWEIS, ISERROR = ISTFEHLER, NA = NV. Fehlercodes lauten im deutschen Excel: #NV, #BEZUG!, #NAME?, #WERT!, #DIV/0!. Die Formeln unten nutzen die englischen Namen — sie zeigen dasselbe Verhalten.

Was Sie lernen

  • Das mentale Modell: IFERROR ist ein Sicherheitsnetz, keine Reparatur
  • Das Anti-Pattern: alles in IFERROR zu hüllen versteckt echte Bugs
  • Warum IFNA bei Lookups meist das richtige Werkzeug ist
  • Die Performance-Falle des alten IF(ISERROR(…))-Musters
  • Einen Ersatzwert wählen, der Ihre Summen nicht vergiftet
  • Warum das if_not_found von XLOOKUP IFERROR oft überflüssig macht

Das mentale Modell: ein Sicherheitsnetz, keine Reparatur

IFERROR verhindert keinen Fehler — es fängt die Formel nachdem sie bereits fehlgeschlagen ist und reicht etwas anderes zurück:

' "Berechne A2/B2. Wenn das explodiert, gib mir stattdessen 0."
=IFERROR(A2/B2, 0)

Stellen Sie es sich als ein Netz vor, das unter einem Drahtseil gespannt ist. Das Netz ist sinnvoll für einen Sturz, den Sie vorhersehen können — einen Divisor, der manchmal null ist, einen Lookup, der manchmal fehlt. Aber ein Netz weiß nicht, warum Sie gestürzt sind. Sind Sie gestürzt, weil das Seil durchtrennt war (Sie haben eine referenzierte Spalte gelöscht oder =VLOOKUP als =VLOOKP vertippt), fängt das Netz Sie genauso auf — und nun erfahren Sie nie, dass das Seil gerissen ist. Diese Blindheit ist die ganze Gefahr.

Das Anti-Pattern: IFERROR als Pauschallösung

Hier ist der Zug, der Bugs versteckt. Irgendetwas zeigt einen Fehler, also hüllen Sie die ganze Formel ein und machen weiter:

=IFERROR(SomeBigFormula(...), "")     ' das Rot verschwinden lassen

Die Zelle sieht jetzt sauber aus. Aber IFERROR schluckt alle Fehlertypen gleichermaßen:

Fehler Was er meist bedeutet Sollten Sie ihn verstecken?
#N/A Ein Lookup fand keine Übereinstimmung Oft ja — das ist zu erwarten
#DIV/0! Divisor ist null oder leer Manchmal — wenn null gültig ist
#REF! Eine referenzierte Zelle wurde gelöscht Nein — das ist ein echter Bug
#NAME? Funktion/Name falsch geschrieben Nein — das ist ein echter Bug
#VALUE! Falscher Typ (Text, wo eine Zahl erwartet wird) Nein — meist ein echter Bug

Ein pauschales IFERROR behandelt die unteren drei genau wie die oberen zwei. Sie löschen drei Monate später eine Spalte, die Formel geht auf #REF!, und statt eines lauten Fehlers bekommen Sie eine ordentliche leere Zelle — und einen Bericht, der still falsch ist. Die Regel: Hüllen Sie eine Formel niemals in IFERROR, nur damit ein Fehler verschwindet. Hüllen Sie sie nur ein, um einen bestimmten, erwarteten Fehlschlag zu behandeln — und beweisen Sie zuerst, dass die Formel auf sauberen Daten korrekt ist.

IFNA: nur das abfangen, was Sie abfangen wollten

Meistens ist der Fehler, den Sie tatsächlich erwarten, #N/A aus einem Lookup, der keine Übereinstimmung gefunden hat. Genau dafür ist IFNA da — es fängt #N/A ab und nichts sonst:

' IFERROR — versteckt einen Nicht-Treffer UND einen kaputten Bezug gleichermaßen
=IFERROR(VLOOKUP(A2, Table, 2, 0), "Not found")

' IFNA — behandelt den Nicht-Treffer, lässt #REF!/#NAME? weiter schreien
=IFNA(VLOOKUP(A2, Table, 2, 0), "Not found")

Beide liefern „Not found", wenn die ID fehlt. Der Unterschied zeigt sich an dem Tag, an dem etwas anderes kaputtgeht: Mit IFNA taucht eine gelöschte Spalte weiterhin laut und deutlich als #REF! auf; mit IFERROR ist sie unter „Not found" begraben. Für Lookups — VLOOKUP, XLOOKUP, MATCH, INDEX/MATCH — ist IFNA der korrekte Standard, nicht IFERROR. Greifen Sie nur dann zu IFERROR, wenn der Fehler, den Sie erwarten, wirklich nicht #N/A ist (etwa eine bewusste Division, die null treffen kann).

Die Performance-Falle: berechnen Sie die Formel nicht zweimal

Bevor es IFERROR gab (vor 2007), war der einzige Weg, einen Fehler abzufangen, das IF(ISERROR(…))-Muster — und es hat einen versteckten Preis:

' Altes Muster — führt das VLOOKUP ZWEIMAL aus (zum Testen, dann erneut für den Wert)
=IF(ISERROR(VLOOKUP(A2, T, 2, 0)), "", VLOOKUP(A2, T, 2, 0))

' IFERROR — führt es einmal aus
=IFERROR(VLOOKUP(A2, T, 2, 0), "")

Die alte Form wertet den teuren Lookup einmal aus, um ihn zu testen, und ein zweites Mal, um ihn zurückzugeben — doppelte Arbeit in jeder Zeile, die sich auf großen Blättern schnell summiert. IFERROR (und IFNA) werten die innere Formel ein einziges Mal aus. Haben Sie noch IF(ISERROR(…))-Muster in geerbten Arbeitsmappen, ist deren Reduktion auf IFERROR/IFNA ein kostenloser Geschwindigkeitsgewinn und ein Gewinn an Lesbarkeit.

Wählen Sie einen Ersatzwert, der Ihre Zahlen nicht vergiftet

Der Typ des zweiten Arguments zählt mehr, als die meisten erwarten, denn was auch immer Sie zurückgeben, fließt in alles Nachgelagerte:

  • Geben Sie 0 für einen fehlenden Wert zurück, wird sie mit hineingemitteltAVERAGE und Diagramme behandeln „keine Daten" nun als echte Null und ziehen das Ergebnis nach unten.
  • Geben Sie "" (leerer Text) zurück, kann jede numerische Formel auf dieser Zelle #VALUE! werfen, und SUM überspringt sie zwar, aber ISNUMBER liest FALSE.
  • Für „keine Daten" ist NA() oft der ehrlichste Ersatzwert — Diagramme überspringen #N/A-Punkte, statt sie als null einzuzeichnen.

Die Entscheidung: Wählen Sie den Ersatzwert danach, wie die Zelle konsumiert wird, nicht nur, um den Fehler zu beseitigen. „Leer für die Anzeige, NA() für Diagramme, 0 nur, wenn null wirklich die richtige Zahl ist" ist ein guter Standard.

Warum XLOOKUP IFERROR oft überflüssig macht

Für neue Arbeit ist die sauberste Lösung, gar nicht erst zu hüllen. XLOOKUP hat ein eingebautes viertes Argument, if_not_found, das den fehlenden Fall innerhalb des Lookups behandelt:

=XLOOKUP(A2, Ids, Names, "Not found")     ' kein IFERROR/IFNA nötig

Das ist dem Hüllen strikt überlegen: Es wird einmal ausgewertet, es löst nur bei einem echten Nicht-Treffer aus (nicht bei einem #REF! woanders), und die Absicht steht direkt in der Formel. Dieselbe Idee taucht quer durch die modernen Funktionen auf — das if_empty-Argument von FILTER spielt dieselbe Rolle für „keine Zeilen gefunden". Wenn die Funktion ihren eigenen Nicht-gefunden-Handler bietet, ziehen Sie ihn einem äußeren IFERROR vor.

Wie ExcelMaster hilft

Das Tückische an der Fehlerbehandlung ist, dass der falsche Ansatz identisch aussieht wie der richtige — beide lassen das Rot verschwinden. ExcelMaster schreibt die Version, die nicht lügt: IFNA für Lookups, damit echte Brüche weiterhin sichtbar werden, das if_not_found von XLOOKUP statt eines äußeren Hüllers und einen Ersatzwert, der danach gewählt ist, wie die Zelle Ihre Summen und Diagramme speist. Sie beschreiben, was „nicht gefunden" anzeigen soll; es sorgt dafür, dass sich kein kaputter Bezug dahinter verstecken kann.

Häufige Fragen

Was ist der Unterschied zwischen IFERROR und IFNA?

IFERROR fängt jeden Fehlertyp ab (#REF!, #NAME?, #VALUE!, #DIV/0!, #N/A, …). IFNA fängt nur #N/A ab. Für Lookups ist IFNA sicherer, weil es einen Nicht-Treffer behandelt und dabei echte Bugs wie #REF! weiterhin zeigen lässt.

Warum ist es eine schlechte Idee, alles in IFERROR zu hüllen?

Weil es echte Bugs versteckt. Eine gelöschte Spalte (#REF!) oder eine falsch geschriebene Funktion (#NAME?) wird still durch Ihren Ersatzwert ersetzt, eine kaputte Formel sieht also gut aus und Ihre Ausgabe ist leise falsch. Fangen Sie nur den bestimmten Fehler ab, den Sie erwarten.

Wie blende ich einen #DIV/0!-Fehler aus?

Hüllen Sie nur diese Division und geben Sie einen sinnvollen Wert zurück: =IFERROR(A2/B2, 0) oder =IFERROR(A2/B2, ""). Stellen Sie sicher, dass 0 wirklich die richtige Antwort für „kein Divisor" ist — speist die Zelle ein AVERAGE, zieht eine 0 den Mittelwert nach unten.

Sollte ich IFERROR mit VLOOKUP oder XLOOKUP verwenden?

Bei VLOOKUP ziehen Sie IFNA dem IFERROR vor, damit nur ein Nicht-Treffer abgefangen wird. Bei XLOOKUP sparen Sie sich den Hüller ganz und nutzen sein viertes Argument: =XLOOKUP(A2, Ids, Names, "Not found").

Funktioniert IFERROR in älteren Excel-Versionen?

IFERROR gibt es seit Excel 2007 und IFNA seit Excel 2013. Der ältere IF(ISERROR(…))-Behelf funktioniert noch, wertet Ihre Formel aber zweimal aus — wechseln Sie zu IFERROR/IFNA, sobald Sie können.

Getestet in

Getestet in: Excel 365 (Windows 11) — zuletzt geprüft am 25.06.2026.

Verwandte Anleitungen: Excel IF · Excel IFS & SWITCH · Excel XLOOKUP · Excel FILTER