IFERROR · ISERROR로 오류 처리 끝! (#N/A · #VALUE! · #DIV/0! 1분 컷)

IFERROR · ISERROR로 오류 처리 끝! (#N/A · #VALUE! · #DIV/0! 1분 컷)

IFERROR · ISERROR로 오류 처리 끝! (#N/A · #VALUE! · #DIV/0! 1분 컷)

사용자 앞에선 깔끔한 결과, 백엔드에선 정확한 진단. IFERROR/ISERROR 조합으로 두 마리 토끼를 잡으세요.

문법 & 차이

함수형식포인트
IFERROR=IFERROR(수식, 대체값)수식에서 어떤 오류든 발생하면 대체값
ISERROR=ISERROR(값)오류면 TRUE/아니면 FALSE → IF(ISERROR(…),"",값)
IFNA=IFNA(수식, 대체값)#N/A만 대체(조회 실패 전용)
ERROR.TYPE=ERROR.TYPE(값)오류 종류 번호 반환(로그/분기용)

원칙: 표시용엔 IFERROR, 계산 로직엔 ISERROR/IFNA로 분기해 원인 은폐를 피합니다.

메시지/기본값 대체

빈칸 처리

=IFERROR(VLOOKUP(F2, Tbl, 3, FALSE), "")

안내 문구

=IFERROR(1/0, "입력 대기")

기본값(이전 값 유지)

=IFERROR(새값, 이전값)

LOOKUP 계열과 결합

XLOOKUP 기본값 자리에 메시지

=XLOOKUP(F2, 코드, 가격, "미등록 코드")

VLOOKUP/INDEX-MATCH 오류 숨김

=IFERROR(INDEX(가격, MATCH(F2, 코드, 0)), "없음")

여러 후보 키(OR) 조회 — 첫 성공 반환

=LET(v, IFERROR(XLOOKUP({F2,G2,H2}, 코드, 가격), NA()),
     XLOOKUP(TRUE, NOT(ISNA(v)), v))

부분 수식 보호(고급)

복합 계산에서 문제 구간만 보호하면 디버깅이 쉬워집니다.

예) 분모 0 방지

=IF( denominator=0, 0, numerator/denominator )

예) TEXTSPLIT 실패만 무해화

=LET(parts, IFERROR(TEXTSPLIT(A2,"-"),""), INDEX(parts,1))

디버깅 & 품질 모니터링

오류 건수 집계

=COUNTIF(범위, "#N/A") + COUNTIF(범위, "#VALUE!") + COUNTIF(범위, "#DIV/0!")

오류 종류별 카운트

=SUM(--(ERROR.TYPE(범위)=7))   // 7=#DIV/0! 예시

사용자에게 친절한 표시

=IFNA(XLOOKUP(F2, 코드, 가격), "미등록(담당자: 내선 1234)")

실수 & 모범사례

  • IFERROR 남용 → 원인까지 가린다. 계산 내부는 ISERROR/IFNA로 분기.
  • 텍스트 숫자 → #VALUE!의 흔한 원인. VALUE/NUMBERVALUE 또는 원천 데이터 정규화.
  • 0 나누기 → 분모 체크 후 나누기.
  • 체인 오류 → 앞 단계 오류가 뒤로 전파. 단계별로 분리해 테스트.
  • 로깅 누락 → 오류 건수/종류를 별도 시트에 기록해 품질 관리.

요약

상황권장 처리
조회 실패만IFNA(수식,"없음")
모든 오류 숨김IFERROR(수식,"")
분모 0IF(den=0,0,num/den)
디버깅ISERROR·ERROR.TYPE로 분기/집계
지금 시트에서 오류가 보이는 셀 하나를 골라 IFERROR(수식,””) 또는 IFNA로 정리해 보세요. 보고서 신뢰도가 즉시 올라갑니다.

Leave a Reply

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