VLOOKUP으로 값을 찾았는데 #N/A, 나누기를 했는데 #DIV/0!, INDEX+MATCH에서 #REF! 같은 오류가 나온 경험이 있을 거예요.
오류가 표시된 셀은 보기에도 안 좋고, 이 셀을 참조하는 다른 수식까지 연쇄적으로 오류가 나요.
IFERROR 함수를 사용하면 오류를 원하는 값으로 대체할 수 있습니다.
이 글에서는 엑셀의 주요 오류 유형, IFERROR, ISERROR, IFNA, 그리고 실무 활용법을 다룹니다.
엑셀 주요 오류 유형
| 오류 | 의미 | 대표 원인 |
|---|---|---|
| #N/A | 값을 찾을 수 없음 | VLOOKUP/MATCH에서 찾는 값이 없을 때 |
| #DIV/0! | 0으로 나눔 | 나누기 수식에서 분모가 0 또는 빈 셀 |
| #VALUE! | 값 유형 오류 | 숫자 자리에 텍스트가 들어갔을 때 |
| #REF! | 참조 오류 | 참조하던 셀/시트가 삭제됐을 때 |
| #NAME? | 이름 인식 불가 | 함수명 오타, 정의되지 않은 이름 사용 |
| #NUM! | 숫자 오류 | DATEDIF에서 시작일>종료일 등 |
| #NULL! | 교차 영역 없음 | 범위 지정에서 공백 연산자 오류 |
IFERROR 함수 - 오류를 원하는 값으로 대체
=IFERROR(수식, 오류시값)
수식 결과가 오류이면 두 번째 인수의 값을 반환하고, 오류가 아니면 수식 결과를 그대로 반환해요.
모든 오류 유형(#N/A, #DIV/0!, #VALUE! 등)에 대응합니다.
기본 예시:
=IFERROR(A2/B2, 0)
B2가 0이면 #DIV/0! 대신 0을 표시
=IFERROR(VLOOKUP(A2,D:E,2,0), "미등록")
VLOOKUP에서 못 찾으면 #N/A 대신 "미등록"을 표시
실무 예제 1 - VLOOKUP 오류 처리
1편에서 다룬 VLOOKUP에서 가장 흔한 오류가 #N/A예요.
찾는 값이 테이블에 없을 때 발생합니다.
| A | B | |
|---|---|---|
| 1 | 사번 | 이름 |
| 2 | S001 | ? |
| 3 | S999 | ? |
B2에 입력:
=IFERROR(VLOOKUP(A2,사원목록!A:B,2,0), "해당 사번 없음")
S001이 목록에 있으면 이름을 반환, S999가 없으면 "해당 사번 없음"을 표시합니다.
실무 예제 2 - 달성률 계산 시 0 나누기 방지
| A | B | C | |
|---|---|---|---|
| 1 | 부서 | 목표 | 실적 |
| 2 | 영업팀 | 500 | 450 |
| 3 | 신규팀 | 0 | 30 |
D2 (달성률):
=IFERROR(C2/B2, "-")
영업팀: 0.9 (=450/500), 신규팀: "-" (목표가 0이라 #DIV/0! 대신 "-" 표시)
달성률을 퍼센트로 표시하려면 셀 서식을 백분율로 변경하면 돼요.
목표가 0인 경우는 달성률 계산 자체가 무의미하므로 "-"로 표시하는 게 적절합니다.
IFNA 함수 - #N/A 오류만 처리
=IFNA(수식, N/A오류시값)
IFERROR는 모든 오류를 처리하지만, IFNA는 #N/A 오류만 처리해요.
다른 오류(#DIV/0!, #REF! 등)는 그대로 표시됩니다.
사용 가능 버전: Excel 2013 이상
=IFNA(VLOOKUP(A2,D:E,2,0), "미등록")
VLOOKUP의 #N/A만 "미등록"으로 바꾸고, 만약 다른 오류(예: 참조 범위 삭제로 인한 #REF!)가 발생하면 그 오류를 그대로 보여줘요.
IFERROR vs IFNA 선택 기준:
- 모든 오류를 감추고 싶다 → IFERROR
- #N/A만 처리하고 다른 오류는 발견해야 한다 → IFNA
실무에서는 IFNA가 더 안전한 선택이에요.
IFERROR를 남용하면 수식에 진짜 문제가 있어도 오류가 숨겨져서 발견이 어려워집니다.
ISERROR, ISNA 함수 - 오류 여부 확인
=ISERROR(값) → 오류이면 TRUE, 아니면 FALSE
=ISNA(값) → #N/A이면 TRUE, 아니면 FALSE
결과를 대체하는 게 아니라, 오류인지 여부만 판별하는 함수예요.
IF와 조합해서 사용합니다.
=IF(ISERROR(A2/B2), "계산 불가", A2/B2)
이 수식은 IFERROR(A2/B2, "계산 불가")와 같은 결과예요.
IFERROR가 더 간결하므로, 특별한 이유가 없으면 IFERROR/IFNA를 쓰는 게 좋습니다.
ERROR.TYPE 함수 - 오류 종류 식별
=ERROR.TYPE(값)
오류 유형을 번호로 반환해요.
| 반환값 | 오류 |
|---|---|
| 1 | #NULL! |
| 2 | #DIV/0! |
| 3 | #VALUE! |
| 4 | #REF! |
| 5 | #NAME? |
| 6 | #NUM! |
| 7 | #N/A |
오류가 아니면 #N/A를 반환해요.
오류 종류에 따라 다른 처리를 해야 할 때 활용합니다.
IFERROR 사용 시 주의사항
1. IFERROR 남용은 위험
수식에 근본적인 문제가 있어도 IFERROR가 오류를 감춰버려요.
"왜 오류가 나는지"를 먼저 확인하고, 의도된 오류(예: VLOOKUP에서 값 없음)에만 적용하세요.
2. 빈 문자열("")로 대체하면 SUM에 영향 없음
=IFERROR(VLOOKUP(...),"")
오류 시 빈 문자열을 반환하면, 해당 셀을 SUM/AVERAGE에서 참조해도 계산에 영향을 주지 않아요.
하지만 COUNTBLANK에서는 빈 문자열을 빈 셀로 인식하지 않습니다.
3. 수식이 두 번 계산됨 (성능)
IFERROR는 내부적으로 수식을 먼저 실행하고, 오류이면 다시 두 번째 인수를 실행해요.
대량 데이터에서 VLOOKUP을 IFERROR로 감싸면 속도가 느려질 수 있습니다.
5편에서 다룬 XLOOKUP은 자체적으로 "못 찾을 때 값" 인수를 제공하므로 IFERROR가 필요 없어요.
관련 함수 안내
5편의 XLOOKUP은 네 번째 인수로 "못 찾을 때 값"을 직접 지정할 수 있어요.
IFERROR로 감쌀 필요 없이 =XLOOKUP(찾을값, 범위, 반환범위, "없음") 으로 처리 가능합니다.
다음 글에서는 찾기·바꾸기의 고급 활용법을 다룰 예정이에요.
와일드카드 검색, 서식으로 찾기, 수식 일괄 변경 등의 기법입니다.
'엑셀' 카테고리의 다른 글
| 엑셀 인쇄 설정 페이지 레이아웃 - 인쇄 영역과 머리글 반복 (1) | 2026.02.24 |
|---|---|
| 엑셀 찾기 바꾸기 고급 활용 - 와일드카드 검색과 일괄 변경 (1) | 2026.02.23 |
| 엑셀 배열수식 FILTER SORT UNIQUE 함수 사용법 - 동적 배열 함수 (0) | 2026.02.23 |
| 엑셀 NETWORKDAYS WORKDAY 함수 사용법 - 근무일 계산 (0) | 2026.02.22 |
| 엑셀 매크로 VBA 기초 - 반복 작업 자동화 입문 (0) | 2026.02.22 |