엑셀 IFERROR / IFNA 함수 완벽 정리
오류 값을 깔끔하게 처리하는 방법

VLOOKUP을 쓰다 보면 #N/A가, 나눗셈 수식에서는 #DIV/0!가 자주 등장합니다. 이 오류들을 그대로 두면 보고서가 지저분해 보이고 SUM 계산에도 영향을 줄 수 있습니다. IFERRORIFNA를 사용하면 오류 발생 시 원하는 값(빈칸, "없음", 0 등)으로 대체할 수 있습니다.

엑셀 주요 오류 종류

오류주요 원인
#N/A찾는 값이 없음 (VLOOKUP, MATCH 등)
#VALUE!잘못된 데이터 형식 (숫자 자리에 텍스트 등)
#DIV/0!0으로 나누기
#REF!유효하지 않은 셀 참조 (삭제된 셀 참조 등)
#NAME?함수명 오탈자 또는 잘못된 범위 이름
#NUM!잘못된 수치 (예: DATEDIF에서 시작일 > 종료일)
#NULL!잘못된 범위 교차 (콤마 대신 공백을 구분자로 씀)

IFERROR 함수

IFERROR는 모든 종류의 오류를 처리합니다. 수식이 어떤 오류를 내든 대체값으로 바꿔줍니다.

=IFERROR(value, value_if_error)
1VLOOKUP #N/A를 "없음"으로 대체
=IFERROR(VLOOKUP(E1, $A$1:$C$100, 2, FALSE), "없음")

찾는 값이 없어 #N/A가 나오는 경우 "없음"이 표시됩니다. 빈칸으로 처리하려면 ""를 사용합니다.

2#DIV/0! 처리: 0으로 나누기 방지
=IFERROR(B2/C2, 0)

C2가 0이라 #DIV/0!이 날 때 0으로 대체합니다.

IFNA 함수

IFNA는 #N/A 오류만 처리합니다. #VALUE!나 #DIV/0! 같은 다른 오류는 그대로 표시하므로, 실제 오류는 눈에 보이게 하면서 "못 찾은 경우"만 깔끔하게 처리하고 싶을 때 사용합니다.

=IFNA(value, value_if_na)
1MATCH #N/A만 처리
=IFNA(MATCH(E1, A2:A100, 0), "미등록")

찾는 값이 없을 때만 "미등록"을 반환합니다. 만약 수식 자체가 잘못되어 #VALUE!가 나면 그대로 표시됩니다.

IFERROR vs IFNA 비교

함수처리하는 오류적합한 상황
IFERROR모든 오류 (#N/A, #VALUE!, #DIV/0! 등)오류 종류 관계없이 모두 숨기고 싶을 때
IFNA#N/A만조회 실패만 처리하고 다른 오류는 표시하고 싶을 때
IFERROR를 남용하면 수식 자체의 오류(오탈자, 잘못된 범위 등)도 숨겨버려 디버깅이 어려워집니다. 개발 단계에서는 IFERROR 없이 수식을 먼저 작성해 오류를 확인한 뒤, 완성 후 IFERROR로 감싸는 순서를 추천합니다.

실무 활용 패턴

상황수식
VLOOKUP 결과 없으면 빈칸=IFERROR(VLOOKUP(...), "")
INDEX+MATCH 결과 없으면 0=IFERROR(INDEX(...MATCH(...)), 0)
평균 계산 시 데이터 없으면 "-"=IFERROR(AVERAGE(B2:B100), "-")
퍼센트 계산 시 분모 0이면 0%=IFERROR(B2/C2, 0)

자주 묻는 질문

IFERROR로 감싼 셀이 포함된 SUM이 이상하게 나옵니다.
IFERROR로 오류를 빈칸("")으로 처리하면, SUM은 그 셀을 0으로 간주합니다. 문제가 생기는 경우는 IFERROR가 텍스트("없음", "미등록")를 반환할 때인데, 이 경우 SUM은 텍스트를 무시합니다. 수치 계산이 필요한 셀은 0으로 대체하는 것이 안전합니다.
Excel 2003 이하에서는 IFERROR가 없다고 합니다.
IFERROR는 Excel 2007부터 도입되었습니다. Excel 2003 이하라면 =IF(ISERROR(수식), 대체값, 수식)으로 동일하게 구현할 수 있습니다. 단 수식을 두 번 작성해야 하는 불편함이 있습니다.
IFERROR 안에 IFERROR를 중첩할 수 있나요?
가능합니다. 첫 번째 VLOOKUP이 실패하면 두 번째 표에서 찾는 이중 조회 패턴에 활용합니다. =IFERROR(VLOOKUP(A1,표1,2,0), IFERROR(VLOOKUP(A1,표2,2,0), "없음"))