근사 모드 VLOOKUP vs XLOOKUP 근사 — 경계값 함정 완벽 정리

근사 모드 VLOOKUP vs XLOOKUP 근사 — 경계값 함정 완벽 정리

등급표·요금제·세율처럼 “구간” 기준으로 값을 찾을 때, VLOOKUP 근사 모드(TRUE)나 XLOOKUP 근사를 쓰면 경계값(임계값)에서 틀린 값이 튀는 일이 잦습니다. 이 글은 원리를 짚고, VLOOKUP 근사 XLOOKUP 근사 비교로 경계값 함정을 방지하는 실무 레시피를 제공합니다.

Quick Fix — 당장 틀린 값부터 잡는 5단계

  1. 기준표 정렬 확인: VLOOKUP 근사(TRUE)는 오름차순 정렬 필수.
  2. XLOOKUP으로 전환: =XLOOKUP(값, 기준, 결과, "", -1) 또는 1.
  3. 경계 안전장치: FLOOR.MATH/CEILING.MATH로 버킷 스냅.
  4. 결측 구간 검사: 조건부 서식으로 빈 구간 탐지.
  5. 중복 경계 처리: search_mode로 첫/마지막 정의 선택.

VLOOKUP 근사 모드의 원리(왜 틀려 보이나?)

TRUE/1 모드와 오름차순 정렬의 의미

=VLOOKUP(찾을값, 표, 열, TRUE)는 찾을값 이하에서 가장 큰 값을 찾습니다. 기준열은 반드시 오름차순.

경계값이 비어 있거나 중복될 때

빈 구간이 존재하면 경계 사이 값이 잘못된 구간으로 들어갈 수 있고, 중복 경계는 예측 불가능한 선택을 유발합니다.

데이터가 섞여 있을 때(정렬 불량)

하나라도 어긋난 행이 있으면 근사 검색은 그 위치에서 멈추며 엉뚱한 결과를 줍니다.

XLOOKUP 근사 모드 제대로 쓰기(안전한 기본기)

match_mode -1 vs 1

=XLOOKUP(값, 기준범위, 결과범위, "없음", -1)  // 다음 작은 값(≤)
=XLOOKUP(값, 기준범위, 결과범위, "없음", 1)    // 다음 큰 값(≥)

검색 방향(search_mode)

=XLOOKUP(값, 범위, 결과, , -1, 1)   // 위→아래
=XLOOKUP(값, 범위, 결과, , -1, -1)  // 아래→위

XMATCH + INDEX

=INDEX(결과범위, XMATCH(값, 기준범위, -1))
=INDEX(결과범위, XMATCH(값, 기준범위, 1))

실무 예제 1 — 등급표(점수→등급)

하한점수등급
0D
60C
70B
80A
90A+

XLOOKUP -1: =XLOOKUP(E2, A2:A6, B2:B6, "등급없음", -1)

버킷 스냅: =XLOOKUP(FLOOR.MATH(E2,1), A2:A6, B2:B6, "등급없음", -1)

마지막 정의 우선: =XLOOKUP(E2, A2:A6, B2:B6, "등급없음", -1, -1)

실무 예제 2 — 누진 요율/요금제

사용량 하한단가(원)
0100
10090
30080
50070

구간 단가: =XLOOKUP(G2, A2:A5, B2:B5, "", -1)

누진 합계: 구간사용량 계산 후 =SUMPRODUCT(구간사용량범위, 단가범위)

대체 레시피/주의사항/체크리스트

  • 범위 외 값은 “없음” 처리 또는 가상 하한/상한 행 추가
  • 가능하면 오름차순 유지(개념 혼선 감소)
  • [ ] 오름차순 정렬
  • [ ] 빈 구간 없음
  • [ ] 중복 경계 처리 방침
  • [ ] -1/1 선택 검증
  • [ ] FLOOR/CEILING 적용
  • [ ] 범위 외 예외 처리

Troubleshooting

증상원인해결법
경계에서 한 단계 어긋남match_mode 선택 오류-1/1 재선택
중복 경계 오답중복 + 기본 검색방향search_mode=-1 또는 중복 제거
엉뚱한 구간정렬 불량오름차순 재정렬
“없음” 다수범위 외/빈 구간가상 경계 추가/구간 보정
소수점 출렁임스냅 미적용FLOOR/CEILING 적용

마무리 & 추천 글

핵심은 정렬·연속성·중복·스냅입니다. XLOOKUP의 -1/1을 명확히 쓰고, 필요하면 XMATCH+INDEX로 투명하게 관리하세요.


공식 문서 참고: XLOOKUP Function, VLOOKUP Function

Leave a Reply

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