
จากโจทย์ด้านล่าง
ค้นหาข้อมูลโดยใช้ รหัสบุคคลและปีงบประมาณเป็นเงื่อนไขในการค้นหา เมื่อเปลี่ยนปีงบประมาณหรือรหัสบุคคลอย่างใดอย่างหนึ่งให้ข้อมูลที่แสดงมีการเปลี่ยนแปลงตามเงื่อนไข ถ้าไม่มีก็ให้แสดงค่าว่าง แต่ปัจจุบันทำได้เพียงเงื่อนไขเดียว คำตอบที่ต้องการคือเมื่อเลือกรหัสบุคคลและปีก็ให้แสดงค่าตามตัวอย่างนี้ครับ
และตัวอย่างสูตรทีใช้ดึงข้อมูลที่ C12 คือ
=IF(ROWS($C$12:C12)>$F$7,"",INDEX(Database!A$5:A$11,SMALL(IF(Database!$B$5:$B$11=$F$5,ROW(Database!$A$5:$A$11)-ROW(Database!$B$5)+1),ROWS($C$12:C12))))
ซึ่งเป็นสูตรที่ใช้เงื่อนไขคือรหัสบุคคลอย่างเดียวไม่ได้ใช้ปีมาเป็นเงื่อนไขด้วย หากในชีท Database มีหลายปีจะทำให้ผลลัพธ์ไม่ถูกต้อง ดังนั้น ควรปรับสูตรที่ C12 โดยเพิ่มเงื่อนไขที่เป็นปีเข้าไปด้วย จะได้เป็น
=IF(ROWS($C$12:C12)>$F$7,"",INDEX(Database!A$5:A$11,SMALL(IF(Database!$B$5:$B$11=$F$5,
IF(Database!$A$4:$A$10=$F$6,ROW(Database!$A$5:$A$11)-ROW(Database!$B$5)+1)),ROWS($C$12:C12))))
นอกจากนี้ที่ B12 ควรปรับสูตรเดิมคือ
=IF(C12<>"",(
ROW()-11)*(NOT(ISBLANK(C12))),"")
เป็น
=IF(ROWS(B$12:B12)>$F$7,"",ROWS(B$12:B12))
Enter
ทั้งนี้เพื่อความยืดหยุ่น สำหรับการใช้ Row() แล้วลบด้วยบรรทัดก่อนหน้าจะมีปัญหาได้หากมีการลบหรือแทรกบรรทัด ต้องคอยแก้สูตรอยู่เรื่อยไป