다른 시트에 있는 재고 수량표를 참조해서 판매 시트에 VLOOKUP을 걸었는데, 화면에 #N/A가 줄줄이 뜬 적 있으신가요? 저는 신제품 출시 초반에 재고 시트와 판매 시트가 따로 관리되던 회사에서 이 문제를 자주 겪었습니다. 신제품이라 아직 재고 시트에 등록조차 안 된 품목이 있었는데, 그 사실을 모른 채 판매 시트를 그대로 상급자에게 전달했다가 “이 오류가 뭐냐”는 질문을 받고 진땀을 뺐던 기억이 있습니다. 그날 이후로 참조용 수식에는 무조건 오류 처리를 기본값으로 걸어두는 습관이 생겼습니다. 이번 글에서는 IFERROR로 #N/A를 공백 처리하는 가장 빠른 방법과, 그 과정에서 흔히 놓치는 함정들을 정리해 보겠습니다.
💡 기능 개요 및 실무 핵심 요약
- 대상 기능 및 수식명: IFERROR, IFNA, VLOOKUP, XLOOKUP (다른 시트 참조 시 조합)
- 주요 해결 과제: 다른 시트를 참조하는 수식에서 발생하는 #N/A 오류를 화면에 노출하지 않고 즉시 공백으로 처리
- 적용 가능 버전: Excel 2007 이상 전 버전(IFERROR), Excel 2013 이상(IFNA), 구글 스프레드시트
- 기대 효과: 보고서 시각적 완성도 향상, #N/A로 인한 SUM/AVERAGE 수식 오류 연쇄 차단, 리뷰 시 불필요한 질문 예방
1. 다른 시트를 참조할 때 유독 #N/A가 자주 뜨는 이유
같은 시트 안에서 VLOOKUP을 쓸 때보다, 다른 시트나 다른 파일을 참조할 때 #N/A 오류가 훨씬 자주 발생하는 데는 이유가 있습니다. 시트가 분리되어 있다는 것은 대부분 그 데이터를 서로 다른 사람이나 시스템이 관리하고 있다는 뜻이기 때문입니다.
예를 들어 ‘판매’ 시트는 영업팀이 매일 새로운 품목을 추가하는 반면, ‘재고’ 시트는 물류팀이 주 1회만 업데이트한다면, 그 사이 기간에 등록된 신규 품목은 재고 시트에서 찾을 수 없어 당연히 #N/A가 뜹니다. 이 경우는 수식이 잘못된 것이 아니라 두 시트의 업데이트 주기 차이가 만든 자연스러운 결과입니다.
문제는 이 정상적인 #N/A를 그대로 보고서에 노출시켰을 때입니다. 보는 사람 입장에서는 오류처럼 보이기 때문에 굳이 설명을 덧붙여야 하고, 만약 그 옆 열에 SUM이나 AVERAGE 수식이 걸려 있다면 #N/A 하나 때문에 전체 집계 결과까지 오류로 표시됩니다. 그래서 다른 시트를 참조하는 수식에는 처음부터 IFERROR를 기본 장착해 두는 것이 실무에서는 사실상 표준 관행입니다.
2. IFERROR로 0초 만에 공백 처리하는 기본 문법
IFERROR의 구문은 매우 단순합니다. 기존에 쓰던 VLOOKUP이나 XLOOKUP 수식을 통째로 감싸주기만 하면 됩니다.
다른 시트를 참조하는 VLOOKUP에 적용하면 다음과 같은 형태가 됩니다. 시트 이름 뒤에 느낌표(!)를 붙여 참조 범위를 지정한다는 점만 기존 수식과 다릅니다.
두 번째 인수 자리에 큰따옴표 두 개("")를 넣으면 셀이 빈 것처럼 완전히 공백으로 보입니다. 만약 공백 대신 “미등록 품목”처럼 안내 문구를 넣고 싶다면 큰따옴표 사이에 원하는 텍스트를 적으면 됩니다.
⚠️ 공백 처리 전에 반드시 확인해야 할 것
- 진짜 원인 확인 없이 바로 IFERROR부터 씌우지 마세요. 참조 범위를 잘못 지정했거나 시트 이름에 오타가 있어도 IFERROR는 그 오류까지 조용히 감춰버립니다. 먼저 IFERROR 없이 순수한 VLOOKUP 결과로 #N/A가 ‘정상적인 데이터 누락’인지 확인한 뒤에 씌우는 순서를 지키세요.
- 공백(“”)은 진짜 빈 셀이 아닙니다. IFERROR로 만든 공백은 ‘길이가 0인 텍스트’로 취급되어, 이 열을 다시 COUNTBLANK나 다른 조건 수식으로 검사하면 예상과 다른 결과가 나올 수 있습니다. 숫자 계산용 열이라면
""대신0을 쓰는 것이 안전합니다. - #N/A 외의 다른 오류까지 함께 가려집니다. #REF!(참조 삭제), #NAME?(함수명 오타) 같은, 원래 즉시 고쳐야 하는 심각한 오류까지 똑같이 공백으로 덮어버려 문제 발견이 늦어질 수 있습니다.
3. 따라하기: 판매 시트에서 재고 시트를 참조하는 실전 예시
‘판매’ 시트에 품목코드와 판매수량이 있고, ‘재고’ 시트에 품목코드별 현재 재고 수량이 관리되고 있는 상황을 가정해 보겠습니다.
[판매 시트]
| A열 (품목코드) | B열 (판매수량) | C열 (현재 재고 – 수식 입력 대상) |
|---|---|---|
| P100 | 32 | [수식 적용 위치] |
| P101 | 14 | [수식 적용 위치] |
| P205 | 7 | [수식 적용 위치] |
[재고 시트 (A2:B4 영역, P205는 아직 미등록)]
| A열 (품목코드) | B열 (재고수량) |
|---|---|
| P100 | 120 |
| P101 | 45 |
단계별 수식 입력 절차
- 판매 시트의 C2 셀을 클릭합니다.
- 수식 입력줄에 다음 수식을 입력합니다.
=IFERROR(VLOOKUP(A2, 재고!$A$2:$B$100, 2, FALSE), "") - 시트 이름을 직접 타이핑하는 대신, 수식을 쓰다가 하단의 ‘재고’ 시트 탭을 클릭하고 범위를 마우스로 드래그하면
재고!부분이 자동으로 입력되어 오타를 줄일 수 있습니다. - 범위 지정 후 F4 키를 눌러 절대참조로 고정한 뒤, 채우기 핸들을 더블클릭해 C4 셀까지 적용합니다.
결과적으로 P100은 120, P101은 45로 정상 표시되고, 재고 시트에 아직 등록되지 않은 P205는 오류 표시 없이 빈 셀로 남습니다. 실제로 이 값이 진짜 재고 0인지, 단순 미등록인지는 별도로 확인이 필요하지만, 최소한 보고서 화면에서 #N/A라는 위협적인 문구는 사라집니다.
📌 실무 꿀팁: 공백 대신 원인을 알려주는 문구 넣기
단순히 ""로 감추기보다, 두 번째 인수에 "재고시트 미등록"처럼 원인을 짐작할 수 있는 짧은 문구를 넣어두면 나중에 이 데이터를 다시 열어본 동료나 미래의 자신이 “왜 비어 있지?”라는 의문을 갖지 않아도 됩니다. 특히 여러 사람이 같은 시트를 공유하는 환경일수록 이 작은 문구 하나가 커뮤니케이션 비용을 크게 줄여줍니다.
4. IFERROR vs IFNA, 언제 무엇을 써야 할까
IFERROR는 #N/A를 포함한 모든 종류의 오류를 다 잡아내는 반면, IFNA는 오직 #N/A 오류만 선별해서 처리하고 다른 오류(#REF!, #DIV/0!, #NAME? 등)는 그대로 화면에 노출시킵니다. 다른 시트를 참조하는 상황에서는 이 차이가 실제로 중요합니다.
| 비교 항목 | IFERROR | IFNA |
|---|---|---|
| 처리 범위 | 모든 오류 유형 (#N/A, #REF!, #DIV/0! 등) | #N/A 오류만 선별 처리 |
| 시트 삭제/이름 변경 시 | #REF! 오류도 조용히 공백 처리되어 문제 인지가 늦어짐 | #REF! 오류는 그대로 노출되어 즉시 발견 가능 |
| 지원 버전 | Excel 2007 이상 | Excel 2013 이상 |
| 추천 상황 | 배포 직전 최종본, 오류 유형을 이미 다 확인한 경우 | 작업 중인 시트, 구조 변경이 잦은 참조 관계 |
결론적으로 다른 시트를 참조하는 수식이 아직 자주 수정되는 단계라면 IFNA를 쓰는 것이 안전합니다. 시트 이름이 바뀌거나 범위가 삭제되었을 때 그 심각한 오류까지 공백으로 숨겨지는 사고를 막을 수 있기 때문입니다. 반대로 구조가 완전히 확정된 뒤 최종 배포 단계에서는 IFERROR로 모든 잡음을 깔끔하게 정리하는 편이 낫습니다.
5. 자주 묻는 질문 (FAQ)
Q1. IFERROR로 공백 처리했더니 그 열의 합계(SUM)가 이상하게 계산됩니다.
A. 두 번째 인수를 ""(텍스트 공백)로 지정하면 SUM 자체는 이를 무시하고 계산하므로 대부분 문제가 없습니다. 다만 AVERAGE처럼 개수를 나누는 함수는 빈 텍스트 셀을 분모에서 제외하는지 여부가 함수마다 다르므로, 숫자 집계용 열이라면 처음부터 "" 대신 0을 넣는 것을 권장합니다.
Q2. 참조하는 시트 이름에 공백이나 특수문자가 있으면 어떻게 하나요?
A. 시트 이름에 공백이 포함되어 있으면(예: ‘재고 현황’) 시트명을 작은따옴표로 감싸야 합니다. =IFERROR(VLOOKUP(A2, '재고 현황'!$A$2:$B$100, 2, FALSE), "")처럼 입력하면 되며, 마우스로 시트 탭을 클릭해 범위를 지정하면 이 부분도 자동으로 처리됩니다.
Q3. 다른 파일(다른 엑셀 워크북)에 있는 시트를 참조할 때도 똑같이 쓰면 되나요?
A. 구조는 동일하지만 참조하는 원본 파일이 닫혀 있으면 계산 속도가 느려지거나 값이 갱신되지 않을 수 있습니다. 가능하면 두 파일을 함께 열어둔 상태에서 작업하거나, 정기적으로 참조하는 데이터라면 파워 쿼리로 연결해 두는 방법이 더 안정적입니다.
Q4. 공백 처리된 셀만 따로 골라내서 나중에 확인하고 싶습니다.
A. 필터 기능에서 해당 열을 텍스트 오름차순으로 정렬하면 빈 텍스트("") 셀이 한쪽 끝으로 모입니다. 또는 별도의 확인용 열에 =ISNA(VLOOKUP(...)) 수식을 걸어 TRUE로 표시되는 행만 필터링하면 미등록 품목만 빠르게 골라낼 수 있습니다.
📋 바쁜 직장인을 위한 핵심 요약 3줄
- 다른 시트를 참조하는 수식은 업데이트 주기 차이로 #N/A가 자주 발생하므로, 처음부터
=IFERROR(원래수식, "")형태로 감싸는 것이 실무 표준입니다. - 공백 처리를 하기 전에 반드시 원인(정상 누락 vs 오타·범위 오류)을 먼저 확인해야 진짜 문제를 놓치지 않습니다.
- 수식이 아직 자주 바뀌는 작업 단계라면 IFNA, 구조가 확정된 최종 배포본이라면 IFERROR를 쓰는 것이 안전합니다.
다른 시트를 참조하다가 #N/A 말고 다른 오류(#REF!, #VALUE! 등)로 고생했던 경험이 있으신가요? 어떤 상황이었는지 댓글로 알려주시면 다음 편에서 원인별 대처법으로 다뤄보겠습니다.