---
title: HLOOKUP – ค้นหาข้อมูลแนวนอนในตาราง
url: https://www.thepexcel.com/functions/excel/lookup-and-reference/hlookup/
type: function-explainer
program: Excel
syntax: "=HLOOKUP(lookup_value, table_array, row_index_num, [range_lookup])"
date: 2025-11-30
updated: 2025-12-21
scores:
  popularity: 7
  difficulty: 5
  usefulness: 8
---

# HLOOKUP – ค้นหาข้อมูลแนวนอนในตาราง

> HLOOKUP ค้นหาข้อมูลจากแถวแรกของตาราง แล้วคืนค่าจากแถวที่ระบุ ตรงข้ามกับ VLOOKUP ที่ค้นหาแนวตั้ง เหมา

## คำอธิบาย

HLOOKUP ค้นหาข้อมูลจากแถวแรกของตาราง แล้วคืนค่าจากแถวที่ระบุ ตรงข้ามกับ VLOOKUP ที่ค้นหาแนวตั้ง เหมาะสำหรับตารางที่หัวข้อมูลเรียงแบบแนวนอน

## Syntax

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

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| lookup_value | Yes | Value/Text/Reference |  | ค่าที่ต้องการค้นหา ซึ่งจะมองหาในแถวแรกของ table_array ได้เป็นค่าตัวเลข ข้อความ หรือการอ้างอิงเซลล์ |
| table_array | Yes | Range/Array |  | ช่วงข้อมูลตารางแนวนอน แถวแรกจะใช้สำหรับค้นหา (จะต้องเรียงจากน้อยไปมากถ้าใช้ Approximate Match) แถวอื่นๆ จะใช้สำหรับดึงค่า |
| row_index_num | Yes | Number |  | เลขลำดับแถวใน table_array ที่ต้องการให้ HLOOKUP ดึงค่ามา แถวแรกนับว่าเป็น 1 หากเกินจำนวนแถว จะขึ้น #REF! error |
| range_lookup | No | Logical (TRUE/FALSE) | TRUE | รูปแบบการค้นหา: TRUE (ค่าเริ่มต้น) ค้นหาค่าใกล้เคียง ต้องให้แถวแรกเรียงจากน้อยไปมาก FALSE ค้นหาค่าตรงกันพอดี หากไม่เจอจะขึ้น #N/A |

## เคสการใช้งาน

### การค้นหาข้อมูลในตารางสถิติ

เมื่อมีตารางสรุปผลสำรวจ หรือข้อมูลสถิติที่จัดวางในแนวนอน (เช่น แถวแรกเป็นหัวข้อ, แถวสองเป็นค่า) HLOOKUP ช่วยดึงข้อมูลที่ต้องการได้อย่างรวดเร็ว

_เหมาะกับ:_ data-analysis

### กำหนดอัตราค่าธรรมเนียม/ส่วนลด

ใช้ HLOOKUP แบบ Approximate Match กับตารางค่าธรรมเนียมหรือส่วนลดตามจำนวนเงินที่ซื้อ หรือช่วงอายุ เพื่อคำนวณอัตราที่ถูกต้อง

_เหมาะกับ:_ finance

## ตัวอย่าง

### 1. ตัวอย่างพื้นฐาน - ค้นหาเงินเดือนพนักงาน (Exact Match)

```excel
=HLOOKUP(F1, A1:E2, 2, FALSE)
```

**ผลลัพธ์:** `52000`

HLOOKUP ค้นหา "Bob" ในแถวแรก (A1:E1) พบในคอลัมน์ B แล้วดึงค่าจากแถวที่ 2 (A2:E2) ซึ่งก็คือ 52000 บาท

### 2. ตัวอย่างจริง - ค้นหาราคารถตามความจุเครื่อง

```excel
=HLOOKUP(F1, A1:E4, 2, FALSE)
```

**ผลลัพธ์:** `145000`

HLOOKUP ค้นหา "250cc" ในแถวแรก พบในคอลัมน์ C แล้วดึงราคาจากแถวที่ 2 ได้ 145000 บาท ถ้าเปลี่ยน row_index_num เป็น 3 ก็จะได้สต็อก (10) ถ้าเป็น 4 จะได้สี (Silver)

### 3. ตัวอย่างเทคนิค - ใช้ Approximate Match หาเกรดจากคะแนน

```excel
=HLOOKUP(F1, A1:E2, 2, TRUE)
```

**ผลลัพธ์:** `C`

HLOOKUP ค้นหาคะแนน 75 โดยใช้ range_lookup=TRUE (Approximate Match) จะหาค่าใกล้เคียงสูงสุดที่ไม่เกิน 75 คือ 70 แล้วดึงเกรดจากแถวที่ 2 ได้ C ถ้าคะแนนเป็น 82 จะได้ B ถ้า 45 จะได้ F

### 4. ตัวอย่างลึก - HLOOKUP ร่วม MATCH สำหรับความยืดหยุ่นสูง

```excel
=HLOOKUP(F1, A1:D5, MATCH(F2, A:A, 0), FALSE)
```

**ผลลัพธ์:** `28000`

สูตรนี้ทำงานสองขั้น: (1) MATCH(F2, A:A, 0) หาว่า "Price" อยู่ในแถวที่เท่าไหร่ (คือแถว 3) (2) HLOOKUP ค้นหา "Samsung" ในแถวแรก แล้วดึงค่าจากแถวที่ MATCH บอก (แถว 3) ได้ 28000 ถ้าเปลี่ยน F2 เป็น "Stock" ก็จะได้ 8 ถ้าเป็น "Color" จะได้ "Black"

## หมายเหตุเพิ่มเติม

- ถ้าข้อมูลเรียงแนวตั้ง ให้ใช้ VLOOKUP แทน ถ้าต้องการยืดหยุ่นมากขึ้น ให้ใช้ INDEX+MATCH

- ใช้ Table[Column] แทนการอ้างอิงเซลล์แบบ A1:C10 จะทำให้สูตรอัพเดตอัตโนมัติเมื่อเพิ่มข้อมูลใหม่

- ถ้าต้องหา row_index_num แบบไดนามิก ให้ร่วมใช้กับ MATCH เพื่อสร้างสูตรที่ยืดหยุ่นมากขึ้น

- ร่วมใช้กับ IFERROR หรือ IFNA เพื่อแสดงข้อความแทนข้อผิดพลาด เช่น =IFERROR(HLOOKUP(...), "ไม่เจอ")

- ถ้าใช้ Excel 365 ลองใช้ XLOOKUP แทน มีความยืดหยุ่นมากกว่า และไม่ต้องนับแถว

## คำถามที่พบบ่อย

**Q: HLOOKUP กับ VLOOKUP ต่างกันอย่างไร?**

HLOOKUP ค้นหาแถวแรกแนวนอน ส่วน VLOOKUP ค้นหาคอลัมน์แรกแนวตั้ง เลือกใช้ตามโครงสร้างข้อมูลของคุณ

**Q: XLOOKUP ดีกว่า HLOOKUP รึเปล่า?**

ถ้าใช้ Excel 365 หรือ 2021 ขึ้นไป แนะนำให้ใช้ XLOOKUP เพราะมีความยืดหยุ่นสูงกว่า ค้นหาได้ทั้งแนวตั้งและแนวนอน ไม่ต้องนับแถว แต่ถ้าใช้ Excel เก่า HLOOKUP ยังคงใช้ได้

**Q: HLOOKUP ใช้ได้กับ Excel เวอร์ชันไหนบ้าง?**

HLOOKUP ใช้ได้ตั้งแต่ Excel 2003 เป็นต้นมา ดังนั้นเกือบทุกเวอร์ชัน Excel ใช้ได้หมด

**Q: ทำไม HLOOKUP ขึ้น #N/A?**

ส่วนใหญ่เป็นเพราะ lookup_value ไม่มีในแถวแรก หรือ range_lookup = FALSE แต่ค่านั้นไม่ตรงกันพอดี ตรวจสอบการสะกดหรือใช้ IFERROR

**Q: HLOOKUP ทำงานช้าตอนข้อมูลเยอะๆ รึเปล่า?**

HLOOKUP เร็วพอสำหรับข้อมูลทั่วไป แต่ถ้ามีหลักแสน ให้ลองใช้ XLOOKUP หรือ Power Query

## ฟังก์ชันที่เกี่ยวข้อง

- [VLOOKUP – ฟังก์ชันค้นหาค่าแนวตั้งจากตาราง](https://www.thepexcel.com/functions/excel/lookup-and-reference/vlookup/)
- [XLOOKUP – ฟังก์ชันค้นหาข้อมูลแนวตั้งและแนวนอน](https://www.thepexcel.com/functions/excel/lookup-and-reference/xlookup/)
- [INDEX – ดึงค่าจากตำแหน่งที่ระบุใน Range หรือ Array](https://www.thepexcel.com/functions/excel/lookup-and-reference/index/)
- [MATCH – ค้นหาตำแหน่งของค่าในรายการ](https://www.thepexcel.com/functions/excel/lookup-and-reference/match/)
- [LOOKUP – ค้นหาข้อมูลแบบดั้งเดิม](https://www.thepexcel.com/functions/excel/lookup-and-reference/lookup/)

## แหล่งข้อมูลเพิ่มเติม

- [Microsoft Support - HLOOKUP Function](https://support.microsoft.com/en-us/office/hlookup-function-a3034eec-b719-4ba3-bb65-e1ad662ed95f) _(official)_
- [ExcelJet - HLOOKUP Function](https://exceljet.net/excel-functions/excel-hlookup-function) _(guide)_

---

_Source: [https://www.thepexcel.com/functions/excel/lookup-and-reference/hlookup/](https://www.thepexcel.com/functions/excel/lookup-and-reference/hlookup/)_
