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

INDEX

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

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

INDEX คืออะไร

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

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

  • ค้นหาข้อมูลที่อยู่ซ้ายมือของคอลัมน์ที่ใช้ค้น ร่วมกับ MATCH
  • ดึงตัวเลขจากตารางสรุปสองมิติ เช่น ภาค × ไตรมาส
  • สร้างช่วงที่ปลายขยับตามค่าในเซลล์ เช่น ยอดสะสมถึงไตรมาสที่เลือก

รูปแบบสูตร

=INDEX(array, row_num, [column_num])

Argument แต่ละตัว

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

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

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

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

เลือกเลขแถวใน I4 และเลขคอลัมน์ใน I5 แล้ว INDEX ดึงค่าจากจุดตัดในช่วง B5:E9

I6
=INDEX(B5:E9,I4,I5)
แถวที่ (row_num) I4 = 2 → แถวที่ 2 ของ B5:E9 คือแถว 6 ของชีต (เหนือ)
แถวABCDEFG
4ภูมิภาคไตรมาส 1ไตรมาส 2ไตรมาส 3ไตรมาส 4
5กลาง47,908,48939,006,36340,634,13140,019,537
6เหนือ10,591,7108,796,32814,231,48116,411,520
7ตะวันออกเฉียงเหนือ19,149,34927,574,27120,534,35228,337,547
8ตะวันออก19,958,84718,782,79617,070,22520,390,443
9ใต้11,166,32320,785,9578,599,52020,939,128
10
11
12
13
14
15
16
17
18
19
B5:E9
ช่องกรอกและผลลัพธ์
ยอดขาย (บาท) I6
ขั้นตอนการคำนวณ (4)
คลิกตัวเลขหรือข้อความในตารางเพื่อแก้ค่า แล้วดูผลเปลี่ยนทันที · แก้สูตรได้ที่แถบสูตร หรือพิมพ์ = ในช่องว่าง
100%
ข้อมูลสมมติของสยามเฟรช ชุดเดียวกับชีต “1 จุดตัดแถวคอลัมน์” ในไฟล์ฝึก (ปี ค.ศ.)
ใช้ปุ่มลูกศรเลือกช่อง กด Enter หรือ F2 เพื่อแก้ พิมพ์ = เพื่อเขียนสูตร
  • อ่านสูตร: ใน B5:E9 ไปที่แถวที่ I4 และคอลัมน์ที่ I5 แล้วหยิบค่าตรงจุดตัด
  • ลองเปลี่ยนเลขแถวและคอลัมน์ แถว 2 คอลัมน์ 3 คือภาคเหนือ ไตรมาส 3 (ช่อง D6)
  • เลขแถวและคอลัมน์นับจากมุมซ้ายบนของ array (B5) ไม่ใช่จากแถว 1 ของชีต ถ้าเกินขนาดของ array จะได้ #REF!

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

  1. 1ดึงค่าจากจุดตัดของแถวและคอลัมน์ · เลือกเลขแถวใน I4 และเลขคอลัมน์ใน I5 แล้ว INDEX ดึงค่าจากจุดตัดในช่วง B5:E9
  2. 2ค้นสองทาง ภาค × ไตรมาส ด้วย INDEX + MATCH · MATCH ตัวแรกหาเลขแถวของภาค ตัวที่สองหาเลขคอลัมน์ของไตรมาส แล้ว INDEX ดึงค่าจากจุดตัด
  3. 3ค้นจากชื่อสินค้า แล้วดึงรหัสที่อยู่ซ้ายมือ · MATCH หาลำดับของชื่อสินค้าในคอลัมน์ B แล้ว INDEX ดึงรหัสจากคอลัมน์ A ซึ่ง VLOOKUP ทำไม่ได้
  4. 4INDEX ส่งช่วงให้ SUM: ยอดทั้งไตรมาสและยอดสะสม · row_num = 0 คือทุกแถว INDEX จึงส่งทั้งคอลัมน์ และ B5:INDEX(B5:E5,I4) คือช่วงที่ปลายขยับตามเลขไตรมาส

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

#REF!สาเหตุ: row_num หรือ column_num เกินขนาดของ arrayแก้: ตรวจเลขแถวและคอลัมน์ หรือขยายช่วง array
#N/Aสาเหตุ: MATCH ที่ส่งเลขแถวหรือคอลัมน์มาหาค่าไม่พบแก้: ตรวจค่าที่ค้นหา แล้วครอบทั้งสูตรด้วย IFNA
#VALUE!สาเหตุ: row_num หรือ column_num ติดลบ หรือเป็นข้อความที่ไม่ใช่ตัวเลขแก้: ใส่ตัวเลขตั้งแต่ 0 ขึ้นไป
ได้ค่าของแถวอื่นสาเหตุ: ช่วงของ INDEX กับ MATCH เริ่มคนละแถวแก้: ให้สองช่วงเริ่มและจบแถวเดียวกัน

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

INDEX + MATCH ใช้ได้ทุกเวอร์ชัน ค้นได้ทั้งซ้ายและขวา และสูตรไม่พังเมื่อแทรกคอลัมน์
ล็อกช่วงด้วย $ ก่อนลากสูตร เช่น =INDEX($A$5:$A$14,MATCH(I4,$B$5:$B$14,0))
Excel 2021 ขึ้นไปใช้ XMATCH แทน MATCH ได้ ค่าเริ่มต้นเป็นแบบตรงทุกตัว ไม่ต้องใส่ 0

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

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

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

เลือกวิธีให้ถูกงาน

วิธีใช้เมื่อตัวอย่าง
INDEXรู้เลขแถวและคอลัมน์แล้ว ต้องการค่าที่จุดตัด=INDEX(B5:E9,2,3)
INDEX + MATCHค้นหาได้ทั้งซ้ายและขวา ทุกเวอร์ชัน=INDEX(A5:A14,MATCH(I4,B5:B14,0))
XLOOKUPค้นหาด้วยสูตรที่สั้นกว่า (2021 ขึ้นไป)=XLOOKUP(I4,B5:B14,A5:A14)
VLOOKUPค้นในคอลัมน์แรก แล้วดึงคอลัมน์ทางขวาเท่านั้น=VLOOKUP(I4,A5:E14,4,FALSE)
CHOOSEเลือกจากรายการค่าที่พิมพ์ไว้ในสูตร=CHOOSE(2,"ต่ำ","กลาง","สูง")

ใน Power BI ใช้อะไร

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

งานดึงค่าใช้ความสัมพันธ์และ RELATED ส่วน INDEX ของ DAX เลือกแถวตามตำแหน่งในตารางที่เรียงตาม ORDERBY เช่น เดือนแรกหรือเดือนที่ขายดีที่สุด

ไฟล์ฝึก INDEX

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

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

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

  1. ข้อ 1ยอดในแถวที่ 5 คอลัมน์ที่ 1 ของตาราง H6:K10 (ภาคใต้ ไตรมาส 1)
  2. ข้อ 2ชื่อภาคในช่วง G6:G10 ลำดับที่ตามเลขในช่อง C8
  3. ข้อ 3ยอดไตรมาส 4 ของภาคในช่อง C9 โดยใช้ MATCH หาเลขแถว
  4. ข้อ 4ยอดไตรมาส 2 ของภาคในช่อง C10 หาทั้งเลขแถวและเลขคอลัมน์ด้วย MATCH
  5. ข้อ 5รวมยอดทุกภาคของไตรมาส 3 ด้วย SUM ครอบ INDEX (row_num = 0)

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

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

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

เปิดใน YouTube

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

1. =INDEX(B5:E9,2,3) ได้ค่าจากช่องใด

2. =SUM(INDEX(B5:E9,0,2)) รวมอะไร

3. ทำไม INDEX + MATCH ค้นย้อนซ้ายได้ แต่ VLOOKUP ทำไม่ได้

ไปต่อ

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

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

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