본문으로 건너뛰기
ArumSoft Learning
EN

    가장 많이 쓰는 엑셀 함수 20가지 · 20개 중 13번째 튜토리얼

    엑셀 VLOOKUP 함수 사용법

    VLOOKUP으로 표에서 값을 찾아 같은 행의 다른 값을 가져오고, #N/A와 #REF! 오류가 나는 이유와 해결 방법을 알아봐요.

    난이도
    중급
    Time
    15분 분량
    수정:
    적용 대상:
    Microsoft 365용 Excel, Excel 2021, Excel 2019, 웹용 Excel
    직원 여섯 명이에요. G3은 사번 1005의 이름과 부서를 잇고, G4는 내선 번호를 찾아요.
    예시: 직원 여섯 명이에요. G3은 사번 1005의 이름과 부서를 잇고, G4는 내선 번호를 찾아요.

    배울 내용

    • 표에서 정확히 일치하는 값을 찾는 VLOOKUP 수식 쓰기
    • 마지막 인수를 보통 FALSE로 써야 하는 이유 설명하기
    • VLOOKUP 수식을 복사하기 전에 $로 표 범위 고정하기
    • VLOOKUP의 #N/A, #REF! 오류 원인 바로잡기

    함수 연습장

    VLOOKUP 함수를 실제 시트에서 연습해 보세요

    엑셀처럼 생긴 시트에 수식을 입력하면 계산 과정을 단계별로 보여 줘요. 무료이고 가입도 필요 없어요.

    VLOOKUP은 표의 첫 번째 열에서 값을 찾아 같은 행에 있는 다른 값을 돌려줘요. 제품 코드로 가격을, 사번으로 부서를, 국가로 세율을 찾을 때 써요. V는 세로(vertical)를 뜻해요. 열을 따라 아래로 찾기 때문이에요. 모든 버전의 엑셀에서 쓸 수 있어서, 다른 사람이 만든 통합 문서라면 거의 어디서나 만나게 되는 함수예요.

    함수 구조

    =VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
    • lookup_value는 찾을 값이에요. 제품 코드 같은 거죠. 셀(G2)을 쓰거나 수식에 값을 직접 입력할 수 있어요("P-102").
    • table_array는 표 전체예요. VLOOKUP은 이 범위의 첫 번째 열에서만 찾아요.
    • col_index_num은 돌려줄 열의 번호예요. 표의 첫 번째 열부터 세요. 첫 번째 열이 1, 두 번째 열이 2인 식이에요.
    • range_lookup은 정확히 일치하는 값을 찾으려면 FALSE, 비슷하게 일치하는 값을 찾으려면 TRUE예요. 넣지 않아도 되지만, 생략하면 엑셀은 TRUE로 처리해요. 원하는 결과가 아닐 때가 대부분이에요.
    VLOOKUP 수식 읽는 법
    =VLOOKUP(G2,A2:D7,3,FALSE)
    1. G2lookup_value: 찾을 코드
    2. A2:D7table_array: 표 전체. 첫 번째 열을 따라 내려가며 찾아요
    3. 3col_index_num: 표의 세 번째 열인 가격을 돌려줘요
    4. FALSErange_lookup: 정확히 일치하는 값만 찾아요

    코드로 가격 찾기

    아래 시트는 간단한 제품 목록이에요. G2에 있는 코드(P-104)의 가격을 G3에 표시해 볼게요.

    1. 결과를 표시할 셀을 클릭하세요

      "가격" 옆에 있는 G3을 클릭하세요.

      ABCDEFG
      1코드제품가격재고조회결과
      2P-101공책4.5120코드P-104
      3P-102볼펜1.2300가격
      4P-103형광펜1.885재고
      5P-104스테이플러1215제품
      6P-105가위6.540P-102의 가격
      7P-106테이프2.560
      A열에 코드가 있는 제품 목록이에요. 찾을 코드는 G2에 있고, 그 가격은 G3에 들어가요.
    2. =VLOOKUP( 와 찾을 값을 입력하세요

      =VLOOKUP(를 입력하고 G2를 클릭한 다음 쉼표를 입력하세요.

    3. 표를 선택하세요

      머리글을 뺀 제품 목록 전체인 A2:D7을 드래그하고 쉼표를 입력하세요. 코드가 있는 열이 선택한 범위의 첫 번째 열이어야 해요.

    4. 열 번호와 FALSE를 입력하세요

      가격은 표의 세 번째 열이니 3, 쉼표, FALSE를 입력하세요. 그다음 Enter를 누르세요.

      =VLOOKUP(G2,A2:D7,3,FALSE)
      ABCDEFG
      1코드제품가격재고조회결과
      2P-101공책4.5120코드P-104
      3P-102볼펜1.2300가격12
      4P-103형광펜1.885재고
      5P-104스테이플러1215제품
      6P-105가위6.540P-102의 가격
      7P-106테이프2.560
      VLOOKUP이 첫 번째 열에서 P-104를 찾고(노란색), 그 행의 세 번째 열에 있는 가격 12를 돌려줘요(초록색).

    G2를 P-102로 바꾸면 G3이 1.2로 바뀌어요. 열 번호를 4로 바꾸면 같은 수식이 재고를 돌려주고, 2로 바꾸면 제품 이름을 돌려줘요.

    열 번호는 A열이 아니라 표의 첫 번째 열부터 세요. 표가 B열에서 시작한다면 =VLOOKUP("스테이플러",B2:D7,2,FALSE)가 가격 12를 돌려줘요. B2:D7에서는 가격이 두 번째 열이니까요.

    FALSE가 중요한 이유

    FALSE를 쓰면 VLOOKUP은 입력한 값과 정확히 같은 값만 찾아요. 값이 없으면 #N/A가 나와서 뭔가 잘못됐다는 걸 알 수 있어요.

    TRUE를 쓰거나 마지막 인수를 생략하면 VLOOKUP은 유사 일치로 찾아요. 첫 번째 열이 오름차순으로 정렬되어 있다고 가정하고, 찾는 값보다 작거나 같은 값 가운데 가장 큰 값의 행을 돌려줘요. 정확히 일치하는 값을 못 찾았다는 사실은 알려 주지 않아요. 제품 목록에서 다음 수식은 존재하지 않는 코드인데도 테이프의 가격 2.5를 돌려줘요.

    =VLOOKUP("P-110",A2:D7,3)

    "P-110"은 마지막 코드인 "P-106"보다 뒤에 오기 때문에 유사 일치가 거기서 멈춘 거예요. 같은 수식에 FALSE를 넣으면 #N/A가 나와요. 정렬되지 않은 목록이라면 유사 일치는 찾는 코드와 전혀 상관없는 행을 돌려줄 수도 있어요.

    유사 일치가 딱 맞는 경우도 있어요. 숫자가 어느 구간에 속하는지 찾을 때예요. 예를 들어 H2:I4에 할인율 표가 있고, 할인이 시작되는 주문 금액이 오름차순으로 정렬되어 있다고 해 볼게요.

    주문 금액(이상)할인율
    00%
    1005%
    50010%

    =VLOOKUP(250,H2:I4,2,TRUE)는 5%를 돌려줘요. 목록에 250이 없으니 250을 넘지 않는 값 가운데 가장 큰 100을 고른 거예요.

    복사하기 전에 표 범위 고정하기

    H2:H5에 코드가 여러 개 있고, I2에 =VLOOKUP(H2,A2:D7,3,FALSE)를 썼다고 해 볼게요. 이 수식을 아래로 채우면 엑셀은 상대 참조를 모두 한 칸씩 옮겨요. I3의 수식은 =VLOOKUP(H3,A3:D8,3,FALSE)가 되죠. 2행이 표 범위에서 빠졌기 때문에 H3에 P-101이 있으면 결과는 #N/A예요.

    복사하기 전에 표 범위를 절대 참조로 바꾸세요. 수식 입력줄에서 A2:D7 안을 클릭하고 F4를 누르거나, 달러 기호를 직접 입력하세요.

    =VLOOKUP(H2,$A$2:$D$7,3,FALSE)

    이제 찾을 값은 행마다 한 칸씩 내려가고, 표 범위는 그대로 있어요.

    VLOOKUP은 왼쪽을 찾지 못해요

    VLOOKUP은 표의 첫 번째 열에서만 찾고, 그보다 오른쪽에 있는 열만 돌려줄 수 있어요. 제품 목록에서 "스테이플러"의 코드를 VLOOKUP으로 찾을 수 없는 이유예요. 코드가 제품 이름보다 왼쪽에 있으니까요.

    Microsoft 365나 Excel 2021 이후 버전을 쓴다면 XLOOKUP을 쓰세요. 찾을 열과 돌려줄 열을 따로 지정할 수 있어요. 다음 수식은 P-104를 돌려줘요.

    =XLOOKUP("스테이플러",B2:B7,A2:A7)

    이전 버전에서는 INDEX와 MATCH로 같은 일을 할 수 있어요. =INDEX(A2:A7,MATCH("스테이플러",B2:B7,0))도 P-104를 돌려줘요.

    VLOOKUPXLOOKUPINDEX와 MATCH
    쓸 수 있는 버전모든 버전Microsoft 365, Excel 2021 이후모든 버전
    왼쪽 열 돌려주기불가능가능가능
    기본 일치 방식유사 일치정확히 일치유사 일치(정확히 일치하려면 MATCH에 0)
    돌려줄 열 지정숫자범위범위
    표 안에 열을 삽입하면엉뚱한 열을 돌려줄 수 있어요그대로 동작해요그대로 동작해요
    값이 없을 때 표시할 값없음(IFNA로 감싸기)기본 제공(네 번째 인수)없음(IFNA로 감싸기)

    실제 활용 사례

    영업

    매출 구간별 수수료

    영업 담당자의 수수료율은 매출에 따라 달라요. 5,000 미만은 0%, 5,000부터 3%, 10,000부터 5%, 20,000부터 7%예요. 구간 표는 E2:F5에 오름차순으로 정렬되어 있어요. 유사 일치에 꼭 필요한 조건이죠.

    ABCDEF
    1담당자매출수수료매출 기준수수료율
    2지민4,200000%
    3현우12,5006255,0003%
    4수진20,0001,40010,0005%
    5태호8,70026120,0007%
    담당자 네 명과 수수료율 표예요. C열은 담당자별 매출에 해당 구간의 수수료율을 곱해요.

    C2에 아래 수식을 입력하고 C5까지 채우세요.

    =B2*VLOOKUP(B2,$E$2:$F$5,2,TRUE)

    3행 현우의 매출 12,500에 대해 VLOOKUP은 12,500을 넘지 않는 구간 시작값 가운데 가장 큰 10,000을 찾아 5%를 돌려줘요. 그래서 C3은 625예요(12,500 × 5%). 수진의 20,000은 구간 시작값과 정확히 같아서 7%를 받아 1,400이에요. 태호의 8,700은 3%라서 261, 지민의 4,200은 첫 번째 구간에 속해서 0이에요. 표 범위를 $로 고정했기 때문에 아래로 채워도 구간 표가 밀리지 않아요.

    학교

    하루 시간표의 교실 찾기

    시간표에 교시마다 과목 코드가 하나씩 있어요. E2:G6의 과목 목록에는 과목별 교실이 있어요. VLOOKUP 하나를 아래로 채우면 모든 교실이 채워져요.

    ABCDEFG
    1교시과목 코드교실코드과목교실
    21MATH-2118BIO-1생명과학204
    32ENG-1305CHEM-2화학112
    43BIO-1204ENG-1영어305
    54HIS-3210HIS-3역사210
    6MATH-2수학118
    왼쪽은 하루 시간표, 오른쪽은 과목 목록이에요. C열은 교시별 교실을 찾아요.
    =VLOOKUP(B2,$E$2:$G$6,3,FALSE)

    C2는 과목 목록의 세 번째 열에서 MATH-2의 교실 118을 돌려줘요. C5까지 채우면 305, 204, 210이 나와요. B2는 B3, B4, B5로 바뀌지만 $ 기호 덕분에 E2:G6은 그대로 있어요. 과목 목록이 시간표 순서와 같을 필요는 없고, CHEM-2처럼 시간표에 없는 과목이 있어도 괜찮아요. 정확히 일치로 찾으면 코드가 어디에 있든 찾아내요.

    인사

    사번으로 명찰 문구 만들기

    직원 목록의 A열에 사번이 있어요. G2에 사번을 입력하면 G3에 이름 (부서) 형태의 명찰 문구가 나오게 하려고 해요. 열 번호가 다른 VLOOKUP 두 개를 &로 이으면 돼요.

    ABCDEFG
    1사번이름부서내선조회결과
    21001김은지재무214사번1005
    31002오민재영업305명찰노지아 (인사)
    41003진하늘IT118내선 번호120
    51004백준서영업309
    61005노지아인사120
    71006위태준IT122
    직원 여섯 명이에요. G3은 사번 1005의 이름과 부서를 잇고, G4는 내선 번호를 찾아요.
    =VLOOKUP(G2,A2:D7,2,FALSE)&" ("&VLOOKUP(G2,A2:D7,3,FALSE)&")"

    G2에 1005가 있으면 결과는 노지아 (인사)예요. 첫 번째 VLOOKUP은 2열의 이름을, 두 번째는 3열의 부서를 돌려주고, 따옴표 안의 텍스트가 공백과 괄호를 붙여요. A열의 사번도 숫자이고 G2의 1005도 숫자라서 서로 일치해요. G4의 =VLOOKUP(G2,A2:D7,4,FALSE)는 내선 번호 120을 돌려줘요.

    가계부

    분류와 월을 함께 골라 찾기

    가계부에 월마다 열이 하나씩 있어요. 분류(G2)와 월(G3)을 모두 셀에서 고르려면, 열 번호를 직접 입력하는 대신 MATCH가 계산하게 하세요.

    ABCDEFG
    1분류1월2월3월조회결과
    2월세1,2001,2001,200분류식비
    3식비420380455월2월
    4교통비9011085금액380
    5공과금160175140
    분류별 석 달 치 지출이에요. G4는 식비 행과 2월 열이 만나는 값을 찾아요.
    =VLOOKUP(G2,A2:D5,MATCH(G3,A1:D1,0),FALSE)

    MATCH(G3,A1:D1,0)는 머리글 행에서 2월을 찾아 그 위치인 3을 돌려줘요. 그러면 VLOOKUP이 식비 행의 세 번째 열인 380을 돌려줘요. G3을 3월로 바꾸면 결과는 455예요. 머리글 범위 A1:D1이 표 A2:D5와 같은 열에서 시작하기 때문에 MATCH의 위치와 VLOOKUP의 열 번호가 맞아떨어져요. 표 안에 열을 삽입해도 두 범위가 함께 늘어나고 MATCH가 2월의 새 위치를 찾으니, 수식은 계속 올바른 월을 돌려줘요.

    VLOOKUP이 #N/A나 #REF!를 돌려주는 이유

    • #N/A: 첫 번째 열에 값이 없어요. 오타와 불필요한 공백을 확인하세요. 끝에 공백이 붙은 "P-104 "는 "P-104"와 일치하지 않아요. TRIM으로 공백을 없앨 수 있어요.
    • #N/A: 한쪽은 숫자, 한쪽은 텍스트예요. 숫자로 입력한 코드 101은 텍스트로 저장된 "101"(보통 왼쪽 정렬에 초록색 삼각형이 보여요)과 일치하지 않아요. 두 값의 형식을 맞추세요.
    • #N/A: 수식을 복사할 때 표 범위가 밀렸어요. 위에서 본 것처럼 $로 고정하세요.
    • #REF!: 열 번호가 너무 커요. A2:D7은 열이 네 개라서 =VLOOKUP(G2,A2:D7,5,FALSE)는 #REF!를 돌려줘요. 시트가 아니라 선택한 표의 열 수를 세세요.
    • 오류 없이 틀린 값이 나와요. 대부분 마지막 인수가 빠졌거나 TRUE인 경우예요. FALSE를 넣으세요.

    두 가지 더 조심하세요. VLOOKUP은 처음 일치하는 값만 돌려주기 때문에, 코드가 중복되면 아래쪽 행은 가려져요. 또 열 번호는 고정된 숫자라서, 표 안에 열을 삽입하면 수식이 엉뚱한 열을 돌려줄 수 있어요. 표 구조를 바꾼 뒤에는 조회 결과를 다시 확인하세요.

    연습

    연습

    제품 정보 찾기

    아래 시트를 사용하세요. 강조된 셀을 클릭하고, 시트 위의 입력줄에 수식을 입력한 다음 Enter를 누르세요. 그다음 엑셀에서 직접 해 보세요.

    1. 아는 사람 다섯 명의 목록을 만들고 번호(1~5), 사는 도시, 생일이 있는 달을 적어 보세요.
    2. 목록 옆 셀에 번호를 입력하고, FALSE를 넣은 VLOOKUP으로 그 사람의 도시를 표시해 보세요.
    3. 목록에 없는 번호를 입력해서 #N/A가 나오는지 보세요. 그다음 ,FALSE를 쉼표까지 지우고 수식이 무엇을 돌려주는지 확인해 보세요.

    직접 해 보기4개 중 0개 완료

    1. G3에 G2에 있는 코드의 가격을 찾아보세요.
    2. G4에 같은 코드의 재고를 찾아보세요.
    3. G5에 같은 코드의 제품 이름을 찾아보세요.
    4. G6에 코드를 수식에 직접 입력해서 P-102의 가격을 찾아보세요.

    점선으로 표시된 셀을 클릭하고, 입력줄에 수식을 쓴 다음 Enter를 누르세요.

    ABCDEFG
    1코드제품가격재고조회결과
    2P-101공책4.5120코드P-104
    3P-102볼펜1.2300가격
    4P-103형광펜1.885재고
    5P-104스테이플러1215제품
    6P-105가위6.540P-102의 가격
    7P-106테이프2.560

    관련 자료

    도움이 되었나요? 틀린 부분을 발견하셨나요? 피드백 보내기 · admin@arumsoft.com