엑셀 수식 에러(#N/A, #REF!) 뜰 때 IFERROR로 정리하는 법
수식을 채우기 핸들로 쭉 내렸는데 중간중간 #N/A가 섞여 있으면, 보고서를 그대로 제출하기가 찜찜합니다. 그렇다고 오류가 난 셀을 일일이 찾아 지우는 것도 번거롭습니다. IFERROR 하나면 이 문제를 대부분 정리할 수 있는데, 무작정 감싸기 전에 오류가 왜 나는지부터 아는 게 먼저입니다.
1. 엑셀 오류 메시지, 뜻부터 알아야 한다
| 오류 표시 | 주로 발생하는 상황 |
|---|---|
#N/A |
VLOOKUP·XLOOKUP 등에서 찾는 값이 범위에 없을 때 |
#REF! |
수식이 참조하던 셀·행·열이 삭제됐을 때 |
#DIV/0! |
0 또는 빈 셀로 나누기를 했을 때 |
#VALUE! |
숫자 자리에 텍스트가 들어가 계산이 불가능할 때 |
#NAME? |
함수 이름을 잘못 썼거나 지원하지 않는 버전일 때 |
IFERROR는 오류를 가려주는 함수이지, 오류의 원인을 고치는 함수가 아닙니다. 원인을 확인하지 않고 무조건 IFERROR로 감싸면, 데이터가 잘못됐다는 신호 자체를 놓칠 수 있습니다.
2. IFERROR 기본 문법
=IFERROR(수식, 오류일때_표시할_값)
수식 부분에서 오류가 발생하면 두 번째 인수의 값을 대신 보여주고, 오류가 없으면 원래 계산 결과를 그대로 보여줍니다. 예를 들어 부서코드로 부서명을 찾는 수식이 있다면 다음과 같이 감쌉니다.
=IFERROR(VLOOKUP(B4,부서표,2,0),"부서 확인 필요")
3. 오류일 때 표시할 값, 뭐가 좋을까
두 번째 인수에 무엇을 넣을지는 상황에 따라 다릅니다.
- 빈 문자열
""- 아예 아무것도 안 보이게 하고 싶을 때. 다만 이 셀을 다시 계산에 쓰면 예상치 못한 결과가 나올 수 있습니다. - 숫자 0 - 합계·평균 등 후속 계산에 그대로 포함시켜도 괜찮을 때.
- "확인 필요" 같은 안내 문구 - 검토자가 눈으로 걸러내야 하는 상황일 때. 실무에서 가장 안전한 선택입니다.
4. IFERROR와 IFNA의 차이
IFERROR는 #N/A를 포함한 모든 종류의 오류를 잡아냅니다. 반면 IFNA는 #N/A 오류만 잡고, 나머지 오류(예: #REF!, #DIV/0!)는 그대로 노출시킵니다.
VLOOKUP처럼 '못 찾은 경우'만 정상적으로 처리하고 싶고, 수식 자체의 실수(참조 오류 등)는 눈에 띄게 남겨 두고 싶다면 IFNA가 더 적합합니다. 반대로 어떤 이유든 오류 자체를 다 감추고 싶다면 IFERROR를 씁니다.
자주 막히는 지점 세 가지
1) IFERROR로 감쌌는데도 원인을 못 찾아 계속 확인 문구만 쌓인다
증상: "확인 필요"로 표시되는 행이 점점 늘어나는데 이유를 모르겠습니다.
원인: 원본 데이터의 코드 표기가 다르거나(공백, 대소문자), 조회 범위 자체가 최신 상태로 갱신되지 않은 경우가 많습니다.
해결: IFERROR를 잠시 걷어내고 원래 수식만 남겨서 실제 오류 메시지를 확인한 뒤, 원본 데이터를 손봅니다.
2) 합계 수식에 IFERROR로 감싼 0이 섞여 평균이 이상하게 나온다
증상: 평균값이 실제보다 낮게 계산됩니다.
원인: 오류를 0으로 대체했는데, 이 0이 평균 계산에 포함되면서 실제 값을 왜곡시킵니다.
해결: 평균처럼 개수가 영향을 주는 계산에는 0 대신 ""(빈 문자열)로 대체하거나, AVERAGEIF로 조건을 걸어 제외합니다.
3) 배열 수식(SUMPRODUCT 등)에 IFERROR를 씌웠더니 전체 결과가 사라진다
증상: 부분적으로만 오류인데 결과 전체가 대체 문구로 나옵니다.
원인: IFERROR는 수식 전체 결과를 기준으로 판단하므로, 배열 중 하나라도 오류면 전체를 오류로 취급하는 함수 조합이 있습니다.
해결: 배열 내부의 개별 항목에 IFERROR를 적용하거나, 오류를 일으키는 개별 조건을 먼저 SUMPRODUCT 안에서 필터링합니다.
자주 묻는 질문
IFERROR를 쓰면 수식 속도가 느려지나요?
일반적인 업무 파일 규모(수천~수만 행)에서는 체감할 정도의 속도 차이는 거의 없습니다. 다만 대용량 파일에서 배열 수식과 IFERROR를 겹겹이 중첩하면 계산이 느려질 수 있으니, 이런 경우는 보조열로 단계를 나누는 편이 낫습니다.
IFERROR 안에 IFERROR를 또 넣어도 되나요?
가능합니다. 첫 번째 방법이 오류면 두 번째 방법을 시도하고, 그마저 오류면 최종 안내 문구를 보여주는 식의 중첩이 실무에서 종종 쓰입니다. 다만 두 단계 이상 중첩되면 수식이 길어져 유지보수가 어려워지므로, 가능하면 원인 자체를 데이터 단에서 줄이는 것이 우선입니다.
오류를 무조건 다 가려도 되나요?
권장하지 않습니다. 오류는 데이터에 문제가 있다는 신호인 경우가 많습니다. 특히 보고서를 제출하기 전이라면, IFERROR로 감추기 전에 원인을 확인하는 절차를 거치는 것이 안전합니다.
조건부 서식으로 오류 셀만 따로 표시할 수 있나요?
네, 조건부 서식에서 '수식 사용'을 선택하고 =ISERROR(셀) 조건을 걸면 오류가 있는 셀만 색을 다르게 표시할 수 있습니다. 8번 글에서 조건부 서식 활용법을 더 자세히 다뤘습니다.
구글 시트에서도 IFERROR가 똑같이 동작하나요?
네, 구글 시트도 동일한 이름과 문법의 IFERROR를 지원합니다.
정리
- 오류 메시지마다 원인이 다르므로, 감싸기 전에 어떤 오류인지 먼저 확인합니다.
- IFERROR는
=IFERROR(수식, 오류일때 값)구조로, 오류를 가려줄 뿐 원인을 고치지는 않습니다. - 합계·평균 등 후속 계산이 있다면 대체값을 0으로 할지 빈 문자열로 할지 신중히 선택합니다.
#N/A만 처리하고 다른 오류는 남기고 싶다면 IFNA를 사용합니다.- 제출 전에는 IFERROR를 잠시 걷어내고 실제 오류 원인을 한 번 점검하는 습관을 들입니다.
관련 글
- VLOOKUP이 안 될 때 확인할 5가지 (순서대로)
- VLOOKUP과 XLOOKUP, 실무에서는 뭘 써야 할까
- 조건부 서식으로 마감일·재고 알림 만들기
댓글
댓글 쓰기