엑셀 vlookup 다중조건 예제 - egsel vlookup dajungjogeon yeje

사용된 공식

= { INDEX(출력범위, MATCH(1, (조건1=조건범위1)*(조건2=조건범위2)*..., 0)) }

[! 주의] 해당 공식은 배열수식이므로 Ctrl + Shift + Enter 로 '꼭! 반드시!' 입력해야 합니다.
그렇지 않으면 #VALUE! 오류가 출력됩니다.

인수 설명
엑셀 vlookup 다중조건 예제 - egsel vlookup dajungjogeon yeje
엑셀 VLOOKUP 다중조건 공식에 사용된 인수
인수 설명
출력범위 출력될 값이 입력된 범위입니다. (*조건범위, 출력범위의 높이/너비는 반드시 동일해야 합니다.)
조건범위1 첫번째 조건이 입력된 범위입니다.
조건1 첫번째 조건입니다.
조건범위2 두번째 조건이 입력된 범위입니다.
조건2 두번째 조건입니다.

예제파일 다운로드

오빠두엑셀의 강의 예제파일은 여러분을 위해 자유롭게 제공하고 있습니다.

  • [실무기초] VLOOKUP 함수 다중조건 검색


관련 강의

INDEX/MATCH 함수의 기본 동작원리가 궁금하시다면 아래 영상강의를 참고해주세요.

영상강의

공식에 대한 설명

INDEX / MATCH 함수를 응용한 공식입니다. VLOOKUP 함수를 '여러개의 조건'으로 검색하여 사용할 수 있습니다. INDEX/MATCH 공식의 기초 사용법관련포스트를 참고하세요.

해당 공식은 각 조건범위가 세로 또는 가로로 같은 방향일 경우에만 사용할 수 있습니다. 예를들어, 조건범위1는 가로방향이고 조건범위2가 세로방향일 경우 사용할 수 없습니다. 만약 가로/세로 다른 방향으로 여러개 조건을 만족하는 값을 찾아야 할 경우, INDEX함수의 3번째 인수를 추가하여 공식을 작성합니다. INDEX/MATCH 함수의 고급사용법관련 포스트에서 자세히 설명드렸습니다.

  • VLOOKUP 마지막값 찾는 방법
  • VLOOKUP 함수로 이미지 출력하기
  • VLOOKUP 여러개 값 가져오기 공식

VLOOKUP 함수 다중조건 공식 단계별 사용법

예제파일에 사용된 공식

= { INDEX($D$7:$D$18, MATCH(1, ($B$7:$B$18=H8)*($C$7:$C$18=H7), 0)) }

공식의 동작 원리

  1. 첫번째로, 여러개의 조건범위에서 각 조건을 모두 만족하는 행의 위치를 구합니다. MATCH 함수를 사용합니다.

    조건1 : $B$7:$B$18 = '품목'
    조건2 : $C$7:$C$18 = '주문처'
    MATCH 함수는 조건1과 조건2를 동시에 만족하는 행의 번호를 반환합니다.

  2. MATCH 함수에 입력되는 배열의 곱셈을 살펴보겠습니다.

    = {저지방우유, 하루우유, 하루우유, 저지방우유, 딸기맛우유, ...}  '// B7:B18에 입력된 품목입니다
    = {오빠두식당, 오빠두식당, 엑셀천국, 엑셀천국, 엑셀천국, ...}  '// C7:C18에 입력된 주문처입니다.

    '// 검색항목으로, '하루우유'와 '오빠두식당'을 검색할 경우, 두 배열의 곱셈은 아래와 같이 출력됩니다.
    = {품목범위=하루우유} * {주문처범위=오빠두식당}
    = {0, 1, 1, 0, 0, ..} * {1, 1, 0, 0, 0, ..}
    = {0, 1, 0, 0, 0, ..}  '// 두 배열의 곱셈을 계산합니다.

  3. 이제 두 배열의 곱셈을 MATCH 함수에 넣어보겠습니다.

    = MATCH(1, ('품목범위='품목')*('주문처범위'='주문처'), 0)
    = MATCH(1, {0, 1, 0, 0, 0, ...}, 0)
    = 2  '// MATCH 함수는 해당 범위에서 '1' 을 찾습니다. 배열에서 '1'이 두번째에 위치하므로 결과값으로 '2' 를 반환합니다.

  4. 이제 INDEX 함수의 동작원리를 알아봅니다. INDEX 함수는 범위에서 '해당 순번'에 위치하는 값을 반환합니다.

    = INDEX($D$7:$D$18, 2'// MATCH 함수의 결과값으로 2가 반환되어 INDEX 함수에 입력됩니다.
    = INDEX({1200, 1350, 1340, 1300, ...}, 2)
    = 1350   '// 범위에서 2번쨰 위치한 1350이 반환됩니다.

  5. 즉, 다시 정리하자면

    첫번째 : 다중조건으로 검색할 '하루우유'와 '오빠두식당'이 모두 일치하는 행의 번호는 2번째이다. (MATCH 함수)
    두번째 : 따라서 출력범위에서 2번째에 있는 항목인 1350을 출력한다. (INDEX 함수)

링크] MS 홈페이지 VLOOKUP 함수 사용법 상세설명