หน้าเว็บ

วันอาทิตย์ที่ 30 ธันวาคม พ.ศ. 2555

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

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

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

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

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

SNAGHTML8df38cc[4]

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

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

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

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

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

  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 แบบ คือแบบน้อยไปมาก และมากไปน้อย

Light bulb ตัวอย่างแบบที่ 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

Light bulb ตัวอย่างแบบที่ 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


Light bulb การเขียนสูตร 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)))))))
สมมุติเกรดอยู่ทีเซลล์ 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)))))))

Rainbow หมายเหตุ เงื่อนไขของ If เป็นการเปรียบเทียบด้วยเครื่องหมาย = ในทุก ๆ เงื่อนไขไม่จำเป็นต้องเรียงเงื่อนไขจากน้อยไปมากหรือมากไปน้อยแต่อย่างใด

ไม่มีความคิดเห็น: