이번 포스팅에서는 엑셀 IFERROR 사용 방법, 엑셀에서 나타나는 #DIV/0!, #N/A, #REF! 오류 처리 방법에 대해 정리해보았습니다.
엑셀은 매우 강력한 기능이 있는 스프레드시트 프로그램입니다. Microsoft Office의 여러 구성 요소 중 하나로서, 직관적이면서도 광범위한 기능을 제공하여 개인이든 기업이든 많은 사람들이 데이터를 손쉽게 다루고 분석할 수 있게 해줍니다. 특히 기초적인 자료 분석이나 통계 작업을 진행할 때, 엑셀은 매우 높은 활용도를 보여줍니다.
하지만 데이터가 점점 많아지고, 방대한 양의 데이터를 가지고 처리하게 되면 단순히 한 화면 안에 모든 데이터를 전부 담아내기 어려운 상황도 자주 발생합니다. 수십, 수백, 혹은 수천 개의 셀을 다루다 보면, 중간중간 발생하는 오류나 계산 문제를 효율적으로 확인하고 처리해야 할 필요가 커집니다. 바로 이때, 엑셀에서 자주 활용되는 편리한 함수 중 하나가 엑셀 iferror 함수입니다.
엑셀 iferror 함수는 말 그대로 ‘오류가 발생했을 경우’를 가정하고 해당 오류를 처리하거나 다른 대체값을 표시해주는 함수입니다. 데이터 처리 시 가장 빈번하게 마주치는 오류 예를 들면, 수식 계산 중 0으로 나누기(#DIV/0!), 값을 찾지 못함(#N/A), 잘못된 참조(#REF!) 등 다양한 오류 메시지가 발생할 수 있습니다. (참고로 앞선 포스팅에서 이러한 오류 유형에 대해 정리한 바 있습니다.)
그런데, 이 오류를 그대로 노출하기보다 우리가 원하는 다른 메시지나 값으로 대체해서 표시해줄 수 있습니다. 이렇게 하면 보고서를 제출하거나 최종 결과물을 공유할 때 불필요한 오류 표시가 난무하지 않도록 정리할 수 있습니다.
이번 글에서는 엑셀의 iferror 함수를 어떻게 활용하면 좋을지 자세하게 다루어보겠습니다. 오류가 발생할 경우를 대비하여 원하는 다른 데이터 혹은 메시지로 대체할 수 있는 iferror 함수를 제대로 활용하면, 데이터 분석과 보고서 작성 과정에서 훨씬 깔끔하고 안정적인 결과물을 얻을 수 있습니다.
엑셀 iferror 함수란? 언제 쓸까?
엑셀 iferror 함수는 기본적으로 특정 셀이나 수식에서 오류가 발생했을 때, 사용자가 지정한 값이나 메시지로 대체해주는 함수입니다. 수식을 작성하는 과정에서 오류가 발생하는 것은 자연스러운 일이지만, 이를 최종 보고나 실무에서 그대로 노출하기에는 불편함이 많습니다.
가령, 데이터가 누락되어서 #N/A 오류가 발생한 경우, 혹은 잘못된 참조로 인해 #REF! 오류가 발생한 경우, 이런 오류 메시지를 그대로 두면 다른 사람들과 자료를 공유할 때 혼란을 줄 수도 있습니다.
이런 상황에서 iferror를 사용하면 수식이 정상적으로 계산될 때는 그 계산 결과를 표시하고, 오류가 발생하면 원하는 메시지(예: “값 없음”, “확인 필요”, “ITmanual.net에서 확인 요망” 등)로 바꿔서 보여줄 수 있습니다. 이처럼 iferror 함수는 실무에서 보고서를 깔끔하게 다듬을 때, 그리고 오류 제어 로직을 구현할 때 매우 요긴하게 사용됩니다.
다음과 같은 사례에서 특히 유용합니다:
- 0으로 나누기 오류(#DIV/0!) 처리
통계 혹은 지표 계산 시 분모가 0이 되는 경우 #DIV/0! 오류가 자주 발생합니다. iferror를 사용하면 #DIV/0! 대신 “0”이나 “-” 등의 대체값을 보여줄 수 있습니다. - vlookup 등의 조회 함수 오류(#N/A) 처리
vlookup, hlookup, match 등의 함수로 값을 찾을 때, 해당 값이 테이블 범위에 없을 경우 #N/A 오류가 나올 수 있습니다. 이때 “검색 결과 없음” 등의 안내 문구로 대신 표시할 수 있습니다. - 데이터가 누락되어 있거나 잘못된 참조 오류(#REF!, #VALUE!) 처리
여러 시트 간에 참조가 잘못되어 #REF!, #VALUE! 등이 발생하는 경우가 많습니다. 이럴 때도 iferror를 통해 적절한 값이나 문구로 대체하면 문서가 훨씬 깔끔해집니다. - 사용자 정의 메시지 사용
단순히 오류를 숨기는 것뿐 아니라, “값 없음”, “확인 필요” 등 구체적인 메시지를 지정해두면 작업 효율이 크게 높아집니다.
엑셀 iferror 함수 사용법
엑셀 iferror 함수의 기본 문법은 다음과 같습니다.
=IFERROR(수식, 오류 시 대체값)
- 수식: 오류가 발생할 수 있는 수식, 혹은 다른 함수의 결과값을 넣습니다.
- 오류 시 대체값: 만약 ‘수식’ 부분에서 오류가 발생한다면, 이곳에 지정한 값이나 문자열을 대신 표시합니다.
즉, IFERROR( A1/B1 , 0 ) 과 같은 예시가 있다면, A1을 B1으로 나누는 과정에서 오류(#DIV/0! 등)가 발생하면 0을 표시하고, 오류가 발생하지 않으면 정상 계산된 결과(A1/B1)를 표시하게 됩니다.
예시 테이블로 살펴보기
아래는 엑셀 iferror 함수를 쉽게 이해하기 위해 간단히 구성한 예시 테이블입니다. A열과 B열에 어떤 데이터가 있으며, C열에서 나눗셈 결과를 계산한다고 가정해봅니다. 또한 다양한 오류를 직접 시뮬레이션해보고, 오류가 발생했을 때의 처리 과정을 살펴보겠습니다.
A 열 | B 열 | C 열 (결과) | |
---|---|---|---|
1 | 10 | 2 | |
2 | 15 | 0 | |
3 | 20 | (공백) | |
4 | ITmanual.net | 5 | |
5 | #N/A | 3 |
- A1, B1: 정상적인 숫자 10, 2
- A2, B2: 분모가 0이 되어 10/0 형태로 나누기 오류(#DIV/0!) 발생 가능
- A3, B3: B3이 아예 공백(데이터가 없음)
- A4, B4: A4는 문자열(“ITmanual.net”)이며, B4는 숫자 5
- A5, B5: A5가 #N/A로 표시된 오류 값, B5는 숫자 3
오류가 발생하는 기본 수식 (iferror 적용 전)
가령 C1에 =A1/B1 라는 수식을 입력하면, A1=10, B1=2이므로 문제없이 5라는 결과가 나올 것입니다.
하지만
C2에 =A2/B2를 그대로 입력하면, 15를 0으로 나누는 상황이므로 #DIV/0! 오류가 발생합니다.
C3에 =A3/B3를 입력하면, 아무 숫자도 없는 셀을 나누려 했으므로 #VALUE! 오류가 발생 합니다.
C4에 =A4/B4를 입력하면, 문자인 A4를 숫자인 B4로 나누려 했으므로 #VALUE! 오류가 발생합니다.
C5에 =A5/B5를 입력하면, A5가 이미 #N/A 오류 값이므로 다시 #N/A가 발생할 수 있습니다.
엑셀 iferror 함수 적용 후
위와 같이 오류가 발생하는 상황을 엑셀 iferror 함수로 처리해보겠습니다. 예를 들어 C2 셀에 아래와 같이 작성한다고 가정해봅니다.
=IFERROR(A2/B2, "오류 발생 - 0으로 나눌 수 없습니다")
이렇게 하면 A2/B2가 정상적이면 그 값이 표시되지만, 실제로는 0으로 나누는 오류가 발생하므로 iferror의 두 번째 인수인 “오류 발생 – 0으로 나눌 수 없습니다”라는 문구가 대신 표시됩니다.
이를 토대로 C열 전체에 iferror를 적용해볼 수 있습니다. 각 셀에 대한 예시 공식은 아래와 같습니다.
- C1: =IFERROR(A1/B1, “오류 발생”)
- 정상 계산이 가능하므로 C1은 5가 표시됩니다.
- C2: =IFERROR(A2/B2, “오류 발생 – 0으로 나눌 수 없습니다”)
- 실제로는 #DIV/0! 오류가 발생하지만, 엑셀 iferror 함수로 인해 “오류 발생 – 0으로 나눌 수 없습니다”가 표시됩니다.
- C3: =IFERROR(A3/B3, “값이 비어있습니다”)
- B3이 공백이므로 #DIV/0! 등 오류가 예상되지만, 엑셀 iferror 함수로 인해 “값이 비어있습니다”라고 표시됩니다.
- C4: =IFERROR(A4/B4, “숫자가 아닌 값입니다”)
- A4가 문자인 “ITmanual.net”이므로 #VALUE! 오류 발생 → “숫자가 아닌 값입니다”로 표시
- C5: =IFERROR(A5/B5, “데이터 오류(N/A)”)
- A5가 #N/A 오류 값이므로, 엑셀 iferror 함수로 “데이터 오류(N/A)” 문구를 표시
이처럼 엑셀 iferror 함수를 사용하면 각 셀에서 발생하는 오류마다, 보기에 훨씬 깔끔하고 의미 있는 메시지를 출력할 수 있습니다.
사용 시 주의사항 및 팁
- 오류인지 아닌지 확실히 구분하기
iferror는 ‘어떤 오류 메시지든’ 발생하면 두 번째 인수를 반환합니다. 즉, #N/A, #DIV/0!, #VALUE! 등 어떤 종류의 오류여도 동일한 메시지를 반환합니다. 오류 타입별로 다른 처리를 하고 싶다면, iferror 외에 if문 + iserror, isna 등과 조합해야 할 수도 있습니다. - 오류가 아닌 정상 값이 0이나 빈 셀일 때 구분하기
엑셀 iferror 함수로 처리할 때, 때로는 “0”이나 “-” 등으로 표시하게 설정하는 경우가 있습니다. 그런데 실제 계산 결과가 0일 수도 있으므로, 이게 진짜 0인지 오류로 대체한 0인지 혼동될 수 있습니다. 이런 경우에는 메시지를 보다 명확히 해주는 것이 좋습니다. - 복잡한 수식일수록 iferror로 감싸주기
vlookup이나 index+match 같은 조회 함수, 혹은 여러 함수가 중첩된 수식은 오류 발생 가능성이 높습니다. 이런 복잡한 수식일수록 iferror로 감싸서 오류를 효율적으로 제어해주는 것이 좋습니다.
이번 포스팅에서는 지금까지 엑셀에서 데이터를 보다 깔끔하고 안정적으로 표시하기 위해 널리 사용되는 iferror 함수에 대해 살펴보았습니다. 현업에서 분명히 자주 겪게 되는 0으로 나누기 오류(#DIV/0!), 값 누락 오류(#N/A), 참조 오류(#REF!), 잘못된 데이터형 오류(#VALUE!) 등이 모두 iferror를 통해 깔끔하게 처리가 가능합니다.
- iferror 기본 문법: =IFERROR(수식, 오류 발생 시 대체값)
- 주요 활용 방법: 0으로 나누기, 값 검색 오류, 잘못된 셀 참조, 사용자 정의 메시지
- 주의사항: 어떤 오류든지 간에 동일하게 처리한다는 점, 실제 0 혹은 빈 셀 값과 구분할 수 있도록 메시지 등을 직관적으로 설정할 것
참고로 마이크로소프트 고객지원 페이지에서도 엑셀 iferror 함수 사용 방법에 대해 가볍게 안내하고 있습니다.
데이터가 방대해지면 오류도 비례해서 늘어나기 마련입니다. 그러나 엑셀 iferror 함수처럼 간단하면서도 강력한 함수를 잘 활용하면, 엑셀 보고서나 대시보드를 훨씬 깔끔하게 만들 수 있습니다. 작업하는 중에 오류가 자주 눈에 띈다면, 꼭 iferror로 처리하는 것을 추천 합니다. “ITmanual.net”처럼 문자열이 들어간 셀이라도 오류를 유연하게 처리할 수 있으니, 활용 범위가 정말 넓습니다.
앞선 포스팅에서 엑셀 오류 관련하여 정리한 글은 아래와 같습니다.
엑셀 필터 오류, 정렬 안됨 오류 10초 해결 – 이 작업을 수행하려면 병합하려는 모든 셀의 크기가 동일해야 합니다.