ปกติเราใช้ Function กลุ่ม Lookup ในการดึงข้อมูล เช่น Index ,Match ,Vlookup แต่ข้อจำกัดของ Function เหล่านี้ คือ จะดึงได้แค่ 1 ค่า เฉพาะค่าแรกที่เจอเท่านั้น อ้าว แล้วถ้าค่าที่ต้องการมีมากกว่า 1 ค่าละจะทำอย่างไร อันนี้ก็แก้ด้วยการเขียน Function แบบ Array ส่วนจะเขียนอย่างไร ก็ลองดูที่ตัวอย่างนะ
ถ้าต้องการหาว่า Amount มากสุดคือใคร ก็หาได้ดังนี้
=INDEX(A:A,MATCH(B12,E:E,0))
นำค่า Max ไปหาเลขแถวด้วย Fx Match
นำเลขแถวไปหาข้อมูลด้วย Fx Index
*ถ้ามี > 1 ค่า จะเจอเฉพาะค่าแรก
แต่ถ้าค่ามากสุดมีมากกว่า 1 คนล่ะ ก็ต้องเขียนแบบนี้
=INDEX(B:B,SMALL(IF(E2:E9=$E$12,ROW(E2:E9),””),G12))
นำ If มาเขียนเป็น Fx แบบ Array(ชุด) ตั้งแต่ E2:E9 เพื่อดึงค่าแถวของ E2:E9
ครอบด้วย Fx Small เพื่อดึงค่าที่ได้ตามลำดับของ K แล้วนำดึงค่าด้วย Fx Index
*ต้องกด Ctrl+Shift+Enter เพื่อให้เป็น Fx แบบ Array สังเกตจะมี {} ครอบ
อีกสักตัวอย่าง