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

MATCH

ค้นหาและอ้างอิงระดับกลางทุกเวอร์ชัน

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

MATCH คืออะไร

บอกว่าค่าที่ค้นหาอยู่ลำดับที่เท่าไรของช่วง แล้วนำเลขลำดับไปใช้กับ INDEX หรือสูตรอื่น

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

  • หาว่ารหัสหรือชื่ออยู่ลำดับที่เท่าไรของรายการ แล้วส่งเลขนั้นให้ INDEX
  • หาเลขคอลัมน์จากชื่อหัวตาราง ให้ VLOOKUP หรือ INDEX
  • หาขั้นในตารางเกณฑ์ เช่น ขั้นส่วนลดตามยอดสั่งซื้อ

รูปแบบสูตร

=MATCH(lookup_value, lookup_array, [match_type])

Argument แต่ละตัว

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

Argumentจำเป็นไหมความหมาย
lookup_valueจำเป็นค่าที่ต้องการหาลำดับ
lookup_arrayจำเป็นช่วงที่ค้นหา เป็นแถวเดียวหรือคอลัมน์เดียว
[match_type]ไม่บังคับ0 ตรงทุกตัว · 1 หรือไม่ใส่ = ค่าที่มากที่สุดที่ไม่เกินค่าที่หา (เรียงน้อยไปมาก) · -1 ค่าที่น้อยที่สุดที่ไม่ต่ำกว่าค่าที่หา (เรียงมากไปน้อย)

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

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

MATCH บอกว่ารหัสใน I4 อยู่ลำดับที่เท่าไรของ A5:A14 แล้ว INDEX ใช้ลำดับนั้นดึงชื่อสินค้า

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

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

  1. 1หาลำดับของรหัสสินค้า · MATCH บอกว่ารหัสใน I4 อยู่ลำดับที่เท่าไรของ A5:A14 แล้ว INDEX ใช้ลำดับนั้นดึงชื่อสินค้า
  2. 2หาขั้นส่วนลดจากยอดสั่งซื้อ (match_type 1) · 1 = หาค่าที่มากที่สุดที่ไม่เกินยอดใน I4 คอลัมน์ A จึงต้องเรียงจากน้อยไปมาก
  3. 3เลือกรถที่เล็กที่สุดที่รับน้ำหนักได้ (match_type -1) · -1 = หาค่าที่น้อยที่สุดที่ไม่ต่ำกว่าน้ำหนักใน I4 ตารางจึงต้องเรียงจากมากไปน้อย
  4. 4ลืมใส่ 0 ได้ลำดับผิดแบบไม่มีคำเตือน · รหัส P025 ไม่มีในตาราง แต่ MATCH ที่ไม่ใส่ match_type ยังคืนลำดับมาให้

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

#N/Aสาเหตุ: หาไม่พบ: สะกดต่างกัน มีช่องว่างเกิน หรือตัวเลขปนข้อความแก้: ใช้ TRIM ตรวจชนิดข้อมูล และครอบด้วย IFNA
ได้ลำดับผิดโดยไม่มี Errorสาเหตุ: ลืมใส่ 0 จึงค้นแบบใกล้เคียงแก้: ใส่ 0 ทุกครั้งที่ค้นรหัสหรือชื่อ
#N/A ทั้งที่ค่าอยู่ในช่วงสาเหตุ: ใช้ -1 กับข้อมูลที่ไม่ได้เรียงจากมากไปน้อยแก้: เรียงข้อมูลให้ตรงกับ match_type หรือใช้ 0
INDEX ได้ค่าของแถวอื่นสาเหตุ: ช่วงของ MATCH กับ INDEX เริ่มคนละแถวแก้: ให้สองช่วงเริ่มและจบแถวเดียวกัน

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

MATCH คืนลำดับในช่วง ไม่ใช่เลขแถวของชีต ช่วงที่เริ่มแถว 5 ลำดับที่ 1 คือแถว 5
หาเลขคอลัมน์ให้ VLOOKUP: =VLOOKUP(I4,A5:E14,MATCH("ราคาขาย (บาท)",A4:E4,0),FALSE)
Excel 2021 ขึ้นไปมี XMATCH ค่าเริ่มต้นตรงทุกตัว ค้นจากล่างขึ้นบนได้ และค่าใกล้เคียงไม่ต้องเรียงข้อมูล

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

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

MATCH ใช้ได้ทุกเวอร์ชันที่ยังใช้กันอยู่ จึงไม่ต้องมีสูตรทางเลือก

เลือกฟังก์ชันให้ถูกงาน

ฟังก์ชันใช้เมื่อตัวอย่าง
MATCHหาลำดับของค่าในช่วง ทุกเวอร์ชัน=MATCH(I4,A5:A14,0)
XMATCHหาลำดับ ค่าเริ่มต้นตรงทุกตัว ค้นจากล่างขึ้นบนได้ (2021 ขึ้นไป)=XMATCH(I4,A5:A14)
INDEX + MATCHใช้ลำดับที่ได้ดึงค่าจากอีกคอลัมน์=INDEX(B5:B14,MATCH(I4,A5:A14,0))
COUNTIFแค่อยากรู้ว่ามีค่านี้หรือไม่ และมีกี่ครั้ง=COUNTIF(A5:A14,I4)

ใน Power BI ใช้อะไร

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

ไฟล์ฝึก MATCH

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

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

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

  1. ข้อ 1ลำดับที่ของรหัสในช่อง C7
  2. ข้อ 2ลำดับที่ของสินค้าชื่อในช่อง C8
  3. ข้อ 3หัวคอลัมน์ในช่อง C9 อยู่คอลัมน์ที่เท่าไรของหัวตาราง G5:K5
  4. ข้อ 4ราคาขายของรหัสในช่อง C10 ใช้ INDEX คู่กับ MATCH
  5. ข้อ 5ยอดสั่งซื้อในช่อง C11 อยู่ขั้นที่เท่าไรของตารางส่วนลด (G19:G23)

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

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

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

เปิดใน YouTube

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

1. =MATCH("P024",A5:A14,0) ได้ 7 หมายความว่าอย่างไร

2. ถ้าไม่ใส่ match_type MATCH จะค้นแบบใด

3. match_type = -1 ต้องเรียงข้อมูลอย่างไร

ไปต่อ

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

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

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