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

엑셀 VLOOKUP 2번째 값 구하기 공식 (n번째 값 찾기)

VLOOKUP 함수로 2번째 위치한 값을 구하는 공식의 사용법과 단계별 동작원리를 알아봅니다.

작성자 :
오빠두엑셀
최종 수정일 : 2021. 11. 11. 22:07
URL 복사
메모 남기기 : (12)

엑셀 VLOOKUP 두번째 값 구하기 공식

엑셀 VLOOKUP함수 두번째 값 구하기 목차 바로가기
함수 공식
{ =INDEX($출력범위,SMALL(IF($찾을값=$찾을범위,ROW($찾을범위)-ROW($시작셀)+1),N번째)) }

본 공식은 배열수식이므로 Microsoft 365 이전버전 사용자는 Ctrl + Shift + Enter 로 입력합니다.

인수 설명
엑셀 VLOOKUP 2번째 값 구하기 공식 인수_R
VLOOKUP 함수 2번째 값 구하기 공식에 사용되는 인수
인수 설명
출력범위 VLOOKUP 함수로 출력할 값이 입력된 범위입니다.
찾을값 VLOOKUP 함수로 찾을 값입니다.
찾을범위 찾을값이 입력된 범위입니다.
시작셀 찾을 범위(또는 출력범위)의 시작셀입니다.
N번째 몇번째 있는 값을 찾을 것인지 숫자로 입력합니다. (예: 1, 2, 3 ... )

예제파일 다운로드

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

  • [엑셀공식] 엑셀 VLOOKUP 함수 2번째 값 구하기
    예제파일

호환성
운영체제 호환성
Windows 버전 모든 엑셀 버전에서 사용 가능합니다.
Mac 버전 모든 엑셀 버전에서 사용 가능합니다.
사용된 기초 함수

엑셀 VLOOKUP함수 두번째 값 구하기 공식 알아보기

공식 설명

본 공식은 VLOOKUP 함수로 n 번째 있는 값을 검색하는 VLOOKUP 함수 두번째 값 구하기 공식입니다. 찾을값의 중복된 개수에 상관없이 2번째, 3번째.. 이상의 값도 검색가능합니다. 본 공식은 배열수식이므로 Microsoft 365 이전버전 사용자는 Ctrl + Shift + Enter로 수식을 입력해야 합니다.

VLOOKUP 함수로 여러개의 값을 반환하려면 VLOOKUP 여러개 값 출력하기 공식을 사용합니다.

공식의 동작원리
  1. 출력범위의 개수만큼 1부터 증가하는 순번을 반환합니다. (ROW 함수 사용)
    =ROW(D8:D12)-ROW(D8)+1
    ={8,9,10,11,12}-8+1
    ={1,2,3,4,5}
  2. 찾을범위의 값이 찾을값과 일치할 경우 순번을 반환합니다. (IF 함수 사용)
    =IF("사과"={"사과","배","사과","귤","사과"},ROW(D8:D12)-ROW(D8)+1)
    =IF("사과"={"사과","배","사과","귤","사과"},{1,2,3,4,5})
    ={1,FALSE,3,FALSE,5}
  3. 반환된 순번에서 n번째로 작은 값을 반환합니다. (SMALL 함수 사용)
    =SMALL(IF($찾을값=$찾을범위,ROW($찾을범위)-ROW($시작셀)+1),N번째)
    =SMALL({1,FALSE,3,FALSE,5},2)
    =3 '순번에서 2번째로 작은 값인 3을 반환합니다.
  4. 출력범위의 n값을 반환합니다. (INDEX 함수 사용)
    =INDEX($출력범위,SMALL(IF($찾을값=$찾을범위,ROW($찾을범위)-ROW($시작셀)+1),N번째))
    =INDEX({10,20,30,40,50},3)
    =30 '출력범위의3번째 값인 30을 반환합니다.
댓글 12
5 (9개 평가)
wngmal@naver.com
wngmal@naver.com 2020.08.28 16:43
함수 마스터 가즈아!
yim****
yim**** 2020.10.17 07:55
감사합니다
오빠두최고
오빠두최고 2021.10.06 16:17
정말 정말 감사합니다!! 최고예요!!!
rhdrk
rhdrk 2021.11.12 14:36
항상 좋은 자료 너무너무 감사드립니다!
추가 질문이 있는데,
찾을범위의 이름이 <정현수 임규리 김예진>, <정현수 김예진> 이런 식으로 섞여 있어도 
찾을값으로 <정현수>를 넣으면 찾을범위 이름 내에서 정현수가 포함된 모든 결과값이 나오도록 하는 방법은 없을까요?

와일드카드 "*"를 써서, 아래 처럼 넣으면 에러가 뜨더라구요 ㅠ
{ =INDEX($출력범위,SMALL(IF("*"&$찾을값&"*"=$찾을범위,ROW($찾을범위)-ROW($시작셀)+1),N번째)) }
오빠두엑셀
오빠두엑셀 작성자 2021.11.16 20:27
안녕하세요?
ISNUMBER/SEARCH 함수를 활용해보세요 ^^
{ =INDEX($출력범위,SMALL(IF(ISNUMBER(SEARCH(찾을값,찾을범위)),ROW($찾을범위)-ROW($시작셀)+1),N번째)) }
https://www.oppadu.com/if-%ED%95%A8%EC%88%98-%ED%8A%B9%EC%A0%95-%EB%AC%B8%EC%9E%90-%ED%8F%AC%ED%95%A8/
크으
크으 2022.10.06 15:33
안녕하세요 늘 명쾌한 자료 감사합니다 !
혹시 한 시트내에서가 아니라 다른 엑셀에 있는 자료를 가져올때는 안되는걸까요~??
혹시 방법이 있을까요?
오빠두엑셀
오빠두엑셀 작성자 2022.10.06 17:36
안녕하세요.
다른 엑셀파일에서 불러오는 것도 가능합니다.^^
다만 다른 엑셀파일에서 불러올 경우에는 해당 엑셀파일이 반드시 실행된 상태여야 합니다.
어금니꽉깨물어
어금니꽉깨물어 2022.11.14 09:38
안녕하세요 항상, 잘 보고 감탄만 하고 있는 1인 입니다.
이게, 가지는 의미는 알겠는데, 구조를 이해하기 어려워 문의드립니다.

=ROW(D8:D12)-ROW(D8)+1
={8,9,10,11,12}-8+1
={1,2,3,4,5}

-> D8~D12 구간에서 ROW 함수를 쓰면 8이 반환이 될텐데, 거기에 D8+1 ROW함수를 해서 더한 값을 빼면
결국 8-8+1의 행의 값을 가져오게 될텐데,
저걸 단순하게 생각해보니, 그냥, 그냥 범위 내에서 값을 반환하면 되는 것 아닐까? 왜 전체 범위 - (전체 범위)+1을 하지? 라는 의문이 드는데,
아무래도 제가, 이해력이 부족한가 봅니다.
설명 좀 부탁드립니다 ㅠㅠ
오빠두엑셀
오빠두엑셀 작성자 2022.11.16 16:44
안녕하세요.
+1 을 해주지 않을 경우, 첫번째 값이 1-1 = 0 이 반환되어 오류가 발생하기 때문에, 1-1+1 = 1 로 첫째 행을 받아오도록 1을 더해줍니다.
답변이 도움이 되셨길 바랍니다. 감사합니다!
young_****
young_**** 2023.02.22 09:12
이거 저거 찾아보고 끙끙 대다가 이제야 이해했네요 ㅜ ㅜ 순위 중복을 그대로 나타내면서 찾을수있는 함수를 ㅜㅜ 'N번째'가 포인트 였네요 ㅜㅜ 감사합니다
융유유
융유유 2023.09.14 16:52
감사합니다
강민준🤗
강민준🤗 2024.08.11 16:50
좋은 강의 감사합니다🙇‍♂️