엑셀 IFERROR 함수, 오류를 어떻게 숨기고 언제 쓰면 안 될까?

수식 결과가 #N/A로 도배된 시트를 처음 마주하면 대부분 “일단 다 없애야지”라는 생각부터 한다. 엑셀 IFERROR 함수 오류 숨기는 법은 단순하다. =IFERROR(수식, 오류 시 대체값) 형식으로 원래 수식을 감싸면 오류 대신 지정한 값이 표시된다. 하지만 이 함수가 편리하다는 이유로 무분별하게 쓰면 고쳐야 할 실수까지 묻혀버리는 함정이 된다. IFERROR는 출력 단계에서만 써야 하는 이유가 여기에 있다.

엑셀 오류 코드 종류와 원인: 덮기 전에 알아야 한다

같은 오류 숨김 처리라도 원인을 모르고 덮으면 나중에 더 큰 문제가 생긴다. IFERROR를 쓰기 전에 어떤 오류가 왜 뜨는지를 먼저 구분해야 한다.

오류 코드 주요 원인 주로 발생하는 함수
#N/A 찾는 값이 범위에 없음 VLOOKUP, MATCH, HLOOKUP
#DIV/0! 0 또는 빈 셀로 나누기 시도 나누기 수식, AVERAGE
#VALUE! 텍스트에 숫자 연산 시도 SUM, 곱하기 수식
#REF! 참조하던 셀이 삭제됨 셀 참조 전반
#NAME? 함수명 오타, 정의되지 않은 이름 수식 입력 전반
#NUM! 계산 불가능한 숫자 연산 SQRT, IRR, LOG 등

여기서 중요한 구분이 있다. #N/A와 #DIV/0!은 데이터 구조상 발생이 예상되는 “예측 가능한 오류”에 가깝다. 거래처 코드가 마스터 테이블에 아직 등록되지 않았거나, 분모가 될 데이터가 없는 달이 있을 때 자연스럽게 뜬다. 반면 #REF!와 #NAME?은 수식 자체에 결함이 있다는 신호다. 이 둘을 구분하지 않고 IFERROR로 일괄 처리하면, 정작 손봐야 할 수식 오류가 조용히 사라진다.

IFERROR 함수 기본 문법: 인수는 두 개뿐이다

엑셀 함수 중 가장 단순한 구조에 속한다.

=IFERROR(value, value_if_error)
  • value: 평가할 수식 또는 셀 참조. 오류가 아니면 이 값이 그대로 반환된다.
  • value_if_error: 오류가 발생했을 때 대신 표시할 값. 빈 문자열 "", 숫자 0, 텍스트 어느 것이든 가능하다.

상황별로 다른 대체값 선택법

① 빈 셀로 처리 — 출력 시트, 대시보드

=IFERROR(VLOOKUP(A2, 제품목록, 2, 0), "")

오류 대신 아무것도 표시하지 않는다. 인쇄 배포용 보고서처럼 시각적으로 깔끔해야 할 때 쓴다. 다만 빈 셀이 늘어나면 데이터 누락인지 오류 처리 결과인지 구분이 안 된다는 단점이 있다.

② 0으로 처리 — 합산·평균 포함 계산

=IFERROR(C2/D2, 0)

D2가 0이거나 비어 있을 때 #DIV/0! 대신 0이 들어간다. SUM 범위에 포함해도 계산이 깨지지 않는다. 단, 0이 집계에 포함되므로 실제 합계와 차이가 생길 수 있다는 점을 항상 염두에 둬야 한다.

③ 안내 텍스트로 처리 — 운영 시트

=IFERROR(VLOOKUP(A2, 재고DB, 3, 0), "미등록 품목")

담당자가 직접 보는 운영 시트라면 오류 대신 행동 지침이 되는 텍스트가 더 낫다. “미등록”, “확인 필요”, “데이터 없음” 같은 표현은 빈 셀보다 명확하고, 나중에 필터로 걸러내기도 편하다.

VLOOKUP·INDEX/MATCH와 조합할 때 실전 패턴

IFERROR의 가장 흔한 용도는 VLOOKUP 오류 처리다. 거래처 코드 기준으로 단가를 가져오는 시트에서 일부 코드가 마스터 테이블에 없으면 열 전체에 #N/A가 뜬다.

=IFERROR(VLOOKUP(B2, 단가표!$A:$C, 3, 0), 0)

INDEX+MATCH 조합에도 그대로 적용된다. VLOOKUP보다 유연한 대신 수식이 길어지는데, 이때 IFERROR로 감싸면 가독성이 오히려 좋아진다.

=IFERROR(INDEX(단가표!$C:$C, MATCH(B2, 단가표!$A:$A, 0)), "단가 미등록")

한 가지 원칙이 있다. SUMIF와 SUMIFS처럼 인수 순서나 범위 지정 방식이 함수마다 다를 수 있는데, 이들을 IFERROR와 조합할 때는 수식이 오류 없이 정확히 작동하는지 먼저 확인한 뒤 감싸는 것이 순서다. 수식이 잘못된 채로 IFERROR를 먼저 씌우면 결함을 발견하기가 훨씬 어려워진다.

IFERROR vs IFNA: 같은 듯 다르다

IFNA는 엑셀 2013부터 추가된 함수로, #N/A 오류에만 반응한다. 문법은 IFERROR와 동일하다.

=IFNA(VLOOKUP(A2, 범위, 2, 0), "없음")
함수 처리 대상 적합한 상황
IFERROR 모든 오류 유형 오류 유형을 구분하지 않아도 되는 최종 출력
IFNA #N/A만 VLOOKUP·MATCH 결과, 다른 오류는 그대로 보이고 싶을 때

VLOOKUP에는 IFNA가 더 정밀한 선택이다. #REF!나 #VALUE!가 발생하면 수식 자체에 문제가 있다는 뜻인데, IFERROR는 이것도 조용히 처리해버린다. IFNA를 쓰면 #N/A 외 오류는 화면에 그대로 남아 문제를 즉시 발견할 수 있다. 엑셀 2010 이하 구버전을 써야 하는 환경이라면 IFNA가 없으므로 IF(ISERROR(수식), 대체값, 수식) 패턴으로 대신한다.

오류를 무조건 숨기면 생기는 세 가지 실제 문제

IFERROR를 쓰면 시트가 깔끔해지는 건 맞다. 그런데 깔끔한 게 정확한 건 아니다.

합계가 틀어진다. VLOOKUP 오류가 #N/A 대신 0으로 처리되면 해당 행의 금액이 0원으로 집계된다. 매출 합계가 실제보다 낮게 나와도 눈치채기 어렵고, 특히 자동화된 집계 시트에서는 수개월이 지나도 발견하지 못하는 경우가 있다.

검수 타이밍을 놓친다. 데이터 입력 단계에서 오류가 눈에 보여야 담당자가 즉시 수정한다. 처음부터 숨겨두면 잘못된 데이터가 검토 없이 최종 보고서까지 올라간다.

#REF! 오류를 감춘다. 열을 삭제했을 때 생기는 #REF!는 수식 구조 자체가 망가진 신호다. IFERROR가 이걸 빈 셀로 처리하면 어느 셀의 참조가 끊겼는지 추적하기 어려워지고, 시트 전체를 다시 점검해야 하는 상황이 된다.

실무에서 검증된 방식은 이렇다. 데이터를 입력하고 검수하는 시트에서는 오류를 그대로 노출한다. 완성된 데이터를 출력하는 보고서나 대시보드 시트에서만 IFERROR 또는 IFNA로 처리한다. 이 두 단계를 구분하는 것만으로도 대부분의 문제를 예방할 수 있다.

정리: IFERROR는 출력 단계에서만 꺼내는 도구다

IFERROR 함수로 엑셀 오류를 숨기는 것은 어렵지 않다. 어려운 건 언제 쓰고 언제 쓰지 말아야 하는지 판단하는 것이다. 오류 유형을 먼저 파악하고, #N/A만 처리할 때는 IFNA를, 모든 오류를 처리할 때는 IFERROR를 골라 쓴다. 수식이 올바르게 작동한다는 걸 확인한 뒤 IFERROR로 감싸는 순서를 지키면, 깔끔함과 정확함을 동시에 유지할 수 있다.

자주 묻는 질문

IFERROR 함수에서 오류 대신 빈 셀처럼 표시하려면 어떻게 하나요?

두 번째 인수에 빈 문자열 ""을 넣으면 됩니다. =IFERROR(VLOOKUP(A2,범위,2,0),"") 형식으로 쓰면 오류 발생 시 셀이 비어 보입니다.

IFERROR와 IFNA의 차이는 무엇인가요?

IFERROR는 #N/A, #DIV/0!, #REF! 등 모든 오류를 처리하고, IFNA는 #N/A 오류에만 반응합니다. VLOOKUP·MATCH 결과 처리에는 IFNA가 더 정밀한 선택입니다. 다른 오류는 그대로 노출되어 수식 결함을 바로 발견할 수 있기 때문입니다.

IFERROR 함수는 엑셀 어느 버전부터 쓸 수 있나요?

엑셀 2007 이상에서 사용 가능합니다. IFNA는 엑셀 2013 이상에서만 지원됩니다. 구버전 호환이 필요하다면 IF(ISERROR(…), 대체값, 수식) 패턴을 써야 합니다.

IFERROR를 쓰면 합계(SUM)가 틀어질 수 있나요?

네, 오류를 0으로 대체하면 해당 셀이 0으로 집계됩니다. 원래 데이터가 빠진 채 합산되므로 실제 합계와 차이가 생길 수 있습니다. 출력 전용 시트에서만 쓰고, 집계 기반 시트에서는 오류를 그대로 노출하는 것이 안전합니다.

IFERROR 안에 IFERROR를 중첩해서 쓸 수 있나요?

문법상 가능하지만, 중첩하면 어떤 수식이 오류를 냈는지 추적하기 어려워집니다. 가독성과 유지보수를 위해 중첩보다는 수식 자체의 오류 원인을 먼저 해결하는 것을 권장합니다.

Leave a Comment