INDEX
อัปเดต 24 ก.ย. 2569 · ตรวจ syntax และเวอร์ชันกับเอกสารของ Microsoft · ผลในตัวอย่างตรวจด้วยเครื่องมือคำนวณ 2 ชุด บางช่องใช้ผลจาก LibreOffice และตรงกับตัวคำนวณของหน้าเว็บ
INDEX คืออะไร
ดึงค่าจากช่วงข้อมูลตามเลขแถวและเลขคอลัมน์ที่ระบุ ใช้คู่กับ MATCH เพื่อค้นหาได้ทุกทิศทาง
ใช้เมื่อไหร่
- ค้นหาข้อมูลที่อยู่ซ้ายมือของคอลัมน์ที่ใช้ค้น ร่วมกับ MATCH
- ดึงตัวเลขจากตารางสรุปสองมิติ เช่น ภาค × ไตรมาส
- สร้างช่วงที่ปลายขยับตามค่าในเซลล์ เช่น ยอดสะสมถึงไตรมาสที่เลือก
รูปแบบสูตร
Argument แต่ละตัว
ชี้ที่ argument ในรูปแบบสูตรด้านบนเพื่อไฮไลต์แถวนั้น
| Argument | จำเป็นไหม | ความหมาย |
|---|---|---|
| array | จำเป็น | ช่วงหรือ array ที่ต้องการดึงค่า |
| row_num | จำเป็น | ลำดับแถวใน array นับแถวแรกเป็น 1 · 0 = ทุกแถว (ได้ทั้งคอลัมน์) |
| [column_num] | ไม่บังคับ | ลำดับคอลัมน์ใน array · 0 = ทุกคอลัมน์ (ได้ทั้งแถว) · ไม่ต้องใส่ถ้า array มีคอลัมน์เดียว |
ลองเลย: ตัวอย่างที่เปลี่ยนค่าได้
ข้อมูลชุดเดียวกับไฟล์ฝึก เปลี่ยนค่าในช่องกรอก หรือคลิกตัวเลขในตารางเพื่อแก้ แล้วดูผลลัพธ์เปลี่ยนทันที กดถัดไปเพื่อดูว่า Excel คิดทีละขั้นอย่างไร สีของช่วงในตารางตรงกับสีในสูตร
เลือกเลขแถวใน I4 และเลขคอลัมน์ใน I5 แล้ว INDEX ดึงค่าจากจุดตัดในช่วง B5:E9
| แถว | A | B | C | D | E | F | G |
|---|---|---|---|---|---|---|---|
| 4 | ภูมิภาค | ไตรมาส 1 | ไตรมาส 2 | ไตรมาส 3 | ไตรมาส 4 | ||
| 5 | กลาง | 47,908,489 | 39,006,363 | 40,634,131 | 40,019,537 | ||
| 6 | เหนือ | 10,591,710 | 8,796,328 | 14,231,481 | 16,411,520 | ||
| 7 | ตะวันออกเฉียงเหนือ | 19,149,349 | 27,574,271 | 20,534,352 | 28,337,547 | ||
| 8 | ตะวันออก | 19,958,847 | 18,782,796 | 17,070,225 | 20,390,443 | ||
| 9 | ใต้ | 11,166,323 | 20,785,957 | 8,599,520 | 20,939,128 | ||
| 10 | |||||||
| 11 | |||||||
| 12 | |||||||
| 13 | |||||||
| 14 | |||||||
| 15 | |||||||
| 16 | |||||||
| 17 | |||||||
| 18 | |||||||
| 19 |
ขั้นตอนการคำนวณ (4)
- อ่านสูตร: ใน B5:E9 ไปที่แถวที่ I4 และคอลัมน์ที่ I5 แล้วหยิบค่าตรงจุดตัด
- ลองเปลี่ยนเลขแถวและคอลัมน์ แถว 2 คอลัมน์ 3 คือภาคเหนือ ไตรมาส 3 (ช่อง D6)
- เลขแถวและคอลัมน์นับจากมุมซ้ายบนของ array (B5) ไม่ใช่จากแถว 1 ของชีต ถ้าเกินขนาดของ array จะได้ #REF!
ตัวอย่างทั้งหมด 4 แบบ
- 1ดึงค่าจากจุดตัดของแถวและคอลัมน์ · เลือกเลขแถวใน I4 และเลขคอลัมน์ใน I5 แล้ว INDEX ดึงค่าจากจุดตัดในช่วง B5:E9
- 2ค้นสองทาง ภาค × ไตรมาส ด้วย INDEX + MATCH · MATCH ตัวแรกหาเลขแถวของภาค ตัวที่สองหาเลขคอลัมน์ของไตรมาส แล้ว INDEX ดึงค่าจากจุดตัด
- 3ค้นจากชื่อสินค้า แล้วดึงรหัสที่อยู่ซ้ายมือ · MATCH หาลำดับของชื่อสินค้าในคอลัมน์ B แล้ว INDEX ดึงรหัสจากคอลัมน์ A ซึ่ง VLOOKUP ทำไม่ได้
- 4INDEX ส่งช่วงให้ SUM: ยอดทั้งไตรมาสและยอดสะสม · row_num = 0 คือทุกแถว INDEX จึงส่งทั้งคอลัมน์ และ B5:INDEX(B5:E5,I4) คือช่วงที่ปลายขยับตามเลขไตรมาส
ข้อผิดพลาดที่พบบ่อย
เคล็ดลับจากห้องเรียน
ใช้กับ Excel ของคุณได้ไหม
| เวอร์ชัน | Excel 2016 | Excel 2019 | Excel 2021 | Excel 2024 | Microsoft 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 ใช้อะไร
งานดึงค่าใช้ความสัมพันธ์และ RELATED ส่วน INDEX ของ DAX เลือกแถวตามตำแหน่งในตารางที่เรียงตาม ORDERBY เช่น เดือนแรกหรือเดือนที่ขายดีที่สุด
ไฟล์ฝึก INDEX
9Expert-INDEX-Practice-v1.2.xlsx
โจทย์ในชีตแบบฝึกหัด
- ข้อ 1ยอดในแถวที่ 5 คอลัมน์ที่ 1 ของตาราง H6:K10 (ภาคใต้ ไตรมาส 1)
- ข้อ 2ชื่อภาคในช่วง G6:G10 ลำดับที่ตามเลขในช่อง C8
- ข้อ 3ยอดไตรมาส 4 ของภาคในช่อง C9 โดยใช้ MATCH หาเลขแถว
- ข้อ 4ยอดไตรมาส 2 ของภาคในช่อง C10 หาทั้งเลขแถวและเลขคอลัมน์ด้วย MATCH
- ข้อ 5รวมยอดทุกภาคของไตรมาส 3 ด้วย SUM ครอบ INDEX (row_num = 0)
วิดีโอประกอบ
ในเว็บจริงจะฝังคลิปพร้อมตั้งเวลาเริ่มตรงหัวข้อนี้ ในต้นแบบเปิดผลค้นหาในช่องแทน
เปิดใน YouTubeแบบทดสอบ 3 ข้อ
1. =INDEX(B5:E9,2,3) ได้ค่าจากช่องใด
นับจาก B5: แถวที่ 2 คือแถว 6 คอลัมน์ที่ 3 คือคอลัมน์ D
2. =SUM(INDEX(B5:E9,0,2)) รวมอะไร
row_num = 0 หมายถึงทุกแถว INDEX จึงส่งทั้งคอลัมน์ที่ 2 ให้ SUM
3. ทำไม INDEX + MATCH ค้นย้อนซ้ายได้ แต่ VLOOKUP ทำไม่ได้
VLOOKUP ค้นในคอลัมน์แรกของตารางเสมอ ส่วน INDEX + MATCH กำหนดสองช่วงแยกกันได้
ไปต่อ
ต่อยอดใน Microsoft Excel Advanced: สูตรสรุปผลแบบมีเงื่อนไข สูตรสืบค้นข้อมูล สูตรใหม่ใน Microsoft 365 และการจัดการ Error (2 วัน)