INDEX
ฟังก์ชั่น INDEX จะส่งค่ากลับมาเป็นค่าในเซลล์ที่อยู่ ณ ตำแหน่งตัดกันของแถวและคอลัมน์ที่ระบุภายในคอลเลกชั่นของเซลล์หรือจากอาร์เรย์ที่ส่งกลับมาโดยฟังก์ชั่นอาร์เรย์
INDEX(ช่วง, ดัชนีของแถว, ดัชนีของคอลัมน์, ดัชนีพื้นที่)
ช่วง: คอลเลกชั่นของเซลล์ ช่วงอาจเป็นคอลเลกชั่นเดียวหรือมากกว่าหนึ่งคอลเลกชั่น โดยแต่ละคอลเลกชั่นคือช่วงเดี่ยวของเซลล์ ถ้ามีการระบุคอลเลกชั่นมากกว่าหนึ่งชุด คอลเลกชั่นเหล่านั้นจะถูกแยกด้วยเครื่องหมายจุลภาคและอยู่ในชุดเครื่องหมายวงเล็บเพิ่มเติม ตัวอย่างเช่น ((B1:B5,C10:C12)) การอ้างอิงเซลล์โดยช่วงสามารถประกอบด้วยค่าใดๆ ก็ได้
ดัชนีของแถว: ค่าตัวเลขที่แทนถึงเลขแถวของค่าที่จะถูกส่งกลับมา ดัชนีของแถวต้องมากกว่าหรือเท่ากับ 0 และน้อยกว่าหรือเท่ากับจำนวนแถวใน ช่วง ถ้า ดัชนีของแถว มีค่าเป็น 0 INDEX จะส่งค่ากลับมาเป็นอาร์เรย์สำหรับทั้งคอลัมน์ดัชนีของคอลัมน์ ซึ่งต้องมากกว่า 0 และน้อยกว่าหรือเท่ากับจำนวนของคอลัมน์ใน ช่วง
ดัชนีของคอลัมน์: ค่าตัวเลขทางเลือกที่ใช้ระบุเลขคอลัมน์ของค่าที่จะส่งกลับมา ดัชนีของคอลัมน์ต้องมากกว่าหรือเท่ากับ 0 และน้อยกว่าหรือเท่ากับจำนวนแถวใน ช่วง ถ้า ดัชนีของคอลัมน์ มีค่าเป็น 0 INDEX จะส่งค่ากลับมาเป็นอาร์เรย์สำหรับทั้งแถว ดัชนีของแถว ซึ่งต้องมากกว่า 0 และน้อยกว่าหรือเท่ากับจำนวนของแถวใน ช่วง
ดัชนีพื้นที่: ค่าตัวเลขทางเลือกที่ใช้ระบุเลขพื้นที่ของค่าที่จะส่งกลับมา ดัชนีของพื้นที่ต้องมากกว่าหรือเท่ากับ 1 และน้อยกว่าหรือเท่ากับจำนวนแถวใน ช่วง ถ้าดัชนีของพื้นที่ถูกเว้นว่าง จะใช้ 1
หมายเหตุ
INDEX สามารถส่งค่า ณ ตำแหน่งที่ตัดกันที่ระบุของคอลเลกชั่นสองมิติของค่านั้นๆ กลับมา ตัวอย่างเช่น สมมติให้เซลล์ B1:D8 ประกอบด้วยค่าใดๆ
=INDEX(B1:D8, 2, 3) จะส่งค่าที่พบในตำแหน่งที่ตัดกันของแถวที่สองและคอลัมน์ที่สาม (คือค่าในเซลล์ D3)
พื้นที่ที่ต้องการมากกว่าหนึ่งตำแหน่ง สามารถระบุได้โดยกำหนดช่วงลงไปในเครื่องหมายของวงเล็บ ตัวอย่างเช่น:
=INDEX((B2:D5, B7:D10), 2, 3, 2) จะส่งค่าที่พบในตำแหน่งที่ตัดกันของแถวที่สองและคอลัมน์ที่สามในพื้นที่ที่สอง (คือค่าในเซลล์ D8)
INDEX สามารถส่งอาร์เรย์แถวที่หนึ่งหรือคอลัมน์ที่หนึ่งสำหรับฟังก์ชั่นอื่นๆ ได้ ในรูปแบบนี้ จำเป็นต้องระบุดัชนีของแถวหรือดัชนีของคอลัมน์อย่างใดอย่างหนึ่ง แต่อาร์กิวเมนต์อื่นๆ อาจเว้นว่างได้ ตัวอย่างเช่น:
=SUM(INDEX(B2:D5, , 3)) จะส่งค่าผลรวมในคอลัมน์ที่สามกลับมา (เซลล์ที่ D2 ถึง D5)
=AVERAGE(INDEX(B2:D5, 2)) จะส่งค่าเฉลี่ยในแถวที่สองกลับมา (เซลล์ที่ B3 ถึง D3)
INDEX สามารถส่งค่ากลับมาเป็น (หรือ “อ่าน”) ค่าจากอาร์เรย์ที่ส่งกลับมาโดยฟังก์ชั่นอาร์เรย์ ฟังก์ชั่น FREQUENCY จะส่งค่ากลับเป็นอาร์เรย์ ซึ่งขึ้นอยู่กับช่วงที่ระบุ
=INDEX(FREQUENCY($A$1:$F$5, $B$8:$E$8), 1) ค่าแรกที่จะถูกส่งกลับมานั้นอยู่ในอาร์เรย์ที่ส่งค่ากลับมาโดยการกำหนดของฟังก์ชั่น FREQUENCY
เช่นเดียวกันเมื่อ =INDEX(FREQUENCY($A$1:$F$5, $B$8:$E$8), 5) จะส่งค่าลำดับที่ 5 ของอาร์เรย์กลับมา
ตำแหน่งในอาร์เรย์จะถูกระบุโดยการบ่งบอกจำนวนของแถวลงทางด้านล่างและจำนวนของคอลัมน์ไปทางขวาโดยสัมพันธ์กับเซลล์ที่อยู่ในมุมบนซ้ายของอาร์เรย์
ยกเว้นเมื่อ INDEX ถูกระบุไว้เหมือนที่แสดงในกรณีที่สามทางด้านบน ดัชนีของแถวจะไม่สามารถเว้นว่างได้ และถ้าดัชนีของคอลัมน์ถูกเว้นว่าง จะอนุมานว่าเป็น 1
ตัวอย่างเช่น |
---|
กำหนดให้ตารางเป็นดังนี้: |
A | B | C | D | |
---|---|---|---|---|
1 | 1 | 11 | 21 | |
2 | 2 | 12 | 22 | |
3 | 3 | 13 | 23 | |
4 | 4 | 14 | 24 | |
5 | a | b | c | |
6 | d | e | f | |
7 | g | h | i | |
8 | j | k | l |
=INDEX(B1:D4, 2, 3) จะส่งค่ากลับมาเป็น 22 ซึ่งเป็นค่าในแถวที่สอง (ดัชนีของแถว คือ 2) และคอลัมน์ที่สาม (ดัชนีของคอลัมน์ คือ 3) ของคอลเลกชั่นที่ระบุ (ช่วง คือ B1:D4 ดังนั้นค่าที่อยู่ในเซลล์ D2 คือผลลัพธ์) =INDEX((B1:D4, B5:D8), 2, 3, 2) จะส่งค่ากลับมาเป็น “f” ซึ่งเป็นค่าในแถวที่สอง (ดัชนีของแถว คือ 2) และคอลัมน์ที่สาม (ดัชนีของคอลัมน์ คือ 3) ของพื้นที่ที่สอง (ดัชนีพื้นที่ คือ 2) ซึ่งเป็นค่าของเซลล์ D6 =SUM(INDEX(B1:D4, , 3)) จะส่งค่ากลับมาเป็น 90 ซึ่งเป็นค่าผลรวมในคอลัมน์ที่สาม (เซลล์ที่ D1 ถึง D4) =AVERAGE(INDEX(B1:D4, 2)) จะส่งค่ากลับมาเป็น 12 ซึ่งเป็นค่าเฉลี่ยในแถวที่สอง (เซลล์ที่ B2 ถึง D2) |