VLOOKUP IFERROR 함수로 #N/A 오류 깔끔 처리하기

VLOOKUP IFERROR 함수 조합으로 #N/A 오류 깔끔 처리: 사용자 친화 보고서 만들기

엑셀에서 VLOOKUP으로 잘 조회하던 보고서가 어느 날 갑자기 #N/A, #REF!, #VALUE! 같은 오류로 가득 찬 경험, 한 번쯤 있으실 겁니다. 값이 없다는 것 자체는 중요한 정보지만, 보고서에 오류 코드가 그대로 보이면 파일이 깨진 것처럼 느껴지는 것이 문제입니다.

이럴 때 가장 많이 사용하는 패턴이 바로 VLOOKUP IFERROR 함수 조합입니다. 이 글에서는 VLOOKUP IFERROR 함수 기본 패턴부터 값이 없을 때 빈칸/0/“데이터 없음”으로 처리하는 방법, 여러 시트를 순서대로 검색하는 순차 VLOOKUP 공식, IFERROR를 사용할 때 주의해야 할 점까지 실무 기준으로 정리해 보겠습니다.

Quick Fix: 당장 써먹는 VLOOKUP IFERROR 함수 3패턴

1) #N/A를 빈칸으로 숨기기

기본 VLOOKUP 수식이 다음과 같다고 가정해 보겠습니다.

=VLOOKUP(A2, $F$2:$H$100, 3, FALSE)

값이 없을 때 #N/A 대신 빈칸으로 보이게 만들고 싶다면 IFERROR로 다음과 같이 감싸면 됩니다.

=IFERROR(
    VLOOKUP(A2, $F$2:$H$100, 3, FALSE),
    ""
)

조회에 실패하면 빈칸("")을, 성공하면 원래 VLOOKUP 결과를 돌려줍니다.

2) “데이터 없음” 메시지 표시

=IFERROR(
    VLOOKUP(A2, $F$2:$H$100, 3, FALSE),
    "데이터 없음"
)

보고서에서는 셀 서식을 활용해 “데이터 없음”을 회색 작은 글씨로 표시하면, 사용자가 이 셀을 오류가 아니라 실제 상태 정보로 바로 이해할 수 있습니다.

3) 숫자 보고서라면 0으로 처리

매출·수량처럼 숫자 집계에 들어가는 값이면, 오류 대신 0으로 처리하는 경우가 많습니다.

=IFERROR(
    VLOOKUP(A2, $F$2:$H$100, 3, FALSE),
    0
)

IFERROR 함수 간단 정리

IFERROR 함수의 기본 문법은 다음과 같습니다.

=IFERROR(value, value_if_error)
  • value: 오류인지 확인할 수식 또는 값
  • value_if_error: value가 #N/A, #VALUE!, #REF!, #DIV/0!, #NUM!, #NAME?, #NULL! 같은 오류일 때 대신 반환할 값

예를 들어, 다음 수식은 0으로 나누기 오류 대신 안내 메시지를 보여줍니다.

=IFERROR(10/0, "0으로 나눌 수 없습니다")

VLOOKUP과 결합할 때는 전체 VLOOKUP 수식을 value 자리에 넣는 것이 기본 패턴입니다.

=IFERROR( VLOOKUP(...), 오류일 때 보여줄 값 )

실무 예제 1: 고객코드 조회 + IFERROR로 깨끗한 보고서 만들기

샘플 데이터

고객 마스터 (F:H 범위)

고객코드(F) 고객명(G) 등급(H)
C001 김고객 A
C002 이고객 B
C003 박고객 C

매출 데이터 (A:C 범위)

고객코드(A) 매출액(B) 등급(C)
C001 100,000 ?
C004 50,000 ?
C002 70,000 ?

C열에 등급을 가져오는 기본 VLOOKUP은 다음과 같습니다.

=VLOOKUP(A2, $F$2:$H$4, 3, FALSE)

C004는 고객 마스터에 없기 때문에 #N/A가 발생합니다.

IFERROR로 “미등록” 표시하기

=IFERROR(
    VLOOKUP(A2, $F$2:$H$4, 3, FALSE),
    "미등록"
)

이제 C열 결과는 다음과 같이 정리됩니다.

고객코드 매출액 등급
C001 100,000 A
C004 50,000 미등록
C002 70,000 B

실무 예제 2: 여러 시트를 순서대로 검색하는 순차 VLOOKUP

시나리오

  • 온라인 시트: 온라인 주문 데이터
  • 오프라인 시트: 매장 주문 데이터
  • 현재 시트의 B2에 주문번호가 있을 때, 온라인 → 오프라인 순으로 조회하고 싶음

순차 VLOOKUP 공식

=IFERROR(
    VLOOKUP($B2, 온라인!$A$2:$D$1000, 4, FALSE),
    IFERROR(
        VLOOKUP($B2, 오프라인!$A$2:$D$1000, 4, FALSE),
        "주문 없음"
    )
)

먼저 온라인 시트에서 찾고, 오류가 나면 오프라인 시트에서 다시 찾고, 그래도 없으면 “주문 없음”으로 처리하는 구조입니다. 시트가 더 많다면 IFERROR를 추가로 중첩해 3중, 4중 순차 VLOOKUP도 구현할 수 있습니다.

실무 예제 3: IFERROR + VLOOKUP + 계산까지 한 번에

시나리오

  • 단가표에서 VLOOKUP으로 단가를 가져온 후 수량을 곱해 금액을 계산
  • 단가를 찾지 못한 경우 금액은 0으로 처리
=IFERROR(
    VLOOKUP($C2, $J$2:$L$100, 3, FALSE) * $D2,
    0
)

VLOOKUP 결과를 수량과 곱한 전체 표현식을 IFERROR의 첫 번째 인수로 넣어, 어떤 오류가 나더라도 0으로 정리되도록 만든 예시입니다.

IFERROR를 쓸 때 꼭 알아야 할 주의사항

1) 모든 오류를 무조건 숨기지 말 것

다음과 같이 작성해 두면, 어떤 문제든 전부 빈칸으로 가려질 수 있습니다.

=IFERROR(VLOOKUP(...), "")

개발 단계에서는 IFERROR를 잠깐 제거하고 VLOOKUP이 제대로 작동하는지, 참조 범위와 코드 형식에 문제가 없는지 먼저 확인하는 것이 좋습니다.

2) 형식 문제를 먼저 해결하고, 마지막에 IFERROR

앞자리 0, 날짜 형식, 숫자/텍스트 형식 문제는 TEXT, VALUE, TRIM 등으로 먼저 정리한 뒤 IFERROR를 사용하는 것이 이상적입니다. 형식 문제 해결은 아래 글과 함께 보면 이해가 더 쉽습니다.

3) 숫자 보고서에서 0을 쓸지 빈칸을 쓸지 결정하기

  • 합계/평균 계산에 포함되어야 할 값이면 0으로 처리
  • “아직 미등록/데이터 없음”을 구분하고 싶다면 빈칸 또는 “데이터 없음” 사용

Troubleshooting: VLOOKUP IFERROR 함수 조합에서 자주 생기는 문제

증상 원인(추정) 해결법/체크 포인트
IFERROR로 감쌌는데도 여전히 #N/A가 보임 VLOOKUP 전체가 아니라 일부만 IFERROR 안에 들어가 있음 VLOOKUP 수식 전체를 IFERROR의 첫 번째 인수로 감쌌는지 확인
모든 셀이 빈칸이라 어느 셀이 오류였는지 알 수 없음 IFERROR가 모든 오류를 “”로 통일 개발용 시트에서 IFERROR를 잠시 제거하고 문제 구간 파악
“데이터 없음” 문자열 때문에 SUM에서 오류가 발생 숫자 합계에 텍스트가 섞임 숫자 계산 열에서는 0으로, 메시지는 별도 열에 표시하는 구조로 변경
순차 VLOOKUP을 만들었는데 항상 첫 번째 시트 결과만 나옴 첫 번째 VLOOKUP의 마지막 인수가 TRUE여서 근사값 모드로 작동 VLOOKUP 네 번째 인수를 항상 FALSE로 지정
IFERROR를 쓰고 나서 원인을 찾기 어려움 디버깅 전에 IFERROR로 오류를 모두 숨겨 버린 경우 원인 분석용 파일에서 IFERROR를 제거하고 다시 검토

마무리: VLOOKUP IFERROR 함수 조합 연습 루틴

VLOOKUP IFERROR 함수 조합은 보고서에서 발생하는 오류를 사용자에게 의미 있는 값(빈칸, 0, “데이터 없음”)으로 바꾸어 주는 역할을 합니다.

  • 현재 사용하는 VLOOKUP 중 #N/A가 자주 발생하는 수식을 하나 골라 IFERROR로 감싸 보기
  • 빈칸, 0, 메시지(“데이터 없음”) 각각으로 대체했을 때 보고서 인상이 어떻게 달라지는지 비교
  • 온라인/오프라인 등 여러 시트를 순서대로 검색해야 하는 경우, 두세 개 시트만 골라 순차 VLOOKUP 패턴 구현
  • 형식 문제(앞자리 0, 날짜, 숫자/텍스트)는 TEXT 조합 글과 함께 먼저 해결한 뒤 IFERROR로 마무리

VLOOKUP 구조 전체를 이해하고 싶다면 아래 글들도 함께 참고해 보세요.

Leave a Reply

Your email address will not be published. Required fields are marked *