ISERROR, ISERR, ISNA의 차이

ISERR라는 이름은 「오류인가」처럼 들리지만, XLOOKUP이 찾지 못해 낸 N/A에서 이 시트의 ISERR는 FALSE, ISERROR와 ISNA는 TRUE였다. NA()도 같다. Microsoft의 IS 함수 설명은 ISERR가 N/A를 제외한 오류에서 TRUE, ISERROR는 모든 오류에서 TRUE, ISNA는 N/A일 때만 TRUE라고 한다.

빠른 답변

ISERR라는 이름은 「오류인가」처럼 들리지만, XLOOKUP이 찾지 못해 낸 N/A에서 이 시트의 ISERR는 FALSE, ISERROR와 ISNA는 TRUE였다. NA()도 같다. Microsoft의 IS 함수 설명은 ISERR가 N/A를 제외한 오류에서 TRUE, ISERROR는 모든 오류에서 TRUE, ISNA는 N/A일 때만 TRUE라고 한다.

=XLOOKUP("nope",K2:K3,L2:L3)   → #N/A
=ISERR(B8)                     → FALSE
=ISERROR(B8)                   → TRUE
=ISNA(B8)                      → TRUE

확인 사항

같은 탭에서 1/0은 DIV/0, VALUE("x"), 없는 함수 이름, 범위를 벗어난 INDEX, SQRT(-1)은 각각 VALUE, NAME, REF, NUM이 되었다. 이들은 ISERR와 ISERROR가 모두 TRUE, ISNA는 FALSE다. ERROR.TYPE은 차례로 2, 3, 5, 4, 6이고, N/A 두 건은 7이다. 빈 텍스트와 숫자 12는 세 판정이 모두 FALSE다. NULL은 시험하지 않아 표에 넣지 않았다.

주의점 및 호환성

같은 셀에서 IFERROR는 찾지 못한 경우를 포함해 모든 오류를 잡는다. IFNA는 N/A 두 건만 잡고, DIV/0, VALUE, NAME, REF, NUM은 그대로 남는다. 키를 못 찾은 경우만 처리하고 다른 오류는 남겨 두려면 ISNA나 IFNA를 쓴다. 깨졌지만 단순히 키가 없는 것은 아닐 때를 보려면 ISERR를 쓴다. 빈 텍스트와 12는 오류가 아니며, IFERROR(12,"caught")는 그대로 12다.

영어 상세 예제, 수식 및 작성자 메모

ISERR is a bad name if you hear “is this an error.” An XLOOKUP miss is an error. I still got FALSE.

=XLOOKUP("nope",K2:K3,L2:L3)   → #N/A
=ISERR(B8)                     → FALSE
=ISERROR(B8)                   → TRUE
=ISNA(B8)                      → TRUE

NA() behaved the same way. So did every other #N/A I generated in this file. ISERR is the function that skips #N/A and reports the other error values. Microsoft’s IS functions page says that in so many words: ISERR is TRUE for any error except #N/A; ISERROR is TRUE for any error, including #N/A; ISNA is TRUE only for #N/A.

I ran the rest of the usual suspects in the same tab so I would not have to trust the documentation alone.

FormulaResultISERRISERRORISNAERROR.TYPE
=1/0#DIV/0!TRUETRUEFALSE2
=NA()#N/AFALSETRUETRUE7
=VALUE("x")#VALUE!TRUETRUEFALSE3
=NOTAFUNCTION()#NAME?TRUETRUEFALSE5
=INDEX({1,2,3},1,5)#REF!TRUETRUEFALSE4
=SQRT(-1)#NUM!TRUETRUEFALSE6
XLOOKUP miss#N/AFALSETRUETRUE7
=""(blank)FALSEFALSEFALSE(no type)
=1212FALSEFALSEFALSE(no type)

A blank string is not an error. A plain number is not an error. I wrapped ERROR.TYPE in IFERROR(...,"none") so the last two rows would not explode; those came back none. I did not test #NULL!, so it is not in the table. Microsoft lists it under ISERROR.

What I actually use these for

The wrappers matter more than the TRUE/FALSE functions on most sheets, and I already compared those in IFERROR vs IFNA. The same cells made the difference obvious again:

=IFERROR(1/0,"caught")        → caught
=IFNA(1/0,"caught-na")        → #DIV/0!
=IFERROR(NA(),"caught")       → caught
=IFNA(NA(),"caught-na")       → caught-na
=IFERROR(12,"caught")         → 12

IFNA left #DIV/0!, #VALUE!, #NAME?, #REF!, and #NUM! alone. It only swallowed the two #N/A cells. IFERROR swallowed everything, including the lookup miss. That is the usual trap: you wanted “if this SKU is missing, say missing,” and you also hid a typo that produced #NAME? or a zero in the denominator. For the #DIV/0! case itself, see DIV/0 Error. For #VALUE!, see VALUE Error.

I reach for ISNA or IFNA when the only “error” I expect is a lookup miss, and I still want other errors to stay visible. I reach for ISERR when I want the opposite test: “this cell is broken, but it is not merely a missing key.” I almost never wrap a formula in ISERROR plus a repeat of the same formula anymore; IFERROR does that job without writing the expression twice. The TRUE/FALSE functions are still useful in a helper column where I need a boolean, not a substitute value.

If several lookup functions are failing at once, start with Lookup Errors rather than sprinkling ISERR on every cell.

Oscar

스프레드시트 수식과 오류 해결을 소개합니다. 검증 환경과 미확인 사항은 각 글을 참고하세요.

Google Sheets, 12 Nov 2026, tab IsErr. Definitions checked against Microsoft’s IS functions page; not re-run in desktop Excel.

다음 글: 시트 오류 및 동적 배열 ROUND, ROUNDUP, ROUNDDOWN의 차이