오류를 보이지 않게 만드는 가장 현실적인 방법
엑셀로 보고서를 만들다 보면, 이상하게도 항상 마지막에 같은 문제가 남습니다.
수식도 맞고,
계산도 정상인데,
표 안에 #N/A 오류가 그대로 보이는 문제입니다.
엑셀을 잘 아는 사람일수록 이 상황이 더 곤란합니다. “계산은 맞습니다”라고 설명해야 하는 순간, 보고서는 이미 설득력을 잃고 있기 때문입니다.
이번 글에서는 XLOOKUP으로 데이터를 조회한 뒤, 보고서에 적합한 형태로 마무리하는 방법, 즉 XLOOKUP + IFERROR 조합을 다룹니다.
엑셀 함수 공부를 하다 보면 대부분의 관심은 여기에 있습니다.
값을 잘 가져오는가
수식이 짧은가
다른 함수보다 편한가
하지만 실무에서 더 중요한 질문은 이것입니다.
“값이 없을 때, 이 셀은 어떻게 보이는가?”
보고서에 들어가는 엑셀은 정답을 계산하는 도구가 아니라 결과를 보여주는 문서이기 때문입니다.
XLOOKUP은 매우 안정적인 조회 함수입니다.
열 번호를 쓰지 않아도 되고
왼쪽/오른쪽 방향을 고민하지 않아도 되며
구조 변경에도 수식이 잘 깨지지 않습니다
그래서 실무 기준에서는 이미 기본 조회 함수로 자리 잡았다고 봐도 됩니다.
하지만 한 가지 문제는 여전히 남습니다. 조회 대상이 없을 경우, #N/A 오류를 그대로 보여줍니다.
엑셀 입장에서는 정상 동작이지만, 보고서 입장에서는 명백한 결함입니다.
- XLOOKUP 함수를 단독으로 쓸 경우 조회 대상이 없어 오류가 발생하는 경우를 아래와 같이 확인하실 수 있습니다.
- 오더시트에 고객시트의 고객명 정보를 불러와 보겠습니다.
- 오더 시트의 B열(고객 ID)를 고객 시트에서 A열(고객 ID)에 매칭되는 고객명을 XLOOKUP으로 불러오는 함수입니다.
=XLOOKUP(B3, Customer!A:A, Customer!B:B)
이 문제를 해결하는 가장 단순하고 확실한 방법이 IFERROR와의 결합입니다.
구조는 아주 간단합니다.
조회가 성공하면 → 정상 값 표시
조회가 실패하면 → 오류 대신 지정한 값 표시
즉, 계산 로직과 표현 로직을 분리하는 것입니다.
이 차이가 ‘엑셀 파일’과 ‘보고서용 엑셀’의 경계를 만듭니다.
예를 들어 주문 데이터에서 고객 이름을 불러오는 상황을 가정해 보겠습니다.
일부 주문은 고객 정보가 아직 등록되지 않았을 수도 있습니다. 이 경우 XLOOKUP은 정확하게 #N/A를 반환합니다.
문제는 그다음입니다.
이 오류를 그대로 보여줄 것인가
아니면 보고서에 맞게 정리할 것인가
실무에서는 거의 항상 후자를 선택합니다.
그래서 XLOOKUP은 단독으로 끝나는 함수가 아니라, IFERROR와 함께 “마무리”됩니다.
✔ XLOOKUP + IFERROR 기본구조
=IFERROR (XLOOKUP(B3, Customer!A:A, Customer!B:B), "-")
실무에서 자주 사용하는 패턴은 크게 세 가지입니다.
첫째, 하이픈( - ) 처리
→ 회의 자료, 보고서에 가장 무난한 방식입니다.
둘째, 텍스트 안내 문구
→ 데이터 누락 여부를 관리자가 확인해야 할 때 유용합니다.
셋째, 숫자 0 처리
→ 이후 합계나 평균 계산이 이어질 때 필수적입니다.
어떤 값을 쓸지는 “이 시트가 계산용인지, 보고서용인지”에 따라 달라집니다.
한 가지 주의할 점도 있습니다.
IFERROR는 매우 편리하지만, 모든 단계에서 무조건 사용하면 오히려 문제를 숨길 수 있습니다.
그래서 실무에서는 보통 이렇게 나눕니다.
계산·검증용 시트 → 오류 그대로 유지
보고서·제출용 시트 → IFERROR로 정리
이렇게 역할을 분리하면 데이터 정확성과 문서 완성도를 동시에 가져갈 수 있습니다.
✔ 이 조합이 실무에서 중요한 이유
XLOOKUP + IFERROR는 단순한 함수 조합이 아닙니다.
조회 로직은 정확하게 유지하면서
결과 표현은 보고서에 맞게 다듬는 방식
즉, 엑셀을 계산 도구에서 보고서 도구로 바꾸는 첫 단계입니다.
XLOOKUP은 조회의 기준이 되는 함수이고, IFERROR는 그 결과를 “사람에게 보여주는” 함수입니다.
이 둘을 함께 쓰기 시작하면 엑셀 파일의 성격이 달라집니다.
✔ 오류가 보이지 않는 표
✔ 설명이 필요 없는 보고서
✔ 신뢰감을 주는 결과물