오빠두엑셀 `2026 무료 챌린지` 오픈! 완주하고 수료증 받아가세요! 5년 연속 IT분야 베스트셀러! 「 진짜쓰는 실무엑셀 」로 2026년 공부 끝내기 엑셀이 막히셨나요? Q&A 게시판에서 바로 해결하세요.
메뉴
엑셀 고급 강의

엑셀 VLOOKUP 함수 여러개 출력 공식 동작원리 - 단계별 정리

오빠두엑셀 by 오빠두엑셀
  • 학습시간 11분
  • 난이도 중급
  • 작성일 2021.06.09

직장인이 꼭 알아야 할 필수 공식! VLOOKUP 함수 여러개 출력 공식 사용법 - 완벽정리

이 강의에서는 VLOOKUP 함수로 여러 개의 값을 한 번에 출력하는 배열 공식의 기초와 응용을 다룹니다. 조건이 한 개인 기본형부터 여러 범위·여러 조건을 동시에 비교하는 응용형까지, MATCH+ROW로 순번을 만들고 IF·SMALL·INDEX 함수를 차례로 결합해 공식이 완성되는 동작원리를 단계별로 정리합니다.

엑셀 VLOOKUP 함수 여러개 출력 공식 동작원리 - 단계별 정리
DOWNLOADS

실습자료를 준비했어요

수업에서 사용한 예제 파일과 보충 자료를 한 곳에 정리했습니다!👇

실습 가이드

이번 강의에서는 VLOOKUP 함수로 여러 개의 값을 한 번에 불러오는 공식의 기초·응용·동작원리를 단계별로 살펴봅니다.

이번 포스트에서 소개해드린 모든 공식은 배열수식이므로
365 이전 버전 사용자는 반드시 CTRL + SHIFT + ENTER 로 입력해야 합니다.

365 버전 사용자는 본 강의에서 소개해드린 공식 대신 FILTER 함수를 사용하면 보다 빠르고 편리하게 동일한 결과를 얻을 수 있습니다. FILTER 함수에 대한 자세한 설명은 아래 FILTER 함수 실전예제 총정리 영상강의를 참고하세요.

VLOOKUP 여러개 값 불러오기 기본 공식 (조건이 1개인 경우)

=IFERROR(INDEX($출력범위, SMALL(IF(($찾을값=$찾을범위),MATCH(ROW($찾을범위), ROW($찾을범위)), ""), ROWS($A$1:A1)), COLUMNS($A$1:A1)),"")

VLOOKUP 함수 여러개 값 출력 인수 설명

VLOOKUP 여러개 값 불러오기 응용 공식 #1 (각 조건으로 여러 범위를 비교하는 경우)

=IFERROR(INDEX($출력범위, SMALL(IF(($찾을값1=$찾을범위1)*($찾을값2=$찾을범위2),MATCH(ROW($찾을범위), ROW($찾을범위)), ""), ROWS($A$1:A1)), COLUMNS($A$1:A1)),"")

엑셀 vlookup 여러개 다중 조건

VLOOKUP 여러개 값 불러오기 응용 공식 #2 (한 범위에서 여러 조건을 찾는 경우)

=IFERROR(INDEX($출력범위,SMALL(IF(ISNUMBER(MATCH($조건범위,$조건,0)),MATCH(ROW($출력범위), ROW($출력범위)), ""), ROWS($A$1:A1)), COLUMNS($A$1:A1)),"")

엑셀 VLOOKUP 여러 조건 여러 값 출력 공식 설명

VLOOKUP 여러개 값 불러오기 응용 공식 #3 (여러 범위에서 여러 조건을 찾는 경우)

=IFERROR(INDEX($출력범위,SMALL(IF(ISNUMBER(MATCH($조건범위1,$조건1,0)*MATCH($조건범위2,$조건2,0)),MATCH(ROW($출력범위), ROW($출력범위)), ""), ROWS($A$1:A1)), COLUMNS($A$1:A1)),"")

엑셀 VLOOKUP 다중조건 다중범위 여러개 결과

VLOOKUP 함수는 SUMIF 함수와 함께 실무에서 가장 자주 사용되는 엑셀 10대 필수 함수 중 하나입니다. 그러나 다양한 실무 상황에 적용하다 보면 몇 가지 제한사항이 있어, 다른 함수나 공식으로 대체해야 하는 경우가 발생합니다.

  1. VLOOKUP 함수의 참조범위는 첫번째 열에 있어야 합니다.
    : 즉, 참조범위의 오른쪽 방향으로만 조회할 수 있습니다. 참조범위의 왼쪽 방향으로 조회하려면 INDEX/MATCH 공식 또는 XLOOKUP 함수를 사용합니다.

  2. VLOOKUP 함수는 위에서 첫번째로 일치하는 결과만 반환합니다.
    : 마지막 결과를 출력하거나 n번째 결과를 출력하려면 아래 공식을 사용합니다.

  3. VLOOKUP 함수는 하나의 결과만 출력할 수 있습니다.
    : 여러 개의 결과를 동시에 반환하려면 FILTER 함수 또는 본 강의에서 소개해드린 공식을 사용합니다.

VLOOKUP 여러개 값 불러오기 공식의 첫 번째 단계는 MATCH+ROW 공식에서 출발합니다. MATCH+ROW 공식을 사용하면 1부터 증가하는 연속된 순번을 배열로 반환할 수 있습니다.

  1. MATCH+ROW 공식으로 순번 만들기 : 예제파일의 L8:L23 범위를 선택한 뒤 아래 수식을 입력합니다. CTRL + SHIFT + ENTER 로 수식을 마치면 1부터 증가하는 연속된 순번이 반환됩니다.
    =MATCH(ROW($B$6:$B$21),ROW($B$6:$B$21))

    엑셀 VLOOKUP 여러 결과 순번

    오빠두Tip : L8:L23 보다 넓은 범위를 선택하면, 기존 범위의 개수인 16개를 넘어가는 셀에는 #N/A 오류가 반환됩니다. 이는 정상적인 결과이므로 다음 단계로 넘어가도 무방합니다.
  2. 365 버전 사용자는 L8 셀에 수식을 입력한 뒤 ENTER 키만 눌러도 범위 위로 배열이 자동으로 반환됩니다. (파란색 테두리 확인)

    엑셀 365 VLOOKUP 여러 결과 공식1

이제 IF 함수를 추가하여, 특정 조건을 만족하는 경우에만 MATCH+ROW 함수로 계산된 순번이 반환되도록 공식을 작성합니다.

  1. IF 함수로 조건을 만족할 경우 순번 반환 : 예제파일의 N8:N23 범위를 선택한 뒤 아래 수식을 입력합니다. CTRL + SHIFT + ENTER 로 수식을 마치면 조건을 만족하는 경우의 순번만 범위로 반환됩니다.
    =IF(($F$8=$B$6:$B$21),MATCH(ROW($B$6:$B$21),ROW($B$6:$B$21)),"")

    엑셀 VLOOKUP 여러 결과 조건 만족

  2. 365 버전 사용자는 N8 셀에 수식을 입력한 뒤 ENTER 키만 눌러도 범위 위로 배열이 자동으로 반환됩니다. (파란색 테두리 확인)

    엑셀 365 여러결과 조건

ROWS 함수와 확장범위를 함께 사용하면 아래로 자동채우기를 할 때마다 1씩 증가하는 연속된 순번을 만들 수 있습니다. ROWS+확장범위 공식은 다양한 자동화 배열수식에 활용되므로 엑셀 고급단계로 진입하려는 실무자라면 반드시 숙지해두시길 권장드립니다.

  1. ROWS+확장범위로 순번 만들기 : 예제파일의 P8 셀을 선택한 뒤 아래 수식을 입력합니다. 이후 수식을 아래로 자동채우기 하면 1부터 증가하는 연속된 순번이 출력됩니다.
    =ROWS($A$1:A1)

    엑셀 순번 자동채우기 함수

    오빠두Tip : 공식에 사용된 $A$1:A1 은 $B$10:B10 으로 입력해도 무방합니다. 또한 A1 셀을 선택한 뒤 콜론(:)을 입력하면 셀 주소를 범위로 손쉽게 변경할 수 있습니다.
  2. 엑셀의 참조 방식과 절대참조·혼합참조에 대한 자세한 설명은 아래 기초입문강의를 참고하세요.

이번에는 SMALL 함수를 활용하여, 앞서 IF 함수로 반환한 순번 범위의 값을 작은 값부터 차례대로 출력합니다.

  1. SMALL 함수로 1~nth 값 출력 : 예제파일의 R8 셀을 선택한 뒤 아래 수식을 CTRL + SHIFT + ENTER 키로 입력합니다. 이후 수식을 아래로 자동채우기 하면 IF 함수로 반환된 순번의 가장 작은 값부터 차례대로 하나씩 출력됩니다.
    =SMALL(IF(($F$8=$B$6:$B$21),MATCH(ROW($B$6:$B$21),ROW($B$6:$B$21)),""),ROWS($A$1:A1))

    엑셀 VLOOKUP SMALL 함수 순서대로 출력

    오빠두Tip : 365 버전 사용자는 수식을 ENTER 로만 입력해도 동일한 결과가 반환됩니다.

마지막으로 INDEX 함수를 사용하여 VLOOKUP 여러개 값 출력 공식을 완성합니다.

  1. VLOOKUP 여러개 값 출력 공식 완성 : 예제파일의 T8 셀에 아래 수식을 CTRL + SHIFT + ENTER 로 입력합니다. 365 사용자는 ENTER 로 입력해도 무방합니다.
    =INDEX($C$6:$C$21,SMALL(IF(($F$8=$B$6:$B$21),MATCH(ROW($B$6:$B$21),ROW($B$6:$B$21)),""),ROWS($A$1:A1)))

    엑셀 VLOOKUP 여러개 출력 공식 완성

    오빠두Tip :포스트 첫번째 영역에서 소개해드린 공식을 사용하면 아래 방향뿐 아니라 오른쪽 방향으로도 여러 개의 값을 동시에 불러올 수 있습니다.
  2. IFERROR 함수로 오류 처리하기 : IFERROR 함수로 #NUM! 오류 대신 빈칸이 반환되도록 처리하면 VLOOKUP 여러개 값 출력 공식이 마무리됩니다.
    =IFERROR(INDEX($C$6:$C$21,SMALL(IF(($F$8=$B$6:$B$21),MATCH(ROW($B$6:$B$21),ROW($B$6:$B$21)),""),ROWS($A$1:A1))),"")

    VLOOKUP 여러 결과 출력 공식 최종

댓글 54
4.9 (35개 평가)
한동진 바다
한동진 바다 2021.06.09 21:52
실무에 많은 도움을 받습니다. 감사합니다.
해다시
해다시 2021.06.13 03:37
늘 고맙게 보고 있습니다.
source data table 및 결과table을 동적으로 만들려면 어떻게 해야 할까요?
오빠두엑셀
오빠두엑셀 작성자 2021.06.14 18:44
안녕하세요.
범위를 표로 만드시거나, 동적범위를 활용해보세요.
[표]
https://www.oppadu.com/%ec%97%91%ec%85%80-%ed%91%9c-%ea%b8%b0%eb%8a%a5-%eb%aa%a8%eb%93%a0%ea%b2%83/
[동적범위]
https://www.oppadu.com/%ec%97%91%ec%85%80-%ed%95%a8%ec%88%98-%eb%ac%b4%eb%a3%8c-%ea%b0%95%ec%9d%98-%eb%8f%99%ec%a0%81%eb%b2%94%ec%9c%84-%ec%9c%a0%eb%8f%99%eb%b2%94%ec%9c%84-%ec%9e%90%eb%8f%99-%eb%aa%a9%eb%a1%9d/
해다시
해다시 2021.06.17 07:51
감사합니다. 열공 후 질문 있으면 또 드릴께요.
감사합니다.
won****
won**** 2021.06.13 07:34
항상 감사합니다. 문의드릴게 있는데요.
조건이 여러개일때 두번째 공식(isnumber 포함된공식)으로 하라고 잘 설명해주셨는데요.
조건이 2개 이상일때 예를들어 ‘서울시’ + ‘이름’ 하고 싶을때는 공식을 어떻게 해야하는지 궁금합니다.
match함수로 조건범위와 조건을 추가해도 안되네요….ㅠㅠ
오빠두엑셀
오빠두엑셀 작성자 2021.06.14 18:45
안녕하세요.
두번째 공식은 이미 조건범위가 첫번째 인수로 들어가서.. MATCH 함수를 두번 사용해주셔야 합니다. 아래 공식으로 사용해보세요.
=IFERROR(INDEX($출력범위,SMALL(IF(ISNUMBER(MATCH($조건범위1,$조건1,0)*MATCH($조건범위2,$조건2,0)),MATCH(ROW($출력범위), ROW($출력범위)), ""), ROWS($A$1:A1)), COLUMNS($A$1:A1)),"")
그리고
그리고 2021.06.16 06:21
공부해야겠어요
여여
여여 2021.06.17 23:08
덕분에 또 한가지 업데이트 됩니다.
감사합니다.
김민구
김민구 2021.06.20 04:53
=IFERROR(INDEX($H$2:$H$1048576,SMALL(IF(($AD$2=$AB$2:$AB$1048576),MATCH(ROW($AB$2:$AB$1048576),ROW($AB$2:$AB$1048576)),""),ROWS($A$1:A2))),"")

잘못된 수식이 있을까요? 계속 빈칸만 나와서요 ㅠㅠ 배열수식으로 붙여넣습니다.
오빠두엑셀
오빠두엑셀 작성자 2021.06.22 02:06
안녕하세요.
공식만 봐서는 정확한 문제를 확인하기 어렵습니다.
공식을 사용한 예제파일과 함께 커뮤니티 게시판에 글을 올려주시겠어요?
https://www.oppadu.com/question
감사합니다.
yamp****
yamp**** 2021.06.21 22:29
좋은 강의 감사합니다
김민구
김민구 2021.07.05 15:55
안녕하세요 설명 너무 감사합니다. 도움이 많이 됩니다.
하다가 보니깐 small함수에서 오류가 나와서요 한번 봐주실 수 있을까해서요

순차적으로 함수를 작성하고 있는데
=SMALL(IF((습!$M$11=Sheet3!B$11:B$371),MATCH(ROW(Sheet3!B$11:B$371),ROW(Sheet3!B$11:B$371)), ""),ROWS($A$1:A1))
이런식으로 작성을 했는데 if의 값은 {1,2,3,4,5...} 이런식으로 잘 나오고 small함수 k의 값도 1로 잘 나오는데 small의 값이 산출되지 않는 것 같습니다.
어떤 문제가 있을 수 있을까요??
감사합니다.
솔하아빠
솔하아빠 2021.07.21 14:03
안녕하세요. 많은 도움을 받고 있습니다. 항상 감사합니다. 저는 MATCH + ROW를 사용하면 왜 값이 1만나올까요?ㅠ
=MATCH(ROW($M$5:$M$30),ROW($M$5:$M$30))
오빠두엑셀
오빠두엑셀 작성자 2021.07.21 20:07
안녕하세요.
범위를 세로로 길게 선택한 상태에서,
수식 입력 후 Ctrl + Shift + Enter로 입력해보시겠어요?
감사합니다.
eyj****
eyj**** 2023.06.20 14:55
어떤 이유로 범위선택유무에 따라 결과값이 달라지는 건가요?
저도 =ROW($B$6:$B$21) 이렇게 하고 Ctrl+Shift+Enter 누르고, 자동 채우기하면 6만 나오더라고요 ㅜ
언제나77
언제나77 2021.08.17 12:49
안녕하세요
항상 많이 배우게되네요
조건값을 불러왔는데 같은 결과값이 두번 보여지네요