apichart2007 wrote:อยากได้คำอธิบายครับ
เซลล์ E15=IF(ROWS(E$15:E15)>$I$12,"",INDEX(A$4:A$10,SMALL(IF($E$4:$E$10=$J$3,IF($F$4:$F$10=$J$4,ROW($A$4:$A$10)-ROW($A$4)+1)),ROWS(E$15:E15))))
โดยเฉพาะช่วงที่ระบายสีตั้งแต่ SMALL(IF($E$4:$E$10=$J$3,IF($F$4:$F$10=$J$4,ROW($A$4:$A$10)-ROW($A$4)+1)),ROWS(E$15:E15))))
ขอบคุณครับ
ตามสูตรนี้สูตรนอกสุดคือ Small เป็นการหาค่าที่น้อยที่สุดตามลำดับที่กำหนด ซึ่งลำดับที่กำหนดคือ ROWS(E$15:E15) ซึ่งมีผลลัพธ์เป็น 1 หมายความว่าค่าที่น้อยที่สุดเป็นลำดับที่ 1
หากลากลงไปอีกบรรทัดจะได้เป็น ROWS(E$15:E16) มีผลลัพธ์เป็น 2 นั่นหมายความว่าให้ค่าน้อยที่สุดเป็นลำดับที่ 2
===================================================
การหาค่าน้อยที่สุดตามสูตร SMALL(IF($E$4:$E$10=$J$3,IF($F$4:$F$10=$J$4,ROW($A$4:$A$10)-ROW($A$4)+1)),ROWS(E$15:E15)))) เป็นการหาค่าน้อยที่สุดตามเงื่อนไข 2 เงื่อนไข
1. $E$4:$E$10=$J$3
2. $F$4:$F$10=$J$4
หากเข้าทั้งสอง 2 เงื่อนไขด้านบนแล้วจะให้ผลลัพธ์เป็น True ไม่เข้าเงื่อนไขจะให้ผลลัพธ์เป็น False
การแกะสูตรสามารถลากเมาส์คลุมช่วงข้อมูลที่ต้องการทดสอบแล้วกดปุ่ม F9 เช่น ลากคลุม
$E$4:$E$10=$J$3 แล้วกดปุ่ม
F9 แล้วสังเกตดูผล
A. กรณีผลลัพธ์เป็น True ให้แสดงหมายเลขลำดับ ซึ่งสูตรที่แสดงหมายเลขลำดับคือ ROW($A$4:$A$10)-ROW($A$4)+1 ซึ่งจะให้ผลลัพธ์เป็น Array เริ่มด้วย 1 เช่น {1,2,3,4,5,6,7}
B. กรณีผลลัพธ์เป็น False ค่าเลขลำดับจะกลายเป็น False
จาก A และ B หากมีทั้งเข้าเงื่อนไขและไม่เข้าเงื่อนไข จะทำให้หมายเลขลำดับมีโอกาสเป็นหมายเลขลำดับและเป็นค่า False เช่น {1,False,3,4,False,6,False} นั่นหมายความว่า เข้าเงื่อนไขแค่ 4 ลำดับ คือลำดับที่ 1, 3, 4, 6 ส่วนที่เหลือไม่เข้าเงื่อนไขจึงกลายเป็นค่า False ผลลัพธ์ที่ได้จะนำไปใช้ในสูตร Small
กรณีที่ส่วนประกอบที่สองของ Small เป็น ROWS(E$15:E17) ซึ่งมีค่าเท่ากับ 3 หมายความว่าให้นำค่าที่น้อยที่สุดเป็นลำดับที่ 3 มาแสดง
จะเห็นว่าจาก {1,False,3,4,False,6,False} ค่าที่น้อยที่สุดเป็นอันดับ 3 คือ 4 เพราะฉะนั้นผลลัพธ์จากสูตร Small จะได้ 4
Note: สูตร Array ค่อนข้างยากต่อการทำความเข้าใจต้องค่อย ๆ ศึกษา การแกะสูตรโดยการคลุมช่วงข้อมูลที่ต้องการแล้วกดแป้น F9 จะทำให้ทำความเข้าใจได้ง่ายขึ้น และก่อนแกะสูตรควรทำสูตรให้ง่ายโดยกำหนดให้มีช่วงข้อมูลน้อย ๆ ยกตัวอย่าง ช่วงข้อมูล A1:A5 จะแกะสูตรง่ายกว่า A1:A500