อบรม Excel • Data Analytics • Automation สำหรับองค์กร

anuchit.efh@gmail.com 087-980-9186

8 เทคนิคการใช้ XLOOKUP
ฉบับสมบูรณ์

หลายคนเริ่มใช้ XLOOKUP เพราะต้องการค้นหาข้อมูลแทน VLOOKUP แต่จริง ๆ แล้วฟังก์ชันนี้ทำได้มากกว่าการค้นหาแบบทั่วไปครับ
ในบทความนี้ เราจะลองใช้ XLOOKUP แก้โจทย์ที่พบบ่อยในการทำงาน พร้อมตัวอย่างที่สามารถเปิด Excel แล้วทำตามได้ทันที

อ่าน 0 ครั้งปฏิสัมพันธ์ 0แชร์ 0

DataPro003|

Download Workshop File

XLOOKUP คืออะไร?

XLOOKUP เป็นฟังก์ชันสำหรับค้นหาข้อมูลจากตาราง โดยกำหนดช่วงค้นหาและช่วงผลลัพธ์แยกจากกัน จึงค้นหาได้ทั้งแนวตั้ง แนวนอน และส่งคำตอบจากด้านซ้ายหรือด้านขวาของตารางได้
รองรับ Microsoft Excel 2021 ขึ้นไป และ Microsoft 365

รูปแบบการใช้งาน

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

คำอธิบาย

lookup_value
ค่าที่ต้องการค้นหา เช่น รหัสสินค้า หรือรหัสพนักงาน
lookup_array
ช่วงข้อมูลที่ใช้ค้นหา
return_array
ช่วงข้อมูลที่ต้องการคำตอบ
if_not_found (ไม่บังคับ)
ข้อความหรือค่าที่ต้องการแสดงเมื่อค้นหาไม่พบ
match_mode (ไม่บังคับ)
กำหนดรูปแบบการจับคู่ เช่น ตรงเป๊ะ ค่าที่ใกล้เคียง หรือ Wildcard
search_mode (ไม่บังคับ)
กำหนดทิศทางการค้นหา เช่น บนลงล่าง หรือล่างขึ้นบน

เทคนิคที่ 1 ค้นหาข้อมูลตามช่วงคะแนน

สมมติว่าต้องการเทียบคะแนน KPI ของพนักงานแต่ละคนกับตารางเกรด หากคะแนนไม่มีอยู่ในตารางแบบตรงตัว ให้ XLOOKUP เลือกค่าที่น้อยกว่าและใกล้เคียงที่สุด

ตัวอย่าง XLOOKUP ค้นหาเกรดตามช่วงคะแนน KPI

ที่เซลล์ E2 ให้พิมพ์สูตรดังนี้

=XLOOKUP(D2,$G$2:$G$7,$I$2:$I$7,"ไม่พบข้อมูล",-1)

คำอธิบาย

  • เราจะใช้ match_mode = -1 เพื่อหาค่าที่น้อยกว่าและใกล้เคียงที่สุด
  • หากคะแนน 85 ไม่มีอยู่ในตาราง Excel จะเลือก 80 แล้วส่งเกรดของแถวนั้นกลับมา ก็คือ B+ นั่นเอง

หมายเหตุ: การใช้ match_mode = -1 เหมาะกับการค้นหาข้อมูลที่เป็น "ช่วง" เช่น คะแนน เกรด ส่วนลด ค่าคอมมิชชัน และขั้นภาษี เป็นต้น

เทคนิคที่ 2 ค้นหาข้อมูลแบบตรงเป๊ะ

เมื่อต้องค้นหารหัสสินค้า รหัสพนักงาน หรือเลขที่เอกสาร ข้อมูลต้องตรงกันทุกตัวอักษร จากตัวอย่างนี้ต้องการค้นหา PartNo แล้วส่ง UnitPrice ของรายการที่พบมาแสดง

ตัวอย่าง XLOOKUP ค้นหา UnitPrice จาก PartNo แบบตรงเป๊ะ

ที่เซลล์ H2 ให้พิมพ์สูตรดังนี้

=XLOOKUP(H1,A2:A74,E2:E74,"ไม่พบข้อมูล")

คำอธิบาย

  • XLOOKUP จะค้นหา PartNo ในเซลล์ H1 จากช่วง A2:A74
  • เมื่อพบข้อมูล จะส่ง UnitPrice จากช่วง E2:E74 กลับมา
  • หากค้นหาไม่พบ จะแสดงข้อความ "ไม่พบข้อมูล" แทนข้อผิดพลาด #N/A
  • สูตรนี้ใช้ Exact Match (match_mode = 0) ซึ่งเป็นค่าเริ่มต้นของ XLOOKUP จึงไม่จำเป็นต้องระบุในสูตร

หมายเหตุ: การใช้ match_mode = 0 เหมาะกับการค้นหาข้อมูลที่เป็น รหัสสินค้า, รหัสพนักงาน, เลขที่เอกสาร, เลขใบสั่งซื้อ และข้อมูลที่ต้องค้นหาแบบตรงกันทุกตัวอักษร

เทคนิคที่ 3 ค้นหาข้อมูลจากขวาไปซ้าย

XLOOKUP กำหนดช่วงค้นหาและช่วงผลลัพธ์ได้อย่างอิสระ จึงค้นหาจากขวาไปซ้ายได้โดยไม่ต้องสลับตำแหน่งคอลัมน์เหมือน VLOOKUP

ตัวอย่าง XLOOKUP ค้นหา Material description จาก SerialNo

ที่เซลล์ H2 ให้พิมพ์สูตรดังนี้

=XLOOKUP(H1,C2:C74,B2:B74,"ไม่พบข้อมูล")

คำอธิบาย

  • XLOOKUP จะค้นหา SerialNo ในเซลล์ H1 จากช่วง C2:C74
  • เมื่อพบข้อมูล จะส่ง Material description จากช่วง B2:B74 กลับมา
  • หากค้นหาไม่พบ จะแสดงข้อความ "ไม่พบข้อมูล" แทนข้อผิดพลาด #N/A
  • สูตรนี้ใช้ Exact Match (match_mode = 0) ซึ่งเป็นค่าเริ่มต้นของ XLOOKUP จึงไม่จำเป็นต้องระบุในสูตร

หมายเหตุ: XLOOKUP สามารถกำหนดช่วงค้นหา (lookup_array) และช่วงผลลัพธ์ (return_array) ได้อย่างอิสระ จึงค้นหาข้อมูลได้ทั้งสองทิศทาง

เทคนิคที่ 4 ค้นหาข้อมูลแบบหลายเงื่อนไข

หากต้องใช้ Material description ร่วมกับ Location เพื่อหา UnitPrice สามารถใช้เครื่องหมาย * เชื่อมเงื่อนไขให้ทำงานเหมือน AND โดยไม่ต้องสร้างคอลัมน์ช่วย

ตัวอย่าง XLOOKUP ค้นหาข้อมูลจาก Material description และ Location

ที่เซลล์ H3 ให้พิมพ์สูตรดังนี้

=XLOOKUP(1,(B2:B74=H1)*(D2:D74=H2),E2:E74,"ไม่พบข้อมูล")

คำอธิบาย

  • (B2:B74=H1) ตรวจสอบว่า Material Description ตรงกับข้อมูลที่ค้นหาหรือไม่
  • (D2:D74=H2) ตรวจสอบว่า Location ตรงกับข้อมูลที่ค้นหาหรือไม่
  • เครื่องหมาย * ทำหน้าที่เหมือน AND โดยจะส่งค่า 1 เมื่อทั้งสองเงื่อนไขเป็นจริง และส่งค่า 0 หากมีเงื่อนไขใดไม่ตรง
  • XLOOKUP(1,...) จึงค้นหาค่า 1 และส่ง UnitPrice ของแถวนั้นกลับมา
  • หากค้นหาไม่พบ จะแสดงข้อความ "ไม่พบข้อมูล"

หมายเหตุ: เทคนิคนี้เหมาะกับการค้นหาข้อมูลที่ใช้มากกว่าหนึ่งเงื่อนไข เช่น รหัสสินค้า + สาขา หรือ สินค้า + คลังสินค้า โดยไม่ต้องสร้างคอลัมน์ช่วย (Helper Column)

เทคนิคที่ 5 ค้นหาข้อมูลแบบ 2 มิติ

เมื่อต้องค้นหาข้อมูลจากตารางที่มีหัวข้อกำกับทั้งแนวตั้งและแนวนอน เช่น ต้องการหาตัวเลขที่ตัดกันระหว่างประเทศกับหมวดสินค้าที่ระบุ จะต้องค้นหาทั้งแถวของประเทศและคอลัมน์ของหมวดสินค้า จึงใช้ XLOOKUP สองชุดซ้อนกันเพื่อหาค่าที่ตำแหน่งตัดกัน

ตัวอย่าง Nested XLOOKUP ค้นหาค่าตัดกันระหว่าง Country และ Category

ที่เซลล์ I4 ให้พิมพ์สูตรดังนี้

=XLOOKUP(I1,A2:A16,XLOOKUP(I2,B1:F1,B2:F16,"ไม่พบข้อมูล"))

คำอธิบาย

  • XLOOKUP ด้านใน ใช้ค้นหาคอลัมน์ที่ต้องการ เช่น หมวดสินค้า ผลลัพธ์ที่ได้จะเป็นช่วงข้อมูลของหมวดสินค้านั้นทั้งคอลัมน์
  • XLOOKUP ด้านนอก ใช้ค้นหาประเทศ แล้วดึงข้อมูลจากคอลัมน์ที่ได้ในขั้นตอนแรก
  • หากค้นหาไม่พบ จะแสดงข้อความ "ไม่พบข้อมูล"

หมายเหตุ: เทคนิคนี้ช่วยให้ค้นหาข้อมูลแบบ 2 มิติ ได้โดยไม่ต้องใช้ INDEX ร่วมกับ MATCH หลายตัว ทำให้สูตรอ่านง่ายและแก้ไขได้สะดวกกว่า

เทคนิคที่ 6 ค้นหารายการล่าสุด

โดยปกติ XLOOKUP ค้นหาจากบนลงล่าง แต่หากต้องการวันที่สั่งซื้อล่าสุดของลูกค้า ให้ใช้ search_mode = -1 เพื่อค้นหาจากล่างขึ้นบน

ตัวอย่าง XLOOKUP ค้นหา Order Date ล่าสุดของลูกค้า

ที่เซลล์ F3 ให้พิมพ์สูตรดังนี้

=XLOOKUP(F1,B2:B11,C2:C11,"ไม่พบข้อมูล",,-1)

คำอธิบาย

  • Search Mode = -1 คือ ให้ XLOOKUP ค้นหาจากล่างขึ้นบน
  • หากมีข้อมูลซ้ำหลายรายการ สูตรจะส่งค่าจากรายการล่าสุดกลับมา
  • หากค้นหาไม่พบ จะแสดงข้อความ "ไม่พบข้อมูล"

หมายเหตุ: เทคนิคนี้เหมาะกับข้อมูลที่มีการบันทึกซ้ำหลายครั้ง เช่น ราคาสินค้าล่าสุด, สถานะล่าสุด, วันที่อัปเดตล่าสุด หรือข้อมูลการรับ–จ่ายสินค้า โดยไม่ต้องเรียงลำดับข้อมูลใหม่หรือใช้สูตรที่ซับซ้อน

เทคนิคที่ 7 ส่งผลลัพธ์หลายคอลัมน์พร้อมกัน

XLOOKUP ส่งผลลัพธ์หลายคอลัมน์ได้ในครั้งเดียว ตัวอย่างนี้ค้นหา PartNo แล้วแสดง Material description, SerialNo, Location และ UnitPrice พร้อมกัน

ตัวอย่าง XLOOKUP ส่งผลลัพธ์หลายคอลัมน์และใช้ TRANSPOSE

ที่เซลล์ H2 ให้พิมพ์สูตรดังนี้

=TRANSPOSE(XLOOKUP(H1,A2:A74,B2:E74,"ไม่พบข้อมูล"))

คำอธิบาย

  • A2:A74 คือช่วงข้อมูลที่ใช้ค้นหา PartNo
  • B2:E74 คือช่วงข้อมูลที่ต้องการส่งกลับ ซึ่งมี 4 คอลัมน์
  • เมื่อค้นหาพบ XLOOKUP จะส่งผลลัพธ์ทั้ง 3 คอลัมน์ออกมาพร้อมกัน (Spill)
  • หากค้นหาไม่พบ จะแสดงข้อความ "ไม่พบข้อมูล"
  • เราจะใช้ฟังก์ชัน TRANSPOSE ในการกำหนดทิศทางของการกระจายค่าตามแนวที่ต้องการ ในที่นี้คือต้องการกระจายค่าตามแนวตั้ง

หมายเหตุ: หากผลลัพธ์แสดงข้อผิดพลาด #SPILL! ให้ตรวจสอบว่ามีข้อมูลอยู่ในเซลล์ด้านขวาของสูตรหรือไม่ เพราะ XLOOKUP ต้องใช้พื้นที่ว่างในการแสดงผลลัพธ์หลายคอลัมน์

เทคนิคที่ 8 ค้นหาข้อมูลด้วย Wildcard

หากจำชื่อสินค้าได้เพียงบางส่วน ให้ใช้ Wildcard ร่วมกับ XLOOKUP เพื่อค้นหาคำขึ้นต้น คำลงท้าย หรือข้อความบางส่วน

ตัวอย่าง XLOOKUP ค้นหาชื่อสินค้าบางส่วนด้วย Wildcard

ที่เซลล์ H2 ให้พิมพ์สูตรดังนี้

=XLOOKUP(H1,B2:B74,E2:E74,"ไม่พบข้อมูล",2)

คำอธิบาย

  • "*" คือ Wildcard ที่แทนข้อความได้ตั้งแต่ 0 ตัวอักษรขึ้นไป
  • จากตัวอย่างระบุ SWOPPER*BN หมายถึง ขึ้นต้นด้วยคำว่า SWOPPER และลงท้ายด้วยคำว่า BN ระหว่างคำคือข้อความใดก็ได้
  • 2 คือ Match Mode สำหรับการค้นหาแบบ Wildcard
  • หากค้นหาไม่พบ จะแสดงข้อความ "ไม่พบข้อมูล"

หมายเหตุ: นอกจาก * แล้ว ยังสามารถใช้ ? เพื่อแทนตัวอักษร 1 ตัว ได้ เช่น A?C จะค้นหา ABC, ADC หรือ A1C แต่จะไม่ตรงกับ ABBC

บทความนี้เป็นประโยชน์กับคุณไหม?เลือกไอคอนเพื่อบอกเราได้เลย

พัฒนาทักษะ Excel
ให้ทำงานได้อย่างมืออาชีพ

เลือกหลักสูตรที่เหมาะกับคุณ ตั้งแต่การใช้ Excel ในการทำงาน สูตรและฟังก์ชัน
การวิเคราะห์ข้อมูล ไปจนถึง Dashboard ระบบอัตโนมัติ และ AI

เรียนรู้ผ่าน Workshop ที่เน้นการใช้งานจริง พร้อมนำไปประยุกต์ใช้กับงานได้ทันที

ดูหลักสูตรทั้งหมด