💡 การตัดเกรดที่มีเงื่อนไขหลาย ๆ ชั้นเราควรเลือกใช้ฟังก์ชั่นจำพวก Lookup มาใช้งาน เช่น Lookup, Vlookup เนื่องจากช่วยให้ลดความงุนงงสับสนลงไปได้
สำหรับการตัดเกรดด้วย If ตามเนื่้อหาด้านล่างนี้ เขียนขึ้นเพื่อลำดับการทำความเข้าใจกับการใช้ฟังก์ชั่น If เนื่องจากพบว่ามีคนจำนวนมากใช้ If ในลักษณะนี้แต่ยังไม่เข้าใจลักษณะการซ้อนกันของฟังก์ชั่น ทำให้ไม่ได้ผลลัพธ์ตามที่ต้องการ
💡 ไวยากรณ์ของ If
=If(Logical,[value_if_true],[value_if_false])
💡 แปลไวยากรณ์ได้ว่า
=If(เงื่อนไข,ผลลัพธ์ถ้าเงื่อนไขเป็นจริง,ผลลัพธ์ถ้าเงื่อนไขเป็นเท็จ)
💡 สิ่งที่ต้องรู้สำหรับการใช้งาน
- เกรดมีหลายเกรดต้องใช้ If ซ้อนกันหลายชั้น
- If สามารถซ้อนกันได้ 7 ชั่นและ 64 ชั้นใน Version 2003- และ 2007+ ตามลำดับ
- การคำนวณของสูตร If จะคิดจากซ้ายไปขวาถ้าเข้าเงือนไขใดแล้วจะหยุดการคำนวณแล้วแสดงผลลัพธ์ทันที ไม่คำนวณในเงื่อนไขที่เหลืออีกต่อไป
- จากข้อ 3 จึงจำเป็นอย่างยิ่งที่จะต้องเรียงเงื่อนไขตามลำดับความสำคัญก่อนหลังให้ดี ไม่เช่นนั้นสูตรจะให้ผลลัพธ์ที่ผิดพลาด
💡 ยกตัวอย่างโจทย์
- คะแนนจาก 0 ถึง 49 ได้เกรด 0
- คะแนนจาก 50 ถึง 55 ได้เกรด 1.0
- คะแนนจาก 56 ถึง 59 ได้เกรด 1.5
- คะแนนจาก 60 ถึง 65 ได้เกรด 2.0
- คะแนนจาก 66 ถึง 69 ได้เกรด 2.5
- คะแนนจาก 70 ถึง 75 ได้เกรด 3.0
- คะแนนจาก 76 ถึง 79 ได้เกรด 3.5
- คะแนนจาก 80 ถึง 100 ได้เกรด 4.0
จากโจทย์นี้ก่อนการใช้สูตร If มาลองเขียนเพื่อความเข้าใจก่อนว่าเงื่อนไขเป็นเช่นไร ซึ่งสามารถเขียนได้ 2 แบบ คือแบบน้อยไปมาก และมากไปน้อย
💡 ตัวอย่างแบบที่ 1 เรียงจากน้อยไปมาก
- ถ้าคะแนนน้อยกว่า 50 เป็นจริงแล้ว ให้แสดงเกรด 0.0 หากเป็นเท็จ ให้เป็นไปตามข้อ 2
- ถ้าคะแนนน้อยกว่า 55 เป็นจริงแล้ว ให้แสดงเกรด 1.0 หากเป็นเท็จ ให้เป็นไปตามข้อ 3
- ถ้าคะแนนน้อยกว่า 60 เป็นจริงแล้ว ให้แสดงเกรด 1.5 หากเป็นเท็จ ให้เป็นไปตามข้อ 4
- ถ้าคะแนนน้อยกว่า 65 เป็นจริงแล้ว ให้แสดงเกรด 2.0 หากเป็นเท็จ ให้เป็นไปตามข้อ 5
- ถ้าคะแนนน้อยกว่า 70 เป็นจริงแล้ว ให้แสดงเกรด 2.5 หากเป็นเท็จ ให้เป็นไปตามข้อ 6
- ถ้าคะแนนน้อยกว่า 75 เป็นจริงแล้ว ให้แสดงเกรด 3.0 หากเป็นเท็จ ให้เป็นไปตามข้อ 7
- ถ้าคะแนนน้อยกว่า 80 เป็นจริงแล้ว ให้แสดงเกรด 3.5 หากเป็นเท็จ ให้เป็นไปตามข้อ 8
- ให้แสดงเกรด 4
💡 ตัวอย่างแบบที่ 2 เรียงจากมากไปน้อย
- ถ้าคะแนนมากกว่า 79 เป็นจริงแล้ว ให้แสดงเกรด 4.0 หากเป็นเท็จ ให้เป็นไปตามข้อ 2
- ถ้าคะแนนมากกว่า 74 เป็นจริงแล้ว ให้แสดงเกรด 3.5 หากเป็นเท็จ ให้เป็นไปตามข้อ 3
- ถ้าคะแนนมากกว่า 69 เป็นจริงแล้ว ให้แสดงเกรด 3.0 หากเป็นเท็จ ให้เป็นไปตามข้อ 4
- ถ้าคะแนนมากกว่า 64 เป็นจริงแล้ว ให้แสดงเกรด 2.5 หากเป็นเท็จ ให้เป็นไปตามข้อ 5
- ถ้าคะแนนมากกว่า 59 เป็นจริงแล้ว ให้แสดงเกรด 2.0 หากเป็นเท็จ ให้เป็นไปตามข้อ 6
- ถ้าคะแนนมากกว่า 54 เป็นจริงแล้ว ให้แสดงเกรด 1.5 หากเป็นเท็จ ให้เป็นไปตามข้อ 7
- ถ้าคะแนนมากกว่า 49 เป็นจริงแล้ว ให้แสดงเกรด 1.0 หากเป็นเท็จ ให้เป็นไปตามข้อ 8
- ให้แสดงเกรด 0.0
💡 การเขียนสูตร If ตามแบบที่ 1 (เวลาอ่านให้เปลี่ยน If เป็น ถ้า)
=If(คะแนนน้อยกว่า 50, ให้แสดงเกรด 0, If(คะแนนน้อยกว่า 55, ให้แสดงเกรด 1.0, If(คะแนนน้อยกว่า 60, ให้แสดงเกรด 1.5, If(คะแนนน้อยกว่า 65, ให้แสดงเกรด 2.0, If(คะแนนน้อยกว่า 70, ให้แสดงเกรด 2.5, If(คะแนนน้อยกว่า 75, ให้แสดงเกรด 3.0, If(คะแนนน้อยกว่า 80,ให้แสดงเกรด 3.5, ให้แสดงเกรด 4)))))))
💡 การแทนค่าโดยการอ้างอิงเซลล์มาเป็น Argument (ส่วนประกอบ)
สมมุติเกรดอยู่ทีเซลล์ A1 เขียนสูตรที่ B1 โดยแทนค่าให้เป็น Argument ของ If ดังนี้
- แบบเรียงจากน้อยไปหามาก
=If(A1<50,0,if(A1<55,1,If(A1<60,1.5,if(A1<65,2,If(A1<70,2.5,
if(A1<75,3,If(A1<80,3.5,4)))))))
- แบบเรียงจากมากไปหาน้อย
=If(A1>79,4,if(A1>74,3.5,If(A1>69,3,if(A1>64,2.5,If(A1>59,2,
if(A1>54,1.5,If(A1>49,1,0)))))))
💡 หมายเหตุ
เงื่อนไขของ If ที่เป็นการเปรียบเทียบด้วยเครื่องหมาย = ในทุก ๆ เงื่อนไขไม่จำเป็นต้องเรียงเงื่อนไขจากน้อยไปมากหรือมากไปน้อยแต่อย่างใด
Revised: February 8, 2017 at 21:51