fgFormula Gym
Interactive lesson · Excel & Google Sheets

The Excel IFNA function, explained interactively.

Last updated: April 2026

IFNA returns a fallback value only when its expression evaluates to #N/A. It’s the surgical version of IFERROR — use it to handle lookup misses from VLOOKUP, XLOOKUP, and MATCH while letting real bugs (#REF!, #VALUE!) surface so you notice when a formula is genuinely broken.

01 · See it work

How to use IFNA

  1. Type =IFNA( and pass your value expression — almost always a VLOOKUP, XLOOKUP, MATCH, or INDEX/MATCH that might not find a hit.
  2. Add a comma and the value_if_na — the fallback to return when the lookup misses. Text, a number, an empty string, or another formula.
  3. Close the parenthesis. Hits pass through unchanged; #N/A becomes the fallback. Other error types bubble through untouched, keeping real bugs visible.
  4. For all-errors-masked behaviour, use IFERROR instead. For different fallbacks per error type, nest: =IFERROR(IFNA(…, "miss"), "bug").

Click the SKU token in the formula bar below and pick one of the unknown codes — the IFNA result swaps to the fallback. Change the fallback itself by clicking the second criteria token. Hits stay hits regardless of fallback; only misses trigger the substitution.

FUNCTIONIFNA
Runs a formula and substitutes a fallback only when the result is #N/A. Other errors (#VALUE!, #REF!, #DIV/0!) bubble through — real bugs stay visible, lookup misses don’t.
ARG 1value
The formula to try — usually a lookup that might miss. IFNA evaluates it normally; the fallback kicks in only when this evaluation returns #N/A.
ARG 2value_if_na
What IFNA returns when value is #N/A. Text, number, empty string, or another formula. Plain "" blanks out the cell.
C10
fx
=IFNA(VLOOKUP("A-101", A2:B6, 2, FALSE), "Not in catalog")
AB
1SKUName
2A-101Pencil
3A-102Notebook
4B-210Stapler
5C-305Whiteboard
6C-306Marker set
7
8IFNA resultPencil
VLOOKUP found A-101 — IFNA passes the result through unchanged. The fallback only triggers on #N/A, not on other error types.
02 · Syntax, argument by argument

IFNA syntax and arguments

Two required arguments, no optionals. See Microsoft’s official IFNA reference for the canonical specification.

=IFNA(value, value_if_na)
value
The expression to evaluate. Usually a lookup formula (VLOOKUP, XLOOKUP, MATCH, INDEX/MATCH) that can return #N/A when the key isn’t found. IFNA evaluates this normally; the fallback only triggers if the result is exactly #N/A.
value_if_na
What to return when value is #N/A. Common choices: "Not found", "—", 0, or "" (blank). Can itself be a formula — e.g. a secondary lookup in a different table.
03 · In the wild

IFNA examples

Four patterns that cover most real-world IFNA use.

Example 1: IFNA — VLOOKUP with a friendly fallback

The canonical case. Wrap VLOOKUP so unknown keys get a readable label instead of #N/A.

=IFNA(VLOOKUP(A2, $D$2:$E$100, 2, FALSE), "Not in catalog")

If A2 is in the first column of the table, returns the matching row’s second column. Otherwise returns the fallback. A typo in the column index (say, passing 5 in a 2-column table) returns #REF! and bubbles through — IFNA doesn’t mask it.

Example 2: IFNA + XLOOKUP’s built-in fallback

XLOOKUP already accepts a fourth argument for if_not_found. Prefer it for new formulas; use IFNA with XLOOKUP only when retrofitting older code.

=XLOOKUP(A2, D:D, E:E, "Not found") — preferred =IFNA(XLOOKUP(A2, D:D, E:E), "Not found") — legacy wrap

XLOOKUP’s built-in is slightly faster (no extra wrapper call) and reads cleaner. The IFNA version exists for cases where you can’t modify the inner formula — maybe it’s in a shared workbook, or the fallback is dynamic.

Example 3: IFNA nested with IFERROR for dual fallbacks

Distinguish “lookup missed” from “formula is broken” by layering IFNA inside IFERROR. Each layer catches its own kind.

=IFERROR(IFNA(VLOOKUP(A2, …), "No match"), "Check formula")

#N/A → returns "No match" (inner IFNA fires). Any other error → returns "Check formula" (outer IFERROR fires). Dashboard teams use this to surface data gaps and broken references in different-coloured cells.

Example 4: IFNA with a fallback lookup in another table

When the primary table misses, fall back to a secondary one. The fallback value doesn’t have to be a literal — it can be another formula.

=IFNA(VLOOKUP(A2, primary, 2, FALSE), VLOOKUP(A2, secondary, 2, FALSE))

Tries the primary catalog first; if it misses, looks in an archive table. Chain further with another IFNA for three-tier fallbacks. This idiom replaces long OR/IF chains when merging data from multiple sources.

04 · Errata

Common IFNA errors and fixes

Four failure modes, each with what to check and how to recover.

IFNA isn’t catching the error

Cause: the error isn’t #N/A. IFNA ignores #VALUE!, #REF!, #DIV/0!, #NAME?, and #NUM!.

Inspect the inner formula — the error type tells you what’s wrong. For all-errors behaviour, switch to IFERROR. To handle #N/A and other errors differently, nest: put IFNA inside IFERROR and give each layer its own fallback.

IFNA returns #NAME?

Cause: you’re on Excel 2010 or earlier, where IFNA doesn’t exist. The formula engine reads IFNA as an undefined name.

Mimic it with ISNA: =IF(ISNA(VLOOKUP(…)), fallback, VLOOKUP(…)). Semantically identical but evaluates VLOOKUP twice. For large ranges, put the VLOOKUP in a helper cell and reference it twice to avoid the double evaluation.

IFNA is masking a real bug

Cause: someone wrapped IFERROR where IFNA belongs. A hard-to-find bug (bad column index, merged cells, renamed range) is hidden behind the friendly fallback.

Replace IFERROR with IFNA and watch the cell. If it now shows an actual error code, that’s the bug. IFNA is strictly more precise — prefer it unless you genuinely want to mask every kind of failure.

IFNA result copies down as the fallback everywhere

Cause: the lookup range isn’t anchored with $, so as the formula copies down, the range shifts and every row misses.

Lock the table range with absolute references: $D$2:$E$100, not D2:E100. Or better, convert the lookup table to a named Table (Ctrl+T) and reference it by name — tblCatalog[SKU] — so it never shifts regardless of how you copy.

05 · Kindred functions

IFNA vs IFERROR, IFS & IF

All four branch on conditions. IFNA and IFERROR catch errors; IFS and IF test boolean expressions. The right pick depends on what you’re guarding against.

FunctionCatchesArgsBest for
IFNA#N/A onlyvalue, value_if_naVLOOKUP / XLOOKUP misses; keeps real bugs visible
IFERRORAny errorvalue, value_if_errorAll-errors blanket; dashboards that must never show error text
IFS(not an error catcher)test1, val1, test2, val2, …Multi-tier cascades — grade letters, status flags
IF(not an error catcher)test, if_true, [if_false]Single binary branch on any boolean expression

Rule of thumb: IFNA for lookups where you only care about misses; IFERROR for blanket error suppression; IF / IFS when the condition isn’t an error but a boolean test. For XLOOKUP specifically, prefer its built-in if_not_found argument — one fewer function call, same outcome.

06 · Marginalia

IFNA frequently asked questions

6.01When should I use IFNA instead of IFERROR?

Use IFNA when you only want to catch #N/A — the error VLOOKUP / XLOOKUP / MATCH return when they find nothing. IFERROR catches every error type, which can hide real bugs (a typo in the column index, a bad range). IFNA is surgically narrow: lookup misses are handled, everything else stays visible so you notice when something is genuinely broken.

6.02Does IFNA work with XLOOKUP?

Yes — but XLOOKUP has its own if_not_found argument. For XLOOKUP, prefer the built-in: =XLOOKUP(key, range, return, "fallback"). Use IFNA with XLOOKUP only when wrapping legacy code you don’t want to rewrite. For VLOOKUP, which has no built-in fallback, IFNA is the cleanest wrapper.

6.03Is IFNA available in all versions of Excel?

IFNA was added in Excel 2013 and is in every version since, plus Google Sheets. On Excel 2010 and earlier, use IFERROR combined with ISNA to mimic the behaviour: =IF(ISNA(VLOOKUP(…)), fallback, VLOOKUP(…)). That’s verbose but semantically identical.

6.04How do I use IFNA together with IFERROR?

Yes — wrap IFNA in IFERROR (or vice versa) when you want different fallbacks for #N/A and other errors. =IFERROR(IFNA(VLOOKUP(…), "Not found"), "Check formula") handles a missing lookup with a friendly label and other errors with a separate sentinel. Useful for dashboards that need to distinguish “no data” from “broken formula”.

6.05Why is IFNA not catching my error?

Because the error isn’t #N/A. IFNA is selective — it passes through #VALUE!, #REF!, #DIV/0!, #NAME?, and #NUM!. If you want all errors caught, switch to IFERROR. If you want #N/A handled one way and other errors handled differently, nest IFNA inside IFERROR so each layer catches its own kind.

Microsoft Excel is a registered trademark of Microsoft Corporation. Google Sheets is a trademark of Google LLC. Formula Gym is not affiliated with, endorsed by, or sponsored by either company.