엑셀 IFERROR 사용법 — 오류 코드별 진단부터 안전한 처리까지
최종 업데이트 2026-07-20
엑셀 보고서에서 셀마다 #N/A, #DIV/0!, #VALUE! 같은 오류가 뒤섞여 있으면 그 자체로 신뢰도가 떨어져 보입니다. IFERROR는 이런 오류를 원하는 값으로 대체해주는 함수입니다. 하지만 무조건 오류를 숨기기 전에, 먼저 '왜' 오류가 나는지부터 정확히 진단하는 것이 순서입니다.
실무에서 자주 만나는 오류 코드 진단표
| 오류 코드 | 발생 상황 | 실무 예시 |
|---|---|---|
| #N/A | VLOOKUP·XLOOKUP·MATCH가 값을 못 찾음 | 사번 A105가 명단에 없는데 조회함 |
| #DIV/0! | 0 또는 빈 칸으로 나눔 | 신규 지점이라 전월 매출이 0 |
| #VALUE! | 텍스트와 숫자를 함께 연산 | '서울'+100 같은 잘못된 계산 |
| #REF! | 참조하던 셀·행·열이 삭제됨 | 수식이 참조하던 열을 통째로 지움 |
| #NAME? | 함수 이름 오타 또는 구버전 미지원 함수 | XLOOKUP을 엑셀 2019에서 사용 |
IFERROR 기본 구조
=IFERROR(원래수식, 오류일때보여줄값)
| A열(사번) | B열(이름) | C열(부서) |
|---|---|---|
| A102 | 김민수 | 영업1팀 |
| A103 | 이서연 | 총무팀 |
F2에 명단에 없는 'A999'를 입력했다고 가정하면, 아무 처리 없이는 #N/A가 그대로 노출됩니다. IFERROR로 감싸면 다음처럼 원하는 문구로 대체됩니다.
=IFERROR(VLOOKUP(F2, A:C, 2, 0), "명단에 없음")
F2가 'A999'라면 결과는 '명단에 없음'이라는 텍스트가 표시됩니다. 반면 F2가 'A102'라면 정상적으로 '김민수'가 나옵니다. 즉 IFERROR는 정상 결과에는 아무 영향을 주지 않고, 오류가 났을 때만 대체값을 보여줍니다.
IFERROR vs IFNA — 무엇이 다른가
| 항목 | IFERROR | IFNA |
|---|---|---|
| 처리 대상 | 모든 종류의 오류(#N/A, #VALUE!, #REF! 등 전부) | #N/A 오류만 |
| 장점 | 어떤 오류든 한 번에 안전하게 처리 | 찾기 실패만 정확히 구분해 처리 |
| 단점 | 수식 자체의 진짜 버그도 함께 가려질 수 있음 | #VALUE!, #REF! 등은 그대로 노출됨 |
| 추천 상황 | 최종 보고서용 화면 정리 | VLOOKUP·MATCH 등 조회 함수 전용 |
IFERROR는 편리하지만 모든 오류를 무조건 숨겨버립니다. 수식 자체를 잘못 짜서 나는 #REF!나 #VALUE!까지 가려지면, 정작 고쳐야 할 실수를 발견하지 못한 채 잘못된 결과가 보고서에 그대로 실릴 수 있습니다. 개발·점검 단계에서는 IFERROR 없이 원래 오류를 먼저 확인하고, 최종 배포 단계에서만 씌우는 것을 권장합니다.
실무에서 바로 쓰는 패턴 모음
- •찾기 실패를 빈칸으로: =IFERROR(VLOOKUP(F2, A:C, 2, 0), "")
- •0으로 나누기 방지: =IFERROR(B2/A2, 0)
- •찾기 실패만 구분(다른 오류는 그대로 노출): =IFNA(VLOOKUP(F2, A:C, 2, 0), "없음")
- •여러 함수를 중첩한 수식 전체를 감싸기: =IFERROR(INDEX(A:A, MATCH(F2, C:C, 0)), "확인필요")
오류를 빈칸("")으로 바꾸면 화면은 깔끔하지만, 그 셀을 다시 합계나 평균 계산에 쓰면 텍스트로 인식되어 계산에서 제외되거나 오류가 재발할 수 있습니다. 이후 계산에 쓸 셀이라면 "" 대신 0을 기본값으로 넣는 것이 더 안전합니다.
오류를 진단하는 순서 (수식이 복잡할 때)
- 1IFERROR를 잠시 떼어내고 원래 수식만 남겨서, 실제로 어떤 오류 코드가 나오는지 먼저 확인합니다.
- 2오류 코드에 따라 위 진단표에서 원인 후보를 좁힙니다.
- 3수식이 여러 함수로 중첩돼 있다면, 수식 셀을 선택한 뒤 수식 탭의 '수식 계산' 기능으로 어느 함수 단계에서 오류가 시작되는지 확인합니다.
- 4원인을 찾아 근본적으로 해결한 뒤에도 예외 상황(값이 아예 없는 경우 등)이 남아 있다면, 그때 IFERROR나 IFNA로 마지막 안전장치를 씌웁니다.
추가로 자주 나는 오류 — #NUM!, #REF!
| 오류 코드 | 실무에서 자주 나는 상황 | 처리 방법 |
|---|---|---|
| #NUM! | 재무 함수(RATE, IRR 등)의 반복 계산이 수렴하지 않음 | IFERROR로 감싸거나 추정값(guess) 인수 조정 |
| #REF! | 다른 열을 삭제해 참조가 끊김 | IFERROR로는 근본 해결이 안 되므로 참조를 다시 지정해야 함 |
특히 #REF! 오류는 IFERROR로 감싸도 '겉으로만' 문제가 사라진 것처럼 보일 뿐, 참조가 끊긴 근본 원인은 그대로 남아 있습니다. #REF!가 뜨면 IFERROR를 씌우기 전에 반드시 수식이 참조하던 셀·열이 실제로 삭제됐는지부터 확인하고 원본을 복구하는 것이 우선입니다.
실무 패턴 — 중첩 IFERROR로 여러 소스 순서대로 시도하기
메인 명단에서 못 찾으면 보조 명단에서 한 번 더 찾아보고, 그래도 없으면 '확인필요'를 표시하고 싶은 경우 IFERROR를 중첩해서 여러 단계로 시도할 수 있습니다.
=IFERROR(VLOOKUP(F2, 메인명단, 2, 0), IFERROR(VLOOKUP(F2, 보조명단, 2, 0), "확인필요"))
메인명단에서 F2 값을 찾지 못하면 두 번째 IFERROR가 보조명단에서 다시 찾고, 거기서도 못 찾으면 최종적으로 '확인필요'가 표시됩니다. 여러 소스를 순서대로 확인해야 하는 실무 상황에서 유용한 패턴입니다.
오류 없이 안전한 수식, AI로 한 번에 완성하기 →