จะลองอธิบายดูนะครับ
1. จากสูตร
=IF(COUNTIF($B$5:$B5,$B5)>COUNTIF($J$5:$J$6,$B5),"",INDEX(K$5:K$6,SMALL(IF($J$5:$J$6=$B5,ROW($K$5:$K$6)-ROW($K$5)+1),COUNTIF($B$5:$B5,$B5))))
หมายความว่า ถ้าผลลัพธ์ของสูตร COUNTIF($B$5:$B5,$B5) มีค่ามากกว่าผลลัพธ์ของสูตร COUNTIF($J$5:$J$6,$B5) แ้ล้ว ให้แสดงค่าว่าง แต่หากว่าไม่มากกว่า ให้แสดงผลลัพธ์ของสูตร INDEX(K$5:K$6,SMALL(IF($J$5:$J$6=$B5,ROW($K$5:$K$6)-ROW($K$5)+1),COUNTIF($B$5:$B5,$B5)))
2. จากสูตร
INDEX(K$5:K$6,SMALL(IF($J$5:$J$6=$B5,ROW($K$5:$K$6)-ROW($K$5)+1),COUNTIF($B$5:$B5,$B5)))
หมายความว่าจากช่วง K$5:K$6 ให้แสดงข้อมูลในลำดับที่เป็นผลลัพธ์ของสูตร SMALL(IF($J$5:$J$6=$B5,ROW($K$5:$K$6)-ROW($K$5)+1),COUNTIF($B$5:$B5,$B5))
3. จากสูตร
SMALL(IF($J$5:$J$6=$B5,ROW($K$5:$K$6)-ROW($K$5)+1),COUNTIF($B$5:$B5,$B5))
หมายความว่าจากช่วงข้อมูลที่เป็นผลลัพธ์ของสูตร IF($J$5:$J$6=$B5,ROW($K$5:$K$6)-ROW($K$5)+1) ให้นำค่าที่น้อยที่สุดเป็นลำดับที่เป็นผลลัพธ์ของสูตร COUNTIF($B$5:$B5,$B5) มาแสดง (ค่าที่น้อยที่สุดเป็นลำดับที่ เช่น ค่าที่น้อยที่สุดเป็นลำดับที่ 1, ค่าที่น้อยที่สุดเป็นลำดับที่ 100 ฯลฯ)
4. จากสูตร
IF($J$5:$J$6=$B5,ROW($K$5:$K$6)-ROW($K$5)+1)
หมายความว่า ถ้าช่วงข้อมูล $J$5:$J$6 มีค่าเท่ากับค่าในเซลล์ $B5 แล้วให้แสดงผลลัพธ์ของสูตร ROW($K$5:$K$6)-ROW($K$5)+1
5. จากสูตร
ROW($K$5:$K$6)-ROW($K$5)+1
เป็นการแสดงค่าลำดับโดยเริ่มจาก 1 ไปจนเท่ากับจำนวนบรรทัดในช่วง $K$5:$K$6 ในที่นี้คือ 2 ค่า ซึ่งจะแสดงเป็น Array ให้เห็นเป็น {1,2} ลักษณะผลการคำนวณของสูตรนี้จะได้เป็นลำดับดังนี้
{5,6}-{5}+1 ผลลัพธ์ถัดมาจะได้เป็น {0,1}+1 และผลลัพธ์สุดท้ายจะได้เป็น {1,2}
ต้องค่อย ๆ ทำความเข้าใจครับ ฟังก์ชั่นต่าง ๆ สามารถศึกษาได้จากที่นี่ครับ
http://office.microsoft.com/th-th/excel ... 04211.aspx