VLOOKUP 다중 조건 다중 결과: 실무 공식 5가지

VLOOKUP 다중 조건 다중 결과: 실무 공식 5가지로 “첫 값만 나오는 문제” 끝내기

엑셀에서 VLOOKUP은 가장 많이 쓰이지만, 실무에서 가장 자주 막히는 포인트도 확실합니다. 바로 (1) 다중 조건이거나 (2) 다중 결과(여러 행)일 때입니다. 이 글은 재현 가능한 예제 데이터와 템플릿 공식, 오류 방지 장치까지 한 번에 정리합니다.

Quick Fix — 10분 안에 “다중 조건 + 다중 결과” 끝내기

  1. 다중 조건인데 결과는 1개만 필요: 보조열(헬퍼열)로 키 합치고 VLOOKUP
  2. 다중 조건인데 결과가 여러 행(목록)으로 필요: 가능하면 FILTER로 스필(spill)
  3. 엑셀 2016/2019(FILTER 없음): INDEX+SMALL로 n번째 결과를 아래로 복사

VLOOKUP이 다중 조건/다중 결과에 약한 이유(원리)

VLOOKUP은 lookup_value 1개 값으로 table_array의 첫 번째 열에서 찾고, 매칭된 행 1개를 반환합니다. 그래서 조건이 여러 개면 “키를 합쳐 1개 값”으로 만들어야 하고, 결과가 여러 행이면 VLOOKUP 대신 FILTER 또는 INDEX+SMALL 설계가 필요합니다.

실무 예제 데이터(그대로 붙여넣기) + 표 구조 세팅

예제 데이터 (시트: Data)

OrderID	Branch	Product	Customer	OrderDate	Qty	UnitPrice	SalesRep
1001	Seoul	A001	Joel	2025-12-01	3	12000	Min
1002	Seoul	A001	Joel	2025-12-02	2	12000	Min
1003	Seoul	B002	Amy	2025-12-02	1	8000	Soo
1004	Busan	A001	Joel	2025-12-03	5	9500	Jin
1005	Busan	B002	Amy	2025-12-04	2	7800	Jin
1006	Busan	B002	Joel	2025-12-05	1	7800	Min
1007	Seoul	A001	Amy	2025-12-06	4	12000	Soo
1008	Seoul	B002	Joel	2025-12-06	2	8000	Min

범위를 선택한 뒤 Ctrl+T로 테이블로 변환하세요(머리글 포함 체크). 테이블 이름은 tblOrder로 설정하면 이후 공식이 깔끔해집니다.

방법 1) 다중 조건(단일 결과): 헬퍼열(보조열)로 키 합치기

Data 테이블에 Key 열을 추가하고 아래 공식을 입력합니다.

=[@Branch] & "|" & [@Product]

Query 시트에서 단가를 조회(정확히 일치)합니다.

=IFERROR(
  VLOOKUP($A2 & "|" & $B2, tblOrder[[Key]:[UnitPrice]], 2, 0),
  ""
)

방법 2) 다중 조건(단일 결과): CHOOSE로 “가상 테이블” 만들기

=IFERROR(
  VLOOKUP(
    $A2 & "|" & $B2,
    CHOOSE({1,2}, tblOrder[Branch] & "|" & tblOrder[Product], tblOrder[UnitPrice]),
    2,
    0
  ),
  ""
)

방법 3) 다중 결과(여러 행): FILTER로 “목록” 한 방에 뽑기 (추천)

=FILTER(
  tblOrder[[OrderID]:[UnitPrice]],
  (tblOrder[Branch]=$A2) * (tblOrder[Product]=$B2),
  "조건에 맞는 행 없음"
)

방법 4) 구버전(2016/2019): INDEX+SMALL로 n번째 결과 뽑기(배열수식)

아래 공식 입력 후, 구버전은 Ctrl+Shift+Enter로 확정하세요. 그리고 아래로 복사하면 2번째, 3번째 결과가 나옵니다.

=IFERROR(
  INDEX(tblOrder[OrderID],
    SMALL(
      IF( (tblOrder[Branch]=$A2)*(tblOrder[Product]=$B2),
          ROW(tblOrder[OrderID]) - MIN(ROW(tblOrder[OrderID])) + 1
      ),
      ROWS($D$2:D2)
    )
  ),
  ""
)

안전장치: 중복 키 검증(COUNTIFS), #N/A 처리(IFERROR), 날짜/공백 정리

중복 키 검증(유일성 체크)

=IF(
  COUNTIFS(tblOrder[Branch],$A2, tblOrder[Product],$B2)=1,
  VLOOKUP($A2&"|"&$B2, tblOrder[[Key]:[UnitPrice]], 2, 0),
  "중복/미존재 확인"
)

키에 날짜가 들어가면 TEXT로 포맷 통일

=[@Branch] & "|" & [@Product] & "|" & TEXT([@OrderDate],"yyyymmdd")

Troubleshooting

증상원인해결
#N/A정확일치 미설정/공백/타입 불일치4번째 인수 0, TRIM/CLEAN, 날짜 TEXT 통일
항상 첫 값만 반환다중 결과에 VLOOKUP 사용FILTER 또는 INDEX+SMALL
열 삽입 후 값 틀어짐col_index_num 고정MATCH로 열번호 자동화 또는 XLOOKUP/INDEX+MATCH
CHOOSE가 일부 PC에서 실패구버전/배열 지원 차이보조열 방식 또는 CSE 적용
너무 느림큰 배열/전체열 참조테이블/필요 범위만, 보조열로 단순화

관련 글(내부 링크)

외부 출처(공식 문서)

Leave a Reply

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