คลังสูตรExcel 80 · DAX 95 · M 15
ในหน้านี้

XLOOKUP

ค้นหาและอ้างอิงระดับกลางExcel 2021+ไม่มีใน Excel 2016/2019

อัปเดต 22 ก.ย. 2569 · ตรวจ syntax และเวอร์ชันกับเอกสารของ Microsoft · ผลในตัวอย่างตรวจด้วยเครื่องมือคำนวณ 2 ชุด

XLOOKUP คืออะไร

ค้นหาค่าในคอลัมน์หรือแถวหนึ่ง แล้วดึงค่าจากอีกช่วงในตำแหน่งเดียวกัน ใช้แทน VLOOKUP, HLOOKUP และ INDEX/MATCH ได้

ใช้เมื่อไหร่

  • ดึงข้อมูลจากอีกตารางด้วยรหัส
  • ค้นจากชื่อแล้วดึงรหัสที่อยู่ซ้ายมือ
  • หารายการล่าสุดของลูกค้าหรือพนักงาน

รูปแบบสูตร

=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])

Argument แต่ละตัว

ชี้ที่ argument ในรูปแบบสูตรด้านบนเพื่อไฮไลต์แถวนั้น

Argumentจำเป็นไหมความหมาย
lookup_valueจำเป็นค่าที่ต้องการค้นหา
lookup_arrayจำเป็นช่วงที่ใช้ค้นหา
return_arrayจำเป็นช่วงที่ต้องการดึงค่ากลับมา (ขนาดเท่ากับ lookup_array)
[if_not_found]ไม่บังคับค่าที่แสดงเมื่อหาไม่พบ ถ้าไม่ใส่จะได้ #N/A
[match_mode]ไม่บังคับ0 ตรงทุกตัว (ค่าเริ่มต้น) · -1 ตรงหรือค่าที่น้อยกว่าถัดไป · 1 ตรงหรือค่าที่มากกว่าถัดไป · 2 wildcard
[search_mode]ไม่บังคับ1 บนลงล่าง (ค่าเริ่มต้น) · -1 ล่างขึ้นบน · 2 / -2 binary search กับข้อมูลที่เรียงแล้ว

ลองเลย: ตัวอย่างที่เปลี่ยนค่าได้

ข้อมูลชุดเดียวกับไฟล์ฝึก เปลี่ยนค่าในช่องกรอก หรือคลิกตัวเลขในตารางเพื่อแก้ แล้วดูผลลัพธ์เปลี่ยนทันที กดถัดไปเพื่อดูว่า Excel คิดทีละขั้นอย่างไร สีของช่วงในตารางตรงกับสีในสูตร

ค้นรหัสใน I4 ที่คอลัมน์ A แล้วดึงค่าจากคอลัมน์ D แถวเดียวกัน

I5
=XLOOKUP(I4,A5:A14,D5:D14)
ค่าที่ต้องการค้นหา (lookup_value) I4 = "P024"
แถวABCDEFG
4รหัสสินค้าชื่อสินค้าหมวดสินค้าราคาขาย (บาท)ผู้ผลิต
5P001น้ำส้มคั้น 100% 350 มล. (แพ็ค 12)เครื่องดื่ม420โรงงานสยามเฟรช นครปฐม
6P003น้ำดื่มสยามเฟรช 600 มล. (แพ็ค 12)เครื่องดื่ม60โรงงานสยามเฟรช นครปฐม
7P006กาแฟพร้อมดื่ม เอสเปรสโซ 240 มล. (แพ็ค 24)เครื่องดื่ม560โรงงานสยามเฟรช นครปฐม
8P009มันฝรั่งทอดกรอบ รสดั้งเดิม 75 ก. (กล่อง 24)ขนมขบเคี้ยว720หจก. เกษตรไทยพรีเมียม
9P011ข้าวเกรียบกุ้ง 60 ก. (กล่อง 36)ขนมขบเคี้ยว650บจก. ซีฟู้ด โปรเซสซิ่ง
10P017บะหมี่กึ่งสำเร็จรูป รสต้มยำกุ้ง (ลัง 30)อาหารสำเร็จรูป250โรงงานสยามเฟรช นครปฐม
11P024นม UHT รสจืด 180 มล. (ลัง 48)ผลิตภัณฑ์นม520บจก. แดรี่พลัส อุตสาหกรรม
12P030น้ำปลาแท้ 700 มล. (ลัง 12)เครื่องปรุงรส420โรงงานสยามเฟรช นครปฐม
13P036น้ำยาล้างจาน กลิ่นมะนาว 500 มล. (ลัง 24)ของใช้ในครัวเรือน540บจก. คลีนโฮม ซัพพลาย
14P039กระดาษทิชชูม้วนใหญ่ (แพ็ค 24)ของใช้ในครัวเรือน420บจก. คลีนโฮม ซัพพลาย
15
16
17
18
19
A5:A14
D5:D14
ช่องกรอกและผลลัพธ์
ราคาขาย (บาท) I5
ขั้นตอนการคำนวณ (4)
ลองปรับ argument

ลองพิมพ์ P02* ใน I4 แล้วเลือก match_mode 2 หรือพิมพ์ P025 แล้วเลือก -1

คลิกตัวเลขหรือข้อความในตารางเพื่อแก้ค่า แล้วดูผลเปลี่ยนทันที · แก้สูตรได้ที่แถบสูตร หรือพิมพ์ = ในช่องว่าง
100%
ข้อมูลสมมติของสยามเฟรช ชุดเดียวกับชีต “1 พื้นฐาน” ในไฟล์ฝึก (ปี ค.ศ.)
ใช้ปุ่มลูกศรเลือกช่อง กด Enter หรือ F2 เพื่อแก้ พิมพ์ = เพื่อเขียนสูตร
  • อ่านสูตร: หา I4 ใน A5:A14 แล้วคืนค่าจาก D5:D14 ในตำแหน่งเดียวกัน
  • ค่าเริ่มต้นคือค้นแบบตรงทุกตัว ไม่ต้องใส่ FALSE แบบ VLOOKUP
  • lookup_array กับ return_array ต้องมีจำนวนแถวเท่ากัน

ตัวอย่างทั้งหมด 6 แบบ

  1. 1ดึงราคาจากรหัสสินค้า · ค้นรหัสใน I4 ที่คอลัมน์ A แล้วดึงค่าจากคอลัมน์ D แถวเดียวกัน
  2. 2ค้นจากชื่อ แล้วดึงรหัสที่อยู่ซ้ายมือ · ค้นในคอลัมน์ B แล้วคืนค่าจากคอลัมน์ A ซึ่ง VLOOKUP ทำไม่ได้
  3. 3แสดงข้อความเมื่อหาไม่พบ · ใส่ if_not_found เป็น argument ที่ 4 แทนการครอบด้วย IFNA
  4. 4ส่วนลดขั้นบันได (match_mode = -1) · -1 = ถ้าไม่ตรง ให้เอาค่าที่น้อยกว่าที่ใกล้ที่สุด
  5. 5หาคำสั่งซื้อล่าสุด (search_mode = -1) · -1 = ค้นจากล่างขึ้นบน ข้อมูลเรียงตามวันที่ จึงเจอรายการล่าสุดก่อน
  6. 6ค้นหาด้วย 2 เงื่อนไข · คูณเงื่อนไขเข้าด้วยกัน แถวที่จริงทั้งคู่จะได้ 1 แล้วให้ XLOOKUP หาเลข 1

ข้อผิดพลาดที่พบบ่อย

#N/Aสาเหตุ: หาไม่พบ: ช่องว่างเกิน หรือตัวเลขปนข้อความแก้: ใส่ if_not_found, ใช้ TRIM, ตรวจชนิดข้อมูล
#VALUE!สาเหตุ: lookup_array กับ return_array ขนาดไม่เท่ากันแก้: ให้สองช่วงเริ่มและจบแถวเดียวกัน
#NAME?สาเหตุ: เปิดใน Excel 2016 หรือ 2019 ที่ไม่มี XLOOKUPแก้: ใช้สูตรในชีต Excel 2016-2019
#SPILL!สาเหตุ: return_array หลายคอลัมน์ แต่ช่องข้าง ๆ มีข้อมูลขวางแก้: ลบข้อมูลที่ขวางผลลัพธ์

เคล็ดลับจากห้องเรียน

แปลงข้อมูลเป็น Table (Ctrl + T) แล้วอ้างเป็นชื่อคอลัมน์ ช่วงจะขยายเองเมื่อเพิ่มแถว
ดึงหลายคอลัมน์ในสูตรเดียว: ให้ return_array เป็น B5:E14 ผลจะ spill ไปทางขวา
ค้นหาด้วย 2 เงื่อนไข: =XLOOKUP(1,(A5:A13=I4)*(B5:B13=I5),C5:C13)

ใช้กับ Excel ของคุณได้ไหม

เวอร์ชันExcel 2016Excel 2019Excel 2021Excel 2024Microsoft 365
XLOOKUP

ใช้ Excel 2016 หรือ 2019 ให้ใช้สูตรเหล่านี้แทน ได้ผลเท่ากับตัวอย่างบนหน้านี้ และมีในชีต “Excel 2016-2019” ของไฟล์ฝึก

แทนตัวอย่างสูตรทางเลือก
ตัวอย่าง 1 พื้นฐาน=INDEX(D5:D14,MATCH(I4,A5:A14,0))
ตัวอย่าง 2 ค้นย้อนซ้าย=INDEX(A5:A14,MATCH(I4,B5:B14,0))
ตัวอย่าง 3 ถ้าไม่พบ=IFNA(INDEX(D5:D14,MATCH(I4,A5:A14,0)),"ไม่พบรหัสสินค้า")
ตัวอย่าง 4 ขั้นบันได=INDEX(B5:B9,MATCH(I4,A5:A9,1))
ตัวอย่าง 5 รายการล่าสุด=LOOKUP(2,1/(C5:C14=I4),D5:D14)
ตัวอย่าง 6 สองเงื่อนไข=SUMIFS(C5:C13,A5:A13,I4,B5:B13,I5)

Office 2016 และ 2019 หมดระยะสนับสนุนตั้งแต่ 14 ต.ค. 2568 ไฟล์ยังเปิดได้ แต่ไม่มีอัปเดตความปลอดภัย

XLOOKUP, VLOOKUP และ INDEX + MATCH

ประเด็นXLOOKUPVLOOKUPINDEX + MATCH
ค้นไปทางซ้ายได้ไม่ได้ได้
ค่าเริ่มต้นตรงทุกตัวใกล้เคียง (ต้องใส่ FALSE)ต้องใส่ 0 ใน MATCH
แทรกคอลัมน์สูตรยังถูกต้องแก้เลขคอลัมน์สูตรยังถูก
เมื่อหาไม่พบมี if_not_foundครอบด้วย IFNAครอบด้วย IFNA
ค้นจากล่างขึ้นบนsearch_mode -1ไม่ได้ต้องใช้สูตรพิเศษ
เวอร์ชัน2021 ขึ้นไปทุกเวอร์ชันทุกเวอร์ชัน

ใน Power BI ใช้อะไร

แบบ 3 · แนวคิดเดียวกัน คนละฟังก์ชันความสัมพันธ์ + RELATED หรือ LOOKUPVALUE

สร้างความสัมพันธ์แล้วดึงค่าด้วย RELATED ถ้าตารางไม่ได้เชื่อมกัน เช่น ตารางเป้า ใช้ LOOKUPVALUE

ไฟล์ฝึก XLOOKUP

9Expert-XLOOKUP-Practice-v1.2.xlsx

รุ่น 1.2 · 24/9/2026 · 34 KB · ไม่มี Macro · ข้อมูลชุดเดียวกับตัวอย่างบนเว็บ · มีเฉลยและตรวจคำตอบอัตโนมัติ
เริ่มต้นที่นี่1 พื้นฐาน2 ค้นย้อนซ้าย3 ถ้าไม่พบ4 ขั้นบันได5 รายการล่าสุด6 สองเงื่อนไขแบบฝึกหัดเฉลยสรุปย่อExcel 2016-2019

โจทย์ในชีตแบบฝึกหัด

  1. ข้อ 1ราคาขายของสินค้าในช่อง C7
  2. ข้อ 2หมวดสินค้าของรหัสในช่อง C8
  3. ข้อ 3ผู้ผลิตของสินค้าชื่อในช่อง C9 (ค้นจากชื่อ)
  4. ข้อ 4รหัสสินค้าของสินค้าชื่อในช่อง C10 (ค้นย้อนซ้าย)
  5. ข้อ 5ราคาของรหัสในช่อง C11 ถ้าไม่พบให้แสดง ไม่มีสินค้า

วิดีโอประกอบ

คลิปเรื่อง XLOOKUP จากช่อง YouTube @9expert

ในเว็บจริงจะฝังคลิปพร้อมตั้งเวลาเริ่มตรงหัวข้อนี้ ในต้นแบบเปิดผลค้นหาในช่องแทน

เปิดใน YouTube

แบบทดสอบ 3 ข้อ

1. อยากได้รายการล่าสุด ต้องตั้ง search_mode เป็นเท่าไร

2. ถ้าหาไม่พบและไม่ใส่ if_not_found จะได้อะไร

3. XLOOKUP ใช้ได้ใน Excel 2019 ไหม

ไปต่อ

อยากใช้สูตรเหล่านี้กับงานจริงทั้งระบบ

ต่อยอดใน Microsoft Excel Advanced: สูตรสรุปผลแบบมีเงื่อนไข สูตรสืบค้นข้อมูล สูตรใหม่ใน Microsoft 365 และการจัดการ Error (2 วัน)

ดูหลักสูตร
หน้านี้ช่วยได้ไหม