공든탑앱 열기

찾기·참조 함수

컴퓨터활용능력 2급 · 수식과 함수 · 약 18분

쉽게 말하면

VLOOKUP은 표의 맨 왼쪽 열에서 값을 찾아, 같은 줄의 몇 번째 칸 값을 가져와요. 상품 코드 P03을 찾아 그 줄의 3번째 칸(단가)을 가져오는 식이에요. 마지막 인수를 FALSE로 주면 똑같은 값만 찾고, TRUE로 주면 '그 값을 넘지 않는 가장 가까운 값'을 찾아서 점수 구간으로 등급을 매길 때 써요. 가로로 된 표에서 찾을 땐 HLOOKUP, 위치를 찾는 건 MATCH, 위치로 값을 꺼내는 건 INDEX예요.

시험용 정의

VLOOKUP(찾을 값, 표 범위, 열 번호, [찾기 방법])은 표의 첫 열에서 찾을 값을 찾아 같은 행의 열 번호째 값을 돌려준다. 찾기 방법이 FALSE(0)면 정확히 일치(없으면 #N/A), TRUE(1)·생략이면 근사 일치로 찾을 값보다 작거나 같은 값 중 가장 큰 값을 찾으며 첫 열이 오름차순이어야 한다. HLOOKUP은 같은 일을 첫 행에서 찾아 행 번호째 값을 돌려준다. MATCH(찾을 값, 범위, [유형])는 값의 위치(몇 번째)를 돌려주며 유형 0은 정확히, 1·생략은 작거나 같은 최댓값(오름차순), -1은 크거나 같은 최솟값(내림차순)이다. INDEX(범위, 행 번호, [열 번호])는 범위에서 그 위치의 값을 돌려주며, INDEX와 MATCH를 함께 쓰면 첫 열이 아니어도 찾을 수 있다. CHOOSE(번호, 값1, 값2, …)는 번호째 값을 고른다. 열 번호가 표보다 크면 #REF!, 1보다 작으면 #VALUE!다.

비유로 이해하기

VLOOKUP은 전화번호부 찾기다. 이름(첫 열)을 위에서부터 훑어 찾은 뒤, 같은 줄의 세 번째 칸(전화번호)을 읽는다. TRUE는 '정확히 없으면 바로 앞 사람'을 고르는 방식이라 점수 구간표에 딱 맞다.

자세히

먼저 알아 둘 말

말뜻
표 범위찾을 곳 전체. 찾을 값이 있는 열이 맨 왼쪽(VLOOKUP)
열 번호표 범위 안에서 왼쪽부터 몇 번째 열인지 (시트의 열 문자 아님)
정확히 일치FALSE 또는 0. 똑같은 값만
근사 일치TRUE·1·생략. 찾을 값을 넘지 않는 가장 큰 값
#N/A찾는 값이 없을 때 나오는 오류

이 시트로 연습해요

왼쪽 A1:C5는 상품표, 오른쪽 E1:F6은 점수별 등급 기준표(오름차순)예요.

인수 정리

함수인수예
VLOOKUP(찾을 값, 표, 열 번호, 방법)=VLOOKUP("P03",A2:C5,3,FALSE) → 3000
HLOOKUP(찾을 값, 표, 행 번호, 방법)=HLOOKUP("단가",A1:C5,3,FALSE) → 2500
MATCH(찾을 값, 범위, 유형)=MATCH("형광펜",B2:B5,0) → 4
INDEX(범위, 행, 열)=INDEX(A1:C5,4,2) → 파일
CHOOSE(번호, 값1, 값2, …)=CHOOSE(2,"상","중","하") → 중

자주 나오는 결합

  • INDEX + MATCH: =INDEX(C2:C5,MATCH("공책",B2:B5,0)) → 상품 이름으로 단가 찾기 (찾는 열이 첫 열이 아니어도 됨)
  • IFERROR + VLOOKUP: =IFERROR(VLOOKUP(…),"없음") → #N/A 대신 "없음"
  • CHOOSE + WEEKDAY: =CHOOSE(WEEKDAY(A1),"일","월","화","수","목","금","토") → 요일 이름
  • VLOOKUP + LEFT: 코드의 앞 글자로 표에서 찾기
  • 표 범위는 수식을 복사할 때 바뀌지 않게 $A$2:$C$5처럼 절대 참조로 쓰는 경우가 많다

기출에서 더 나온 것

말뜻
RANK와 CHOOSERANK(값, 범위)로 순위를 구하고 CHOOSE(순위, "금", "은", "동")처럼 순위별 문구를 고른다

시험에 이렇게 나와요

확인 문제

Q1. 점수 기준표 E2:F6(0 F, 60 D, 70 C, 80 B, 90 A)에서 =VLOOKUP(85,E2:F6,2,TRUE)의 결과는?

  1. C
  2. #N/A
  3. B
  4. A
정답 보기

3번 B

TRUE(근사 일치)는 85를 넘지 않는 가장 큰 값인 80을 찾아 그 줄의 2번째 칸 B를 돌려준다. 이때 첫 열은 오름차순으로 정렬돼 있어야 한다.

Q2. =VLOOKUP("P02",A2:C5,2,FALSE)의 결과는? (상품표 기준)

  1. P02
  2. 공책
  3. 2500
  4. #N/A
정답 보기

2번 공책

P02 행의 2번째 열 = 공책.

Q3. =INDEX(A1:C5,3,3)의 결과는? (상품표 기준)

  1. P03
  2. 3000
  3. 공책
  4. 2500
정답 보기

4번 2500

범위 A1:C5의 3행 3열 = C3 = 2500.

Q4. VLOOKUP의 찾기 방법을 TRUE로 쓸 때 꼭 필요한 조건은?

  1. 표의 첫 행이 내림차순 정렬
  2. 찾을 값이 글자
  3. 열 번호가 1
  4. 표의 첫 열이 오름차순 정렬
정답 보기

4번 표의 첫 열이 오름차순 정렬

근사 일치는 오름차순을 전제로 찾는다.

Q5. 표가 가로 방향이라 첫 행에서 값을 찾아 아래 행의 값을 가져오는 함수는?

  1. CHOOSE
  2. VLOOKUP
  3. HLOOKUP
  4. INDEX
정답 보기

3번 HLOOKUP

V는 세로(첫 열에서 찾기), H는 가로(첫 행에서 찾기).

Q6. =CHOOSE(2, "금", "은", "동")의 결과는?

  1. 동
  2. 은
  3. 금
  4. 2
정답 보기

2번 은

번호에 해당하는 두 번째 값을 고른다.

헷갈리기 쉬운 O·X

VLOOKUP은 표 범위의 어느 열에서든 찾을 값을 찾는다.

정답 보기

X 틀리다. VLOOKUP은 표 범위의 첫 번째 열에서만 찾을 값을 찾고, 같은 행의 지정한 열 값을 가져온다.

MATCH 함수는 찾은 값이 아니라 그 값의 위치를 돌려준다.

정답 보기

O 맞다. MATCH는 찾는 값이 범위에서 몇 번째에 있는지 위치(숫자)를 돌려준다. 그래서 INDEX와 함께 많이 쓴다.

VLOOKUP에서 열 번호가 표 범위의 열 수보다 크면 #N/A가 나온다.

정답 보기

X 틀리다. 열 번호가 표 범위의 열 수보다 크면 없는 칸을 가리키므로 #REF!가 나온다. #N/A는 찾는 값이 첫 열에 없을 때다.

함께 보면 좋은 개념