오빠두엑셀 `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 로 입력해야 합니다.

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 함수의 제한 사항

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

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

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

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

MATCH+ROW 공식 살펴보기

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 함수로 실제 순번만 반환하기

이제 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 확장 범위 사용법

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

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

    엑셀 순번 자동채우기 함수

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

SMALL 함수로 순번 목록 출력하기

이번에는 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 로만 입력해도 동일한 결과가 반환됩니다.

VLOOKUP 여러개 값 공식 완성

마지막으로 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
안녕하세요
항상 많이 배우게되네요
조건값을 불러왔는데 같은 결과값이 두번 보여지네요