엑셀 VLOOKUP 다중조건 함수 공식 :: 여러개 조건으로 값을 찾는 방법! 

사용된 공식
= { INDEX(출력범위, MATCH(1, (조건1=조건범위1)*(조건2=조건범위2)*…, 0)) }

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

공식에 대한 설명

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

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

VLOOKUP 함수 다중조건

여러개의 조건을 만족하는 VLOOKUP 함수 공식을 알아봅니다.

예제파일 다운로드
파일구분마지막수정일파일형식파일다운로드
10E-Book2019-10-28PDF5분엑셀 파일다운로드
10예제파일2019-10-28XLSX5분엑셀 파일다운로드
9E-Book2019-10-28PDF5분엑셀 파일다운로드
9PPT자료2019-10-28PPT5분엑셀 파일다운로드
9예제파일2019-10-28ZIP5분엑셀 파일다운로드
5예제파일2019-12-19XLSX5분엑셀 파일다운로드
8예제파일2019-10-28ZIP5분엑셀 파일다운로드
7E-Book2019-10-25PDF5분엑셀 파일다운로드
7완성파일2019-10-25XLSM5분엑셀 파일다운로드
7예제파일2019-10-28XLSX5분엑셀 파일다운로드
6완성파일2019-12-19XLSX5분엑셀 파일다운로드
6예제파일2019-12-19XLSX5분엑셀 파일다운로드
영상강의

공식에 사용된 기초함수
선택한 범위에서 원하는 위치의 값을 반환합니다.
선택한 범위에서 찾는값의 위치 순번을 반환합니다.

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 함수)

관련 함수 공식 살펴보기

VLOOKUP 참조 범위의 마지막 값을 반환합니다.
지정한 범위에서 찾는값과 일치하는 그림을 출력합니다.
범위에서 값을 찾아 같은 행의 다른 값을 반환합니다.
INDEX / MATCH 함수의 다양한 실전 응용방법을 알아봅니다.
2중 조건을 만족하는 데이터유효성 목록상자를 생성합니다.

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

별점주기 (5 / 3)

5
댓글 남기기

avatar
3 Comment Thereads
2 Thread replies
3 팔로워
 
가장 좋아요가 많은 댓글
가장 인기많은 댓글
5 작성자
ㅇㅇㅇ오빠두엑셀 김진현오빠두엑셀오세창 최근 작성자
  현재 페이지 댓글알림 신청  
알림 설정
오세창
손님
오세창

안녕하세요.
강의 잘보고, 잘듣고 있습니다.
감사합니다.
예제 파일 ppt 빼고 나머지 모두 다운로드가 안되네요.

오빠두엑셀
손님

안녕하세요? 오빠두엑셀입니다.
첨부파일에 문제가 생겼었습니다 🙂 확인 감사드려요.
문제 해결되었으니 다시 시도해주시겠어요? 감사합니다.

김진현
손님
김진현
별점주기 :
     

안녕하세요. 강의 잘 보고 있습니다. 질문이 하나 있어서요..
예전에 동적범위 강의를 보고, 이번 공식에 적용하고 싶어서 출력범위에 offset함수로 동적범위를 적용했습니다.
그런데 어떤건 옳은값이 나오고 어떤건 #REF 에러가 나오는데요 ㅠ.ㅠ 왜 그러는지 알 수 있을까요?

ㅇㅇㅇ
손님
ㅇㅇㅇ
별점주기 :
     

감사합니다!