엑셀지식
2026년 5월 1일
작성자: JH (중견기업 인사팀 출신)
엑셀 IFERROR / IFNA 함수 완벽 정리
오류 값을 깔끔하게 처리하는 방법
VLOOKUP을 쓰다 보면 #N/A가, 나눗셈 수식에서는 #DIV/0!가 자주 등장합니다. 이 오류들을 그대로 두면 보고서가 지저분해 보이고 SUM 계산에도 영향을 줄 수 있습니다. IFERROR와 IFNA를 사용하면 오류 발생 시 원하는 값(빈칸, "없음", 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), "없음"))