엑셀함수/HLOOKUP/데이터가 가로(행)로 정렬되어 있을 때
1. HLOOKUP 함수란?
HLOOKUP은 표의 첫 번째 행에서 특정 값을 찾아, 해당 열의 다른 행에서 값을 반환하는 함수입니다.
VLOOKUP이 세로(열) 방향 검색이라면, HLOOKUP은 가로(행) 방향 검색을 수행합니다.
✅ HLOOKUP을 사용해야 하는 경우
🔹 데이터가 행(Row) 방향으로 정리되어 있는 경우
🔹 특정 제목(헤더) 값을 기준으로 데이터를 찾고 싶을 때
🔹 VLOOKUP이 아닌 가로 방향 검색이 필요한 경우
2. HLOOKUP 함수 문법
=HLOOKUP(lookup_value, table_array, row_index_num, [range_lookup])
인수설명
lookup_value | 찾고자 하는 값 (검색할 키 값) |
table_array | 검색할 범위 (데이터가 있는 표) |
row_index_num | 검색 값이 있는 열에서 가져올 행 번호 (1부터 시작) |
[range_lookup] (선택) | TRUE(1) = 근사값 검색, FALSE(0) = 정확한 값 검색 (기본값은 TRUE) |
3. HLOOKUP 함수 예제
예제 1: 과목별 점수 검색
다음과 같은 학생 성적표가 있다고 가정합니다.
과목수학영어과학국어
철수 | 80 | 90 | 85 | 70 |
영희 | 75 | 95 | 80 | 85 |
민수 | 90 | 85 | 95 | 88 |
이제 "영어" 과목에서 철수의 점수를 찾는 HLOOKUP 함수를 작성해 보겠습니다.
=HLOOKUP("영어", A1:E4, 2, FALSE)
동작 방식
- "영어"라는 값을 A1:E1(첫 번째 행)에서 찾음
- 찾은 열에서 **두 번째 행(철수의 점수)**의 값을 반환
- 결과: 90
예제 2: 셀에 입력된 과목으로 학생 점수 찾기
과목을 G1 셀에 입력하면 철수의 점수가 자동으로 표시되도록 설정하려면?
=HLOOKUP(G1, A1:E4, 2, FALSE)
✅ G1에 "수학"을 입력하면 결과는 80
✅ G1에 "국어"를 입력하면 결과는 70
예제 3: 특정 학생의 점수 찾기
이번에는 "과목"과 "학생 이름"을 입력하면 자동으로 점수를 찾도록 설정해 보겠습니다.
- 과목 입력: G1
- 학생 이름 입력: G2
=HLOOKUP(G1, A1:E4, MATCH(G2, A1:A4, 0), FALSE)
✅ G1에 "과학", G2에 **"민수"**를 입력하면 결과는 95
✅ G1에 "국어", G2에 **"영희"**를 입력하면 결과는 85
4. HLOOKUP 함수 사용 시 주의할 점
1) 검색 값이 첫 번째 행에 있어야 함
- HLOOKUP은 항상 첫 번째 행에서 검색을 수행합니다.
- 검색 값이 첫 번째 행에 없으면 #N/A 오류가 발생합니다.
2) row_index_num(행 번호)는 1부터 시작
- row_index_num=2는 두 번째 행, row_index_num=3은 세 번째 행을 의미합니다.
- 지정한 행 번호가 table_array 범위를 초과하면 #REF! 오류가 발생합니다.
3) 정확한 값 검색 시 FALSE 사용
- range_lookup=TRUE(또는 생략)하면 근사값 검색이 수행됩니다.
- 정확한 일치를 찾으려면 FALSE를 사용해야 합니다.
4) 데이터가 정렬되지 않으면 FALSE 필수
- range_lookup=TRUE인 경우 첫 번째 행은 반드시 오름차순 정렬되어 있어야 합니다.
- 정렬이 안 된 경우 FALSE를 사용하여 정확한 일치를 찾도록 설정해야 합니다.
5) #N/A 오류 발생 원인
HLOOKUP을 사용하다 보면 #N/A 오류가 발생할 수 있습니다.
주요 원인은 다음과 같습니다.
- 검색 값이 표에 없음 → lookup_value가 존재하는지 확인
- 검색 범위(table_array)에 검색 값이 없음 → 범위 확인
- 첫 번째 행에 검색 값이 없음 → table_array의 첫 번째 행 확인
- row_index_num이 범위를 벗어남 → row_index_num이 table_array의 행 개수보다 크지 않은지 확인
💡 IFERROR 함수를 활용해 오류를 방지할 수 있음:
=IFERROR(HLOOKUP(G1, A1:E4, 2, FALSE), "찾을 수 없음")
✅ 검색 값이 없을 경우 "찾을 수 없음" 메시지를 표시
5. HLOOKUP 함수의 한계
- 첫 번째 행에서만 검색 가능
→ 첫 번째 행이 아닌 곳에서 검색하려면 INDEX + MATCH 조합이 필요함. - 데이터 변경 시 오류 발생 가능
→ 행이 추가되거나 삭제되면 row_index_num이 바뀌어 오류 발생 가능. - 여러 행에서 동시에 검색 불가
→ XLOOKUP(엑셀 2019 이상) 또는 INDEX + MATCH 함수 조합을 고려.
6. HLOOKUP 대신 사용할 수 있는 함수
1) INDEX + MATCH 조합
INDEX와 MATCH를 조합하면 HLOOKUP보다 더 유연하게 데이터를 검색할 수 있습니다.
=INDEX(A2:E4, MATCH(G2, A2:A4, 0), MATCH(G1, A1:E1, 0))
✅ HLOOKUP과 달리 첫 번째 행 외의 범위에서도 검색 가능
✅ row_index_num을 지정할 필요 없음
2) XLOOKUP (엑셀 2019 이상)
엑셀 최신 버전에서는 XLOOKUP을 사용하면 더욱 강력한 기능을 사용할 수 있습니다.
=XLOOKUP(G1, A1:E1, XLOOKUP(G2, A1:A4, A2:E4))
✅ HLOOKUP보다 빠르고 직관적인 방식
✅ #N/A 오류를 방지하는 기본 옵션 제공
7. 결론
- HLOOKUP은 데이터가 가로 방향으로 정리된 경우 특정 값을 찾아 데이터를 검색할 때 유용한 함수.
- table_array의 첫 번째 행을 기준으로 검색해야 하며, 아래 방향으로만 검색 가능.
- 정확한 일치를 찾으려면 FALSE를 사용해야 함.
- INDEX + MATCH 또는 XLOOKUP을 사용하면 HLOOKUP의 단점을 보완할 수 있음.
📌 HLOOKUP을 잘 활용하면 가로 방향 데이터 검색 및 자동화 작업을 더욱 효율적으로 처리할 수 있습니다! 🚀