찾기·참조 함수
쉽게 말하면
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와 CHOOSE | RANK(값, 범위)로 순위를 구하고 CHOOSE(순위, "금", "은", "동")처럼 순위별 문구를 고른다 |
시험에 이렇게 나와요
- VLOOKUP(찾을 값, 범위, 열 번호, FALSE) → 정확히 일치, TRUE(근사)일 때만 첫 열이 오름차순이어야 함
- 가로로 된 표 → HLOOKUP, 점수 구간 찾기는 TRUE
- INDEX(범위, 행, 열) → 그 위치의 값
- CHOOSE(번호, 값1, 값2, …) → 번호에 해당하는 값 (RANK와 함께 순위별 문구)
확인 문제
Q1. 점수 기준표 E2:F6(0 F, 60 D, 70 C, 80 B, 90 A)에서 =VLOOKUP(85,E2:F6,2,TRUE)의 결과는?
- C
- #N/A
- B
- A
정답 보기
3번 B
TRUE(근사 일치)는 85를 넘지 않는 가장 큰 값인 80을 찾아 그 줄의 2번째 칸 B를 돌려준다. 이때 첫 열은 오름차순으로 정렬돼 있어야 한다.
Q2. =VLOOKUP("P02",A2:C5,2,FALSE)의 결과는? (상품표 기준)
- P02
- 공책
- 2500
- #N/A
정답 보기
2번 공책
P02 행의 2번째 열 = 공책.
Q3. =INDEX(A1:C5,3,3)의 결과는? (상품표 기준)
- P03
- 3000
- 공책
- 2500
정답 보기
4번 2500
범위 A1:C5의 3행 3열 = C3 = 2500.
Q4. VLOOKUP의 찾기 방법을 TRUE로 쓸 때 꼭 필요한 조건은?
- 표의 첫 행이 내림차순 정렬
- 찾을 값이 글자
- 열 번호가 1
- 표의 첫 열이 오름차순 정렬
정답 보기
4번 표의 첫 열이 오름차순 정렬
근사 일치는 오름차순을 전제로 찾는다.
Q5. 표가 가로 방향이라 첫 행에서 값을 찾아 아래 행의 값을 가져오는 함수는?
- CHOOSE
- VLOOKUP
- HLOOKUP
- INDEX
정답 보기
3번 HLOOKUP
V는 세로(첫 열에서 찾기), H는 가로(첫 행에서 찾기).
Q6. =CHOOSE(2, "금", "은", "동")의 결과는?
- 동
- 은
- 금
- 2
정답 보기
2번 은
번호에 해당하는 두 번째 값을 고른다.
헷갈리기 쉬운 O·X
VLOOKUP은 표 범위의 어느 열에서든 찾을 값을 찾는다.
정답 보기
X 틀리다. VLOOKUP은 표 범위의 첫 번째 열에서만 찾을 값을 찾고, 같은 행의 지정한 열 값을 가져온다.
MATCH 함수는 찾은 값이 아니라 그 값의 위치를 돌려준다.
정답 보기
O 맞다. MATCH는 찾는 값이 범위에서 몇 번째에 있는지 위치(숫자)를 돌려준다. 그래서 INDEX와 함께 많이 쓴다.
VLOOKUP에서 열 번호가 표 범위의 열 수보다 크면 #N/A가 나온다.
정답 보기
X 틀리다. 열 번호가 표 범위의 열 수보다 크면 없는 칸을 가리키므로 #REF!가 나온다. #N/A는 찾는 값이 첫 열에 없을 때다.