สูตร Index เป็นสูตรทำหน้าที่ดึงค่าออกมาจากตารางที่กำหนดตามตำแหน่ง row และ column ที่ต้องการ เช่น ตามภาพตัวอย่างต่อไปนี้ =Index(Class1,3,2) จะดึงชื่อ c ออกมาให้เพราะอยู่ในตำแหน่ง row ที่ 3 ตัดกับ column ที่ 2 ภายในพื้นที่ตารางชื่อ Class1 หรือถ้าไม่ต้องการกำหนดตำแหน่ง row หรือ col ก็ให้กำหนดเลขตำแหน่งรายการที่ต้องการแทนเพียงค่าเดียว เช่น =Index(CustId1,3) จะดึงรหัส a003 ออกมาเพราะรหัสนี้มีตำแหน่งเป็นลำดับที่ 3 ในตารางชื่อ CustId1 (ทั้งนี้ CustId1 มีลักษณะเป็น Single Column จากเซลล์ B3:B7)
สูตร Index ยังมีโครงสร้างสูตรแบบพิเศษ ซึ่งช่วยเลือกตำแหน่งตารางที่ต้องการได้ทันทีโดยไม่จำเป็นต้องอาศัยสูตร If หรือ Choose เข้ามาช่วย เช่น
สูตรในเซลล์ C11 ใช้หาชื่อลูกค้า g ตามรหัส b002 ที่พิมพ์ลงไปในเซลล์ B11
=INDEX( (Class1,Class2,Class3), TrNum, 2, Class)
- ในสูตรนี้ พื้นที่ตารางส่วนของ (Class1,Class2,Class3) เป็น 3 ตารางที่ต้องการเลือก
- TrNum เป็นเลขที่ตำแหน่งรายการของรหัส b002 ที่พิมพ์ไว้ในเซลล์ B11 มาจากสูตร
=MATCH(B11, CHOOSE(Class, CustId1,CustId2,CustId3), 0) - เลข 2 คือ เลขชี้ตำแหน่ง column ของชื่อลูกค้า
- Class เป็นเลขที่ตารางซึ่งหามาจาก ClassTable ด้วยสูตร
=VLOOKUP(B11, ClassTable, 2) - CHOOSE(Class, CustId1,CustId2,CustId3) ทำหน้าที่เลือกตำแหน่งตารางรหัสลูกค้าตามเลขที่ของ Class
นอกจากนี้ถ้าสร้างสูตร Index แบบ Array จะทำหน้าที่หาตำแหน่งตารางทั้งหมดตามแนวนอนหรือแนวตั้งได้อีกด้วยโดยกำหนดเลขที่ row หรือ column ให้เท่ากับ 0 เช่น
=Index(Class1, 0, 3)
จะได้ค่าทุก row ของ column ที่ 3 คือ ยอด Amount ={10;20;30;40;50}
หรือ
=Index(Class1, 3, 0)
จะได้ค่าทุก column ของ row ที่ 3 คือ รหัส a003 ={"a003","c",30}