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

XMATCH

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

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

XMATCH คืออะไร

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

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

  • หาลำดับของรหัสหรือชื่อ โดยไม่ต้องกังวลว่าจะลืมใส่ 0
  • หารายการล่าสุดของลูกค้าหรือพนักงาน ร่วมกับ INDEX
  • เลือกขนาดหรือรถที่เล็กที่สุดที่พอ จากรายการที่ไม่ได้เรียง

รูปแบบสูตร

=XMATCH(lookup_value, lookup_array, [match_mode], [search_mode])

Argument แต่ละตัว

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

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

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

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

ค่าเริ่มต้นของ XMATCH คือค้นแบบตรงทุกตัว ต่างจาก MATCH ที่ค่าเริ่มต้นเป็นแบบใกล้เคียง

I5
=XMATCH(I4,A5:A14)
ค่าที่หาและวิธีค้น lookup_value I4 = "P024" · match_mode (ไม่ใส่) 0 = ตรงทุกตัว · search_mode (ไม่ใส่) 1 = ค้นจากบนลงล่าง
แถว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
ช่องกรอกและผลลัพธ์
ลำดับที่ (XMATCH) I5
ราคาขาย (บาท) I6
เทียบ: MATCH ที่ไม่ใส่ match_type I7
ขั้นตอนการคำนวณ (3)
คลิกตัวเลขหรือข้อความในตารางเพื่อแก้ค่า แล้วดูผลเปลี่ยนทันที · แก้สูตรได้ที่แถบสูตร หรือพิมพ์ = ในช่องว่าง
100%
ข้อมูลสมมติของสยามเฟรช ชุดเดียวกับชีต “1 ตรงทุกตัว” ในไฟล์ฝึก (ปี ค.ศ.)
ใช้ปุ่มลูกศรเลือกช่อง กด Enter หรือ F2 เพื่อแก้ พิมพ์ = เพื่อเขียนสูตร
  • อ่านสูตร: หา I4 ใน A5:A14 ได้ลำดับที่ 7 แล้ว INDEX ใช้ลำดับนั้นดึงราคาจาก D5:D14
  • ลองพิมพ์ P025 ใน I4: XMATCH ได้ #N/A ส่วน MATCH ที่ไม่ใส่ match_type ได้ 7 ซึ่งผิด
  • XMATCH ใส่แค่ 2 argument ก็ค้นแบบตรงทุกตัวแล้ว ส่วน MATCH ต้องใส่ 0 เอง

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

  1. 1หาลำดับรหัสสินค้า ไม่ต้องใส่ 0 · ค่าเริ่มต้นของ XMATCH คือค้นแบบตรงทุกตัว ต่างจาก MATCH ที่ค่าเริ่มต้นเป็นแบบใกล้เคียง
  2. 2หารถที่เล็กที่สุดที่รับน้ำหนักได้ (match_mode 1) · 1 = ตรงพอดี หรือค่าที่มากกว่าถัดไป ข้อมูลไม่ต้องเรียง XMATCH ดูครบทุกคันแล้วเลือกคันที่พอดีที่สุด
  3. 3หาคำสั่งซื้อล่าสุดของพนักงาน (search_mode -1) · -1 = ค้นจากล่างขึ้นบน ข้อมูลเรียงตามวันที่ จึงเจอคำสั่งซื้อล่าสุดก่อน
  4. 4ค้นสินค้าจากคำบางส่วนด้วย wildcard (match_mode 2) · 2 = ให้ * แทนตัวอักษรกี่ตัวก็ได้ "*"&I4&"*" จึงหมายถึงชื่อที่มีคำใน I4 อยู่ตรงไหนก็ได้

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

#N/Aสาเหตุ: หาไม่พบ หรือไม่มีค่าที่มากกว่าหรือน้อยกว่าถัดไปตาม match_modeแก้: ตรวจค่าที่ค้นหา และครอบด้วย IFNA
#N/A ทั้งที่มีคำนั้นอยู่สาเหตุ: ใช้ * หรือ ? แต่ไม่ได้ใส่ match_mode 2แก้: ใส่ 2 เป็น argument ที่ 3
#NAME?สาเหตุ: เปิดใน Excel 2016 หรือ 2019 ที่ไม่มี XMATCHแก้: ใช้สูตรในชีต Excel 2016-2019
ได้ลำดับผิดสาเหตุ: ใช้ search_mode 2 หรือ -2 กับข้อมูลที่ไม่ได้เรียงแก้: เรียงข้อมูลก่อน หรือใช้ search_mode 1 / -1

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

คิดว่า XMATCH คือ MATCH ที่ค่าเริ่มต้นตรงทุกตัว ใช้คู่กับ INDEX ได้แบบเดิมทุกอย่าง
ค้นสองทาง: =INDEX(B5:E9,XMATCH(I4,A5:A9),XMATCH(I5,B4:E4))
ไฟล์ที่ต้องเปิดใน Excel 2016–2019 ด้วย ให้ใช้ MATCH แบบ 0 แทน

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

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

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

แทนตัวอย่างสูตรทางเลือก
ตัวอย่าง 1 ตรงทุกตัว=MATCH(I4,A5:A14,0)
ตัวอย่าง 2 รถที่เล็กที่สุดที่รับได้=MATCH(AGGREGATE(15,6,C5:C10/(C5:C10>=I4),1),C5:C10,0)
ตัวอย่าง 2 รหัสรถ (INDEX + MATCH)=INDEX(A5:A10,MATCH(AGGREGATE(15,6,C5:C10/(C5:C10>=I4),1),C5:C10,0))
ตัวอย่าง 3 ลำดับครั้งล่าสุด=LOOKUP(2,1/(C5:C14=I4),ROW(C5:C14)-ROW(C4))
ตัวอย่าง 4 ค้นจากคำบางส่วน=MATCH("*"&I4&"*",B5:B14,0)

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

XMATCH กับ MATCH ต่างกันอย่างไร

ประเด็นXMATCHMATCH
ค่าเริ่มต้นตรงทุกตัวใกล้เคียง (ต้องใส่ 0 เอง)
ค่าใกล้เคียงไม่ต้องเรียงข้อมูลต้องเรียงตาม match_type
ค้นจากล่างขึ้นบนsearch_mode -1ทำไม่ได้
wildcardต้องใส่ match_mode 2ใช้ได้เมื่อ match_type = 0
เวอร์ชัน2021 ขึ้นไปทุกเวอร์ชัน

ใน Power BI ใช้อะไร

DAX ไม่มี MATCH แต่มี INDEX, OFFSET และ WINDOW ที่เลือกแถวตามตำแหน่งในตารางที่เรียงแล้ว งานจัดอันดับใช้ RANKX งานเลือกตามค่าใช้ SWITCH

ไฟล์ฝึก XMATCH

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

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

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

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

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

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

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

เปิดใน YouTube

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

1. =XMATCH("P025",A5:A14) เมื่อไม่มี P025 ในช่วง จะได้อะไร

2. อยากได้ลำดับของคำสั่งซื้อล่าสุด (ข้อมูลเรียงตามวันที่) ต้องเขียนแบบใด

3. =XMATCH(4200,C5:C10,1) หาอะไร

ไปต่อ

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

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

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