ฟังก์ชั่น If กับการตัดเกรด

💡 การตัดเกรดที่มีเงื่อนไขหลาย ๆ ชั้นเราควรเลือกใช้ฟังก์ชั่นจำพวก Lookup มาใช้งาน เช่น Lookup, Vlookup เนื่องจากช่วยให้ลดความงุนงงสับสนลงไปได้

สำหรับการตัดเกรดด้วย If ตามเนื่้อหาด้านล่างนี้ เขียนขึ้นเพื่อลำดับการทำความเข้าใจกับการใช้ฟังก์ชั่น If เนื่องจากพบว่ามีคนจำนวนมากใช้ If ในลักษณะนี้แต่ยังไม่เข้าใจลักษณะการซ้อนกันของฟังก์ชั่น ทำให้ไม่ได้ผลลัพธ์ตามที่ต้องการ

💡 ไวยากรณ์ของ If

=If(Logical,[value_if_true],[value_if_false])

💡 แปลไวยากรณ์ได้ว่า

=If(เงื่อนไข,ผลลัพธ์ถ้าเงื่อนไขเป็นจริง,ผลลัพธ์ถ้าเงื่อนไขเป็นเท็จ)

💡 สิ่งที่ต้องรู้สำหรับการใช้งาน

  1. เกรดมีหลายเกรดต้องใช้ If ซ้อนกันหลายชั้น
  2. If สามารถซ้อนกันได้ 7 ชั่นและ 64 ชั้นใน Version 2003- และ 2007+ ตามลำดับ
  3. การคำนวณของสูตร If จะคิดจากซ้ายไปขวาถ้าเข้าเงือนไขใดแล้วจะหยุดการคำนวณแล้วแสดงผลลัพธ์ทันที ไม่คำนวณในเงื่อนไขที่เหลืออีกต่อไป
  4. จากข้อ 3 จึงจำเป็นอย่างยิ่งที่จะต้องเรียงเงื่อนไขตามลำดับความสำคัญก่อนหลังให้ดี ไม่เช่นนั้นสูตรจะให้ผลลัพธ์ที่ผิดพลาด

💡 ยกตัวอย่างโจทย์

  1. คะแนนจาก 0 ถึง 49 ได้เกรด 0
  2. คะแนนจาก 50 ถึง 55 ได้เกรด 1.0
  3. คะแนนจาก 56 ถึง 59 ได้เกรด 1.5
  4. คะแนนจาก 60 ถึง 65 ได้เกรด 2.0
  5. คะแนนจาก 66 ถึง 69 ได้เกรด 2.5
  6. คะแนนจาก 70 ถึง 75 ได้เกรด 3.0
  7. คะแนนจาก 76 ถึง 79 ได้เกรด 3.5
  8. คะแนนจาก 80 ถึง 100 ได้เกรด 4.0

จากโจทย์นี้ก่อนการใช้สูตร If มาลองเขียนเพื่อความเข้าใจก่อนว่าเงื่อนไขเป็นเช่นไร ซึ่งสามารถเขียนได้ 2 แบบ คือแบบน้อยไปมาก และมากไปน้อย

💡 ตัวอย่างแบบที่ 1 เรียงจากน้อยไปมาก

  1. ถ้าคะแนนน้อยกว่า 50 เป็นจริงแล้ว ให้แสดงเกรด 0.0 หากเป็นเท็จ ให้เป็นไปตามข้อ 2
  2. ถ้าคะแนนน้อยกว่า 55 เป็นจริงแล้ว ให้แสดงเกรด 1.0 หากเป็นเท็จ ให้เป็นไปตามข้อ 3
  3. ถ้าคะแนนน้อยกว่า 60 เป็นจริงแล้ว ให้แสดงเกรด 1.5 หากเป็นเท็จ ให้เป็นไปตามข้อ 4
  4. ถ้าคะแนนน้อยกว่า 65 เป็นจริงแล้ว ให้แสดงเกรด 2.0 หากเป็นเท็จ ให้เป็นไปตามข้อ 5
  5. ถ้าคะแนนน้อยกว่า 70 เป็นจริงแล้ว ให้แสดงเกรด 2.5 หากเป็นเท็จ ให้เป็นไปตามข้อ 6
  6. ถ้าคะแนนน้อยกว่า 75 เป็นจริงแล้ว ให้แสดงเกรด 3.0 หากเป็นเท็จ ให้เป็นไปตามข้อ 7
  7. ถ้าคะแนนน้อยกว่า 80 เป็นจริงแล้ว ให้แสดงเกรด 3.5 หากเป็นเท็จ ให้เป็นไปตามข้อ 8
  8. ให้แสดงเกรด 4

💡 ตัวอย่างแบบที่ 2 เรียงจากมากไปน้อย

  1. ถ้าคะแนนมากกว่า 79 เป็นจริงแล้ว ให้แสดงเกรด 4.0 หากเป็นเท็จ ให้เป็นไปตามข้อ 2
  2. ถ้าคะแนนมากกว่า 74 เป็นจริงแล้ว ให้แสดงเกรด 3.5 หากเป็นเท็จ ให้เป็นไปตามข้อ 3
  3. ถ้าคะแนนมากกว่า 69 เป็นจริงแล้ว ให้แสดงเกรด 3.0 หากเป็นเท็จ ให้เป็นไปตามข้อ 4
  4. ถ้าคะแนนมากกว่า 64 เป็นจริงแล้ว ให้แสดงเกรด 2.5 หากเป็นเท็จ ให้เป็นไปตามข้อ 5
  5. ถ้าคะแนนมากกว่า 59 เป็นจริงแล้ว ให้แสดงเกรด 2.0 หากเป็นเท็จ ให้เป็นไปตามข้อ 6
  6. ถ้าคะแนนมากกว่า 54 เป็นจริงแล้ว ให้แสดงเกรด 1.5 หากเป็นเท็จ ให้เป็นไปตามข้อ 7
  7. ถ้าคะแนนมากกว่า 49 เป็นจริงแล้ว ให้แสดงเกรด 1.0 หากเป็นเท็จ ให้เป็นไปตามข้อ 8
  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 ดังนี้

  1. แบบเรียงจากน้อยไปหามาก
    =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)))))))

  2. แบบเรียงจากมากไปหาน้อย
    =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

Scroll to Top