=HLOOKUP("Mar",A1:E3,2,FALSE)는 A1:E3의 첫 행에서 Mar를 찾아 같은 열의 두 번째 행 값을 반환합니다. 라벨이 위쪽에 가로로 놓인 표를 위한, VLOOKUP을 옆으로 눕힌 함수입니다.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Month | Jan | Feb | Mar | Apr |
| 2 | Sales | 4,200 | 3,900 | 4,800 | 5,100 |
| 3 | Costs | 2,600 | 2,500 | 2,900 | 3,000 |
| 4 | |||||
| 5 | Month | Mar | |||
| 6 | Sales | 4,800 |
B6은 1행에서 Mar를 찾아 D열에서 발견하고, 그 열의 2행 값인 4,800을 반환합니다. B5에서 Apr를 고르면 5,100이 나오고, 수식의 2를 3으로 바꾸면 비용이 나옵니다.
HLOOKUP 구문
=HLOOKUP(lookup_value, table_array, row_index_num, [range_lookup])
lookup_value: 표의 첫 행에서 찾을 값입니다.table_array: 표입니다. HLOOKUP은 맨 위 행에서만 검색합니다.row_index_num: 반환할 행으로, 맨 위 행을 1로 셉니다. 표의 높이보다 큰 번호는 #REF!를, 0은 #VALUE!를 냅니다.range_lookup: 정확히 일치는FALSE, 정렬된 행에서 유사 일치는TRUE또는 생략입니다.
일치는 대소문자를 무시하며(mar도 Mar를 찾음), FALSE를 쓰면 찾는 값에 와일드카드 *와 ?를 쓸 수 있습니다. 첫 행에 없는 값은 #N/A를 반환합니다.
행 방향 유사 일치
TRUE를 쓰면 HLOOKUP은 찾는 값보다 작거나 같은 머리글 중 가장 큰 것을 찾습니다. 첫 행은 왼쪽에서 오른쪽으로 오름차순 정렬되어 있어야 합니다.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Weight from (kg) | 0 | 2 | 5 | 10 |
| 2 | Cost | $4.50 | $6.00 | $9.50 | $14.00 |
| 3 | |||||
| 4 | Parcel (kg) | 7 | |||
| 5 | Cost | $9.50 |
7kg은 머리글에 없습니다. 그보다 크지 않은 가장 큰 머리글은 5이므로 B5는 $9.50을 반환합니다. B4를 1.5로 바꾸면 $4.50, 12로 바꾸면 $14.00이 나옵니다. 수식의 표는 A1:E2가 아니라 B1:E2입니다. A1의 텍스트 라벨이 정렬된 행에 포함되지 않도록 첫 무게에서 시작합니다.
XLOOKUP으로 행 방향 조회
Excel 2021과 Microsoft 365에서는 XLOOKUP이 HLOOKUP을 대신합니다. 검색할 행과 반환할 행을 범위 두 개로 받으므로 세어야 할 행 번호가 없고, 여러 행 높이의 반환 범위를 주면 열 전체를 가져옵니다.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Month | Jan | Feb | Mar | Apr |
| 2 | Sales | 4,200 | 3,900 | 4,800 | 5,100 |
| 3 | Costs | 2,600 | 2,500 | 2,900 | 3,000 |
| 4 | Profit | 1,600 | 1,400 | 1,900 | 2,100 |
| 5 | |||||
| 6 | Month | Feb | |||
| 7 | Figures | 3,900 | |||
| 8 | 2,500 | ||||
| 9 | 1,400 |
B7의 수식 하나가 Feb의 세 수치 3,900, 2,500, 1,400을 B7:B9로 분산합니다. B8이나 B9에 무언가가 있으면 B7에 #SPILL!이 나옵니다. 찾지 못했을 때의 메시지나 마지막 일치 같은 다른 옵션은 XLOOKUP 페이지에서 다룹니다.
대신 표를 돌리기: TRANSPOSE
때로는 표를 세로로 복사하는 편이 더 나은 해결책입니다. =TRANSPOSE(A1:D3)는 행과 열을 바꾼 같은 셀들을 반환하며, 원래 표와 연결된 상태로 남습니다. 그러면 VLOOKUP, FILTER, 차트를 평소처럼 쓸 수 있습니다.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Month | Jan | Feb | Mar |
| 2 | Sales | 4,200 | 3,900 | 4,800 |
| 3 | Costs | 2,600 | 2,500 | 2,900 |
| 4 | ||||
| 5 | Month | Sales | Costs | |
| 6 | Jan | 4,200 | 2,600 | |
| 7 | Feb | 3,900 | 2,500 | |
| 8 | Mar | 4,800 | 2,900 |
A5는 4행 3열 블록을 분산합니다. 월이 세로로, Sales와 Costs가 가로로 놓입니다. C2에 있는 Feb의 매출을 4100으로 바꾸면 복사본이 따라 바뀝니다. 수식 없이 한 번만 복사하려면 표를 선택해 복사한 뒤 홈 > 붙여넣기 > 선택하여 붙여넣기를 열고 행/열 바꿈에 체크하세요.
연습: 한 달의 비용
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Month | Jan | Feb | Mar | Apr |
| 2 | Sales | 4,200 | 3,900 | 4,800 | 5,100 |
| 3 | Costs | 2,600 | 2,500 | 2,900 | 3,000 |
| 4 | |||||
| 5 | Month | Apr | |||
| 6 | Costs |
직접 해 보세요: B6에서 HLOOKUP으로 B5 달의 비용을 반환하세요.
자주 묻는 질문
VLOOKUP과 HLOOKUP은 무엇이 다른가요?
VLOOKUP은 표의 첫 열을 아래로 검색해 오른쪽 열의 값을 반환합니다. HLOOKUP은 첫 행을 가로로 검색해 아래쪽 행의 값을 반환합니다. 인수는 같고, 열 번호 대신 행 번호를 씁니다.
HLOOKUP의 행 번호는 무엇인가요?
반환할 행의 번호로, 표의 첫 행을 1로 셉니다. =HLOOKUP("Mar",A1:E3,3,FALSE)에서 3은 A1:E3의 세 번째 행을 뜻합니다. 표의 높이보다 큰 번호는 #REF!를 반환합니다.
XLOOKUP이 HLOOKUP을 대신할 수 있나요?
있습니다. XLOOKUP은 어느 방향으로든 동작합니다. =XLOOKUP("Mar",B1:E1,B2:E2)는 한 행을 검색해 다른 행에서 값을 반환합니다. Excel 2021이나 Microsoft 365가 필요합니다.
HLOOKUP이 #N/A를 반환하는 이유는 무엇인가요?
찾는 값이 표의 첫 행에 없기 때문입니다. 오타, 남는 공백, 텍스트로 저장된 숫자, 다른 행에 있는 값이 원인입니다. 마지막 인수가 TRUE이면 첫 머리글보다 작은 값도 #N/A를 반환합니다.