ฟังก์ชัน HLOOKUP

นำไปใช้กับ
Excel for Microsoft 365 Excel for Microsoft 365 for Mac Excel 2024 Excel 2024 for Mac Excel 2021 Excel 2021 for Mac Excel 2019 Excel 2016

เคล็ดลับ

ลองใช้ฟังก์ชัน XLOOKUP ใหม่ ซึ่งเป็นเวอร์ชันที่ได้รับการปรับปรุงของ HLOOKUP ที่ทํางานในทุกทิศทางและส่งกลับรายการที่ตรงกันตามค่าเริ่มต้น ทําให้ใช้งานง่ายและสะดวกมากกว่ารุ่นก่อน

บทความนี้จะอธิบายเกี่ยวกับไวยากรณ์ของสูตรและการใช้ฟังก์ชัน HLOOKUP ใน Microsoft Excel

คำอธิบาย

ค้นหาค่าในแถวบนสุดของตารางหรืออาร์เรย์ของค่า แล้วส่งกลับค่าในคอลัมน์เดียวกันจากแถวที่คุณระบุในตารางหรืออาร์เรย์ ใช้ HLOOKUP เมื่อค่าการเปรียบเทียบของคุณอยู่ในแถวด้านบนสุดของตารางข้อมูล และคุณต้องการค้นหาแถวตามจํานวนที่ระบุ ใช้ VLOOKUP เมื่อค่าการเปรียบเทียบของคุณอยู่ในคอลัมน์ทางด้านซ้ายของข้อมูลที่คุณต้องการค้นหา

อักษร H ในฟังก์ชัน HLOOKUP ย่อมาจาก "Horizontal"

ไวยากรณ์

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

ไวยากรณ์ของฟังก์ชัน HLOOKUP มีอาร์กิวเมนต์ดังนี้

  • Lookup_value จําเป็น ค่าที่จะพบในแถวแรกของตาราง Lookup_value อาจเป็นค่า การอ้างอิง หรือสตริงข้อความก็ได้

  • Table_array จําเป็น ตารางข้อมูลที่ข้อมูลถูกค้นหา ใช้การอ้างอิงไปยังช่วงหรือชื่อของช่วง

    • ค่าในแถวแรกของ table_array สามารถเป็นข้อความ ตัวเลข หรือค่าตรรกะ
    • ถ้า range_lookup เป็น TRUE ค่าในแถวแรกของ table_array จะต้องเรียงลําดับจากน้อยไปหามาก ดังนี้ ...-2, -1, 0, 1, 2,... , A-Z, FALSE, TRUE; มิฉะนั้น HLOOKUP อาจจะไม่ให้ค่าที่ถูกต้อง ถ้า range_lookup เป็น FALSE ไม่จําเป็นต้องจัดเรียงลําดับ table_array
    • ข้อความแบบตัวพิมพ์ใหญ่และตัวพิมพ์เล็กจะมีค่าเท่ากัน
    • เรียงลําดับค่าจากน้อยไปหามาก และจากซ้ายไปขวา สําหรับข้อมูลเพิ่มเติม ให้ดูที่ เรียงลําดับข้อมูลในช่วงหรือตาราง
  • Row_index_num จําเป็น หมายเลขแถวใน table_array ซึ่งค่าที่ตรงกันจะถูกส่งกลับ row_index_num 1 จะส่งกลับแถวแรกใน table_array row_index_num 2 จะส่งกลับค่าของแถวที่สองใน table_array เป็นต้น ถ้า row_index_num น้อยกว่า 1 ฟังก์ชัน HLOOKUP จะส่งกลับ #VALUE! ค่าความผิดพลาด ถ้า row_index_num มากกว่าจํานวนแถวบน table_array ฟังก์ชัน HLOOKUP จะส่งกลับ #REF! เป็นค่าความผิดพลาด

  • Range_lookup ไม่บังคับ ค่าตรรกะที่ระบุว่าคุณต้องการให้ HLOOKUP ค้นหาค่าที่ตรงกันพอดีหรือค่าที่ตรงกันโดยประมาณ ถ้าเป็นค่า TRUE หรือละไว้ จะส่งกลับค่าที่ตรงกันโดยประมาณ หรืออีกนัยหนึ่ง ถ้าไม่พบค่าที่ตรงกันพอดี ค่าสูงสุดถัดไปที่น้อยกว่า lookup_value จะถูกส่งกลับ ถ้าเป็น FALSE แล้ว HLOOKUP จะค้นหาค่าที่ตรงกัน ถ้าไม่พบค่าความผิดพลาด #N/A จะถูกส่งกลับ

ข้อสังเกต

  • ถ้า HLOOKUP ไม่สามารถหา lookup_value และ range_lookup เป็น TRUE จะใช้ค่าที่มากที่สุดรองจาก lookup_value
  • ถ้า lookup_value เป็นค่าที่น้อยกว่าค่าที่น้อยที่สุดในแถวแรกของ table_array ฟังก์ชัน HLOOKUP จะส่งกลับ #N/A เป็นค่าความผิดพลาด
  • ถ้า range_lookup เป็น FALSE และ lookup_value เป็นข้อความ คุณสามารถใช้อักขระตัวแทน ซึ่งเป็นเครื่องหมายคําถาม (?) และเครื่องหมายดอกจัน (*) ใน lookup_value ได้ เครื่องหมายคําถามตรงกับอักขระตัวเดียว เครื่องหมายดอกจันใช้แทนอักขระหลายตัวติดกัน ถ้าคุณต้องการค้นหาเครื่องหมายคําถามหรือดอกจันจริงๆ ให้พิมพ์ เครื่องหมายตัวหนอน (~) ไว้หน้าอักขระ

ตัวอย่าง

คัดลอกข้อมูลตัวอย่างในตารางต่อไปนี้ และวางในเซลล์ A1 ของเวิร์กชีต Excel ใหม่ สำหรับสูตรที่จะแสดงผลลัพธ์ ให้เลือกสูตร กด F2 แล้วกด Enter ถ้าคุณต้องการ คุณสามารถปรับความกว้างของคอลัมน์เพื่อดูข้อมูลทั้งหมดได้

เพลา ตลับลูกปืน สลักเกลียว
4 4 9
5 7 10
6 8 11
สูตร คำอธิบาย ผลลัพธ์
=HLOOKUP("เพลา", A1:C4, 2, TRUE) ค้นหา "เพลา" ในแถวที่ 1 และส่งกลับค่าจากแถวที่ 2 ซึ่งอยู่ในคอลัมน์เดียวกัน (คอลัมน์ A) 4
=HLOOKUP("ตลับลูกปืน", A1:C4, 3, FALSE) ค้นหา "ตลับลูกปืน" ในแถวที่ 1 และส่งกลับค่าจากแถวที่ 3 ซึ่งอยู่ในคอลัมน์เดียวกัน (คอลัมน์ B) 7
=HLOOKUP("B", A1:C4, 3, TRUE) ค้นหา "B" ในแถวที่ 1 และส่งกลับค่าจากแถวที่ 3 ซึ่งอยู่ในคอลัมน์เดียวกัน เนื่องจากไม่พบค่าที่ตรงกันกับ "B" ดังนั้นจะใช้ค่ามากที่สุดในแถวที่ 1 ที่น้อยกว่า "B" ซึ่งก็คือ "เพลา" ใน คอลัมน์ A 5
=HLOOKUP("สลักเกลียว", A1:C4, 4) ค้นหา "สลักเกลียว" ในแถวที่ 1 และส่งกลับค่าจากแถวที่ 4 ซึ่งอยู่ในคอลัมน์เดียวกัน (คอลัมน์ C) 11
=HLOOKUP(3, {1,2,3;"a","b","c";"d","e","f"}, 2, TRUE) ค้นหาเลข 3 ในค่าคงที่อาร์เรย์ที่มีสามแถว และส่งกลับค่าจากแถวที่ 2 ในคอลัมน์เดียวกัน (ในกรณีนี้ คือคอลัมน์ที่สาม) มีแถวของค่าสามแถวในค่าคงที่อาร์เรย์ โดยแต่ละแถวคั่นด้วยเครื่องหมายอัฒภาค (;)) เนื่องจากพบ "c" ในแถวที่ 2 และอยู่ในคอลัมน์เดียวกันกับ 3 ดังนั้นจะส่งกลับ "c" c