VLOOKUP으로 명단을 찾아오는 표를 만들었는데, 일부 사람이 명단에 없어서 #N/A 오류가 여기저기 떠 있는 채로 보고서를 그대로 출력해서 올린 적이 있습니다. "이 오류 표시는 뭔가요"라는 질문을 받고서야 부랴부랴 수정했던 기억이 나는데요. 이후로는 수식을 짤 때 오류가 날 가능성이 있는 부분에는 항상 오류 처리를 같이 넣는 습관이 생겼습니다. 오늘은 오류를 깔끔하게 감춰주는 IFERROR와 IFNA를 정리해보겠습니다.
오류가 왜 발생하는가
VLOOKUP이나 XLOOKUP은 찾는 값이 없으면 #N/A를, SUM 같은 계산식은 0으로 나누는 상황이 생기면 #DIV/0!을 표시합니다. 이런 오류 자체가 수식이 잘못됐다는 뜻은 아닙니다. 명단에 없는 사람을 조회했다면 #N/A가 뜨는 게 오히려 정상입니다. 문제는 이 오류를 그대로 보고서에 노출시키느냐, 보기 좋게 다른 값으로 바꿔서 보여주느냐입니다.
IFERROR — 어떤 종류의 오류든 다 잡아내기
=IFERROR(원래 수식, 오류일 때 대신 보여줄 값)
원래 수식이 정상적으로 계산되면 그 결과를 그대로 보여주고, 어떤 이유로든 오류가 나면 지정한 값으로 대신 표시합니다.
실무 예시: VLOOKUP 오류를 빈 칸으로 처리하기
=IFERROR(VLOOKUP(A2, 명단!A:C, 3, 0), "")
찾는 값이 명단에 없어서 #N/A가 뜨는 상황이라면, 오류 대신 빈 문자열("")을 표시합니다. 보고서에 오류 표시 없이 깔끔하게 빈 칸으로 남습니다.
실무 예시: 오류 대신 안내 문구 표시하기
=IFERROR(VLOOKUP(A2, 명단!A:C, 3, 0), "명단에 없음")
빈 칸 대신 "명단에 없음"이라는 문구를 넣어두면, 나중에 이 표를 보는 사람이 왜 값이 없는지 바로 알 수 있습니다. 단순히 오류를 감추기만 하는 것보다, 상황에 따라 이렇게 원인을 알려주는 문구를 넣는 게 더 친절한 경우가 많습니다.
IFNA — #N/A만 정확히 골라서 처리하기
IFERROR는 #N/A든 #DIV/0!든 어떤 오류든 다 잡아내는데, 가끔은 이게 오히려 문제가 될 수 있습니다. 정말 수식이 잘못돼서 나는 오류(예: 참조 범위 실수로 인한 #REF!)까지 IFERROR가 조용히 감춰버리면, 정작 고쳐야 할 진짜 문제를 못 보고 지나칠 수 있습니다.
=IFNA(원래 수식, 오류일 때 대신 보여줄 값)
IFNA는 오직 #N/A(찾는 값이 없다는 오류)만 잡아서 처리하고, 다른 종류의 오류는 그대로 화면에 남겨둡니다.
실무 예시: 찾는 값 없음은 감추되, 수식 실수는 눈에 띄게 남기기
=IFNA(VLOOKUP(A2, 명단!A:C, 3, 0), "명단에 없음")
명단에 없는 사람은 "명단에 없음"으로 정리되지만, 만약 참조 범위를 잘못 지정해서 #REF! 오류가 난다면 그 오류는 그대로 화면에 남아서 수식을 다시 점검해야 한다는 신호를 줍니다. VLOOKUP이나 XLOOKUP처럼 "값을 못 찾을 수도 있는" 함수에는 IFERROR보다 IFNA가 더 안전한 경우가 많습니다.
어떤 상황에 뭘 써야 할까
| 어떤 이유로 오류가 나든 상관없이 다 감추고 싶다 | IFERROR |
| 값이 없어서 나는 오류만 감추고, 다른 오류는 확인하고 싶다 | IFNA |
| 나눗셈에서 0으로 나눠서 나는 오류를 처리하고 싶다 | IFERROR |
| 수식을 처음 만드는 단계라 오류 원인을 직접 확인해야 한다 | 오류 처리 함수 없이 원래 수식 그대로 두고 확인 |
수식을 처음 짤 때부터 IFERROR를 씌워버리면, 오류가 조용히 감춰져서 수식 자체가 잘못됐는지조차 모르고 넘어갈 수 있습니다. 그래서 실무에서는 보통 수식이 제대로 작동하는 걸 먼저 확인한 다음, 마지막 단계에서 오류 처리를 씌우는 순서로 작업합니다.
실무 예시: SUMIF와 나눗셈을 조합할 때 0으로 나누는 오류 막기
평균 단가를 구할 때 매출을 판매량으로 나누는 경우, 판매량이 0이면 #DIV/0! 오류가 뜹니다.
=IFERROR(B2/C2, 0)
판매량이 0이라 나눌 수 없는 상황이면 오류 대신 0을 표시합니다. 다만 이럴 때 0을 표시하는 게 항상 맞는 건 아닙니다. 정말 판매가 없어서 0이 맞는 상황인지, 아니면 데이터가 아직 안 들어와서 빈 셀인 상황인지에 따라 "-"나 빈 문자열로 처리하는 게 더 적절할 수도 있으니, 상황에 맞게 대체값을 정하시면 됩니다.
자주 하는 실수 정리
- 수식을 만들자마자 IFERROR부터 씌워서 수식 자체의 오류를 못 알아채는 경우: 먼저 원래 수식이 제대로 동작하는지 확인한 뒤에 오류 처리를 추가하는 순서가 안전합니다.
- 모든 오류를 무조건 IFERROR로 감춰서 진짜 문제(참조 오류 등)를 놓치는 경우: VLOOKUP, XLOOKUP처럼 값이 없을 수 있는 함수에는 IFNA를 쓰는 게 더 안전한 경우가 많습니다.
- 대체값으로 무조건 0을 넣어서, 실제 값이 0인 것과 오류였던 것을 구분 못 하게 되는 경우: 상황에 따라 빈 문자열이나 "-", "확인필요" 같은 문구로 구분해두는 게 나중에 데이터를 다시 볼 때 헷갈리지 않습니다.
- IFERROR 안의 대체값에 또 다른 수식을 넣었다가 그 수식마저 오류가 나는 경우: 대체값 자리에는 가능하면 단순한 텍스트나 숫자를 넣는 게 안전합니다.
마치며
오류 처리는 수식이 없어도 되는 부가 기능처럼 보이지만, 다른 사람이 보는 보고서나 여러 사람이 같이 쓰는 파일이라면 사실상 필수에 가깝습니다. 특히 이번 시리즈에서 계속 다뤘던 VLOOKUP, XLOOKUP, SUMIF 같은 함수들은 조건에 안 맞는 상황에서 오류가 나기 쉬우니, 수식이 어느 정도 완성되면 IFERROR나 IFNA로 한 번 감싸주는 습관을 들이시길 추천드립니다.
'스트레스 없는 직장생활 > 직장인 엑셀 활용' 카테고리의 다른 글
| 패턴 하나만 보여주면 나머지는 알아서 채워준다 (0) | 2026.08.26 |
|---|---|
| 숫자는 맞는데 다들 표가 안 예쁘다고 하셨다면 (0) | 2026.08.25 |
| 시트 30개짜리 파일, 이름만 봐도 헷갈리지 않으려면 (0) | 2026.08.24 |
| 프린터로 뽑았더니 표가 반으로 잘려서 나온 날 (0) | 2026.08.23 |
| 입력 누락자 찾다가 눈 빠질 뻔했던 이야기 (0) | 2026.08.22 |