วิธีใช้สูตร Index กำหนดขอบเขตตาราง

June 28, 2018

สูตร 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)

image017

สูตร 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}