본문 바로가기

엑셀

엑셀 HLOOKUP 함수 사용법 – 가로 방향 조회와 실전 예시

반응형

데이터를 가로로 배치한 표에서 특정 값을 찾아야 할 때 HLOOKUP 함수를 사용합니다. VLOOKUP에 비해 사용 빈도는 낮지만, 월별 집계 표나 횡단면 비교 데이터처럼 헤더가 열 방향으로 펼쳐진 구조에서는 HLOOKUP이 직관적인 해결책입니다. 이 글에서는 HLOOKUP 함수의 구문과 인수, 실전 예시, 그리고 자주 발생하는 오류와 주의사항을 다룹니다.

HLOOKUP 함수란

함수 이름의 의미와 작동 원리

HLOOKUP은 Horizontal Lookup의 약자입니다. 범위의 첫 번째 행을 가로(수평) 방향으로 스캔하며 찾는 값을 검색합니다. 일치하는 열을 찾으면, 그 열에서 지정한 행 번호에 해당하는 값을 반환합니다.

예를 들어 아래와 같이 월별 매출 데이터가 가로로 배치되어 있을 때 HLOOKUP이 유용합니다.

1월 2월 3월 4월
매출(만원) 320 415 380 520
비용(만원) 180 200 175 240

이 표에서 "3월 매출"을 찾으려면 첫 번째 행(1월, 2월, 3월, 4월)에서 "3월"을 찾은 뒤, 같은 열의 두 번째 행(매출) 값을 반환하면 됩니다.

VLOOKUP과의 차이 – 언제 HLOOKUP을 써야 하는가

VLOOKUP과 HLOOKUP의 차이는 검색 방향에 있습니다.

구분 HLOOKUP VLOOKUP
검색 방향 첫 번째 행(가로) 첫 번째 열(세로)
반환 기준 행 번호(row_index_num) 열 번호(col_index_num)
적합한 데이터 구조 헤더가 가로로 배치된 표 헤더가 세로로 배치된 표

실무에서는 대부분의 데이터가 세로 방향으로 쌓이기 때문에 VLOOKUP 사용 빈도가 훨씬 높습니다. 데이터 구조가 세로라면 VLOOKUP을, 가로라면 HLOOKUP을 선택하면 됩니다.

기본 구문과 인수 설명

구문 형식

=HLOOKUP(lookup_value, table_array, row_index_num, [range_lookup])

인수별 역할 정리

인수 필수 여부 설명
lookup_value 필수 첫 번째 행에서 찾을 값. 직접 입력하거나 셀 참조 모두 가능
table_array 필수 검색 대상 범위. 첫 번째 행에 헤더가 있어야 함
row_index_num 필수 반환할 값이 있는 행 번호. 1이면 첫 번째 행, 2이면 두 번째 행
range_lookup 선택 FALSE(또는 0): 정확히 일치 / TRUE(또는 1, 생략): 근사값 허용

range_lookup 기본값에 주의합니다. 이 인수를 생략하면 TRUE로 처리되어 근사값을 반환합니다. 정확히 일치하는 값이 필요할 때는 반드시 FALSE 또는 0을 입력해야 합니다.

range_lookup=TRUE를 사용할 때는 table_array의 첫 번째 행이 오름차순으로 정렬되어 있어야 합니다. 정렬이 되어 있지 않으면 잘못된 값을 반환할 수 있습니다.

기본 사용 예시

예시 1 – 월별 매출 표에서 특정 월 매출 조회

아래 표가 B1:F3 범위에 있다고 가정합니다.

1월 2월 3월 4월 5월
매출(만원) 320 415 380 520 460
비용(만원) 180 200 175 240 210

3월 매출을 조회하려면 다음과 같이 입력합니다.

=HLOOKUP("3월", B1:F3, 2, FALSE)

결과: 380

3월 비용을 조회할 때는 행 번호만 3으로 바꾸면 됩니다.

=HLOOKUP("3월", B1:F3, 3, FALSE)

결과: 175

예시 2 – range_lookup=TRUE를 이용한 구간별 등급 분류

range_lookup=TRUE는 점수 구간별 등급처럼 "최솟값 기준 근사값 조회"가 필요한 경우에 활용합니다. 아래 기준표가 B1:E2 범위에 있다고 가정합니다. 첫 번째 행은 반드시 오름차순으로 정렬되어야 합니다.

0 60 80 90
D C B A

점수가 75점일 때 등급을 구하려면:

=HLOOKUP(75, B1:E2, 2, TRUE)

결과: C

75점은 기준표에서 60(C 등급 시작)과 80(B 등급 시작) 사이에 있으므로, 그보다 크지 않은 가장 큰 값인 60에 해당하는 "C"를 반환합니다.

오류 종류와 해결 방법

#N/A 오류 – 원인과 IFERROR 처리

#N/A 오류는 "찾는 값을 범위에서 발견하지 못했다"는 뜻입니다. 주요 원인은 lookup_value가 첫 번째 행에 없는 경우, range_lookup=FALSE인데 정확히 일치하는 값이 없는 경우, 범위를 잘못 지정하여 헤더 행이 포함되지 않은 경우, lookup_value와 범위 값의 데이터 형식이 다른 경우입니다.

오류 발생 시 안내 문구를 표시하려면 IFERROR와 조합합니다.

=IFERROR(HLOOKUP("3월", B1:F3, 2, FALSE), "해당 없음")

#VALUE!, #REF! 오류

오류 원인 조치
#VALUE! row_index_num이 1보다 작은 값으로 입력된 경우 row_index_num을 1 이상의 정수로 수정
#REF! row_index_num이 table_array의 실제 행 수보다 큰 경우 범위 또는 행 번호 확인 후 수정

자주 하는 실수와 주의사항

range_lookup 생략 실수. 인수를 생략하면 TRUE(근사값)로 처리됩니다. 코드나 이름처럼 정확히 일치해야 하는 값을 찾을 때 이 인수를 빠뜨리면 엉뚱한 값을 반환할 수 있습니다. FALSE를 명시적으로 입력하는 습관을 들이는 것이 좋습니다.

범위에 헤더 행이 빠진 경우. HLOOKUP은 table_array의 첫 번째 행에서 lookup_value를 검색합니다. 범위를 지정할 때 헤더 행이 포함되지 않으면 #N/A 오류가 발생합니다.

대소문자 구분 없음. HLOOKUP은 대소문자를 구분하지 않습니다. 대소문자를 구분한 검색이 필요하면 EXACT 함수와 배열 수식을 조합해야 합니다.

첫 번째 행보다 앞에 있는 값은 반환 불가. row_index_num은 1(첫 번째 행)부터 시작하며, 첫 번째 행보다 위의 데이터는 반환할 수 없습니다. 이 제약이 문제가 된다면 INDEX+MATCH 조합을 사용합니다.

range_lookup=TRUE일 때 정렬 필수. 근사값 검색을 사용할 때 첫 번째 행이 오름차순으로 정렬되어 있지 않으면 잘못된 결과가 반환됩니다.

마치며

HLOOKUP 함수는 가로로 배치된 표에서 값을 조회하는 상황에 적합합니다. range_lookup 인수를 FALSE로 명시하는 것, 범위에 헤더 행을 포함하는 것, IFERROR로 오류를 처리하는 것이 실무에서 안정적으로 사용하기 위한 기본 원칙입니다. 데이터 구조가 세로라면 VLOOKUP, 가로라면 HLOOKUP을 선택하면 되고, Excel 2021 이상이나 Microsoft 365 환경이라면 방향과 무관하게 사용 가능한 XLOOKUP도 검토할 수 있습니다.

반응형