카테고리 없음

엑셀함수/HLOOKUP/데이터가 가로(행)로 정렬되어 있을 때

K-직장인 S 2025. 3. 18. 15:23

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)

동작 방식

  1. "영어"라는 값을 A1:E1(첫 번째 행)에서 찾음
  2. 찾은 열에서 **두 번째 행(철수의 점수)**의 값을 반환
  3. 결과: 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 함수의 한계

  1. 첫 번째 행에서만 검색 가능
    → 첫 번째 행이 아닌 곳에서 검색하려면 INDEX + MATCH 조합이 필요함.
  2. 데이터 변경 시 오류 발생 가능
    → 행이 추가되거나 삭제되면 row_index_num이 바뀌어 오류 발생 가능.
  3. 여러 행에서 동시에 검색 불가
     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을 잘 활용하면 가로 방향 데이터 검색 및 자동화 작업을 더욱 효율적으로 처리할 수 있습니다! 🚀