วันเสาร์ที่ 2 กรกฎาคม พ.ศ. 2554

การใช้ IF

เงื่อนไขหนึ่งซึ่งใช้กันบ่อยครั้ง ได้แก่ การควบคุมค่าที่คำนวณได้ไม่ให้ต่ำกว่าค่าที่กำหนด หรือห้ามเกินกว่าค่าสูงสุดที่กำหนดไว้ อาจกำหนดเป็นช่วงในเงื่อนไขของอัตราภาษี หรือใช้ในการคำนวณต้นทุนขาย หรือใช้กันแบบง่ายๆ เช่น ห้ามต่ำกว่า 0 หรือ ห้ามเกินกว่า 0 เป็นต้น ถ้าคิดจะใช้สูตร If ต้องเขียนสูตรดังนี้
กรณีห้ามนำค่าที่ต่ำกว่า 0 ในเซลล์ A1 ไปใช้
=If( A1<=0, 0, A1)
กรณีห้ามนำค่าที่เกินกว่า 100 ในเซลล์ A1 ไปใช้
=If( A1>=100, 100, A1)
แทนที่จะใช้สูตร If ซึ่งต้องเสียเวลากำหนดทั้งเงื่อนไขและผลลัพธ์ที่ต้องการซ้ำลงไปในสูตร If ให้เปลี่ยนมาใช้สูตร Max หรือ Min แทน โดยให้ยึดหลักว่า
ถ้าต้องการควบคุมค่า ไม่ให้ต่ำกว่า ให้ใช้สูตร Max
ถ้าต้องการควบคุมค่า ไม่ให้สูงกว่า ให้ใช้สูตร Min
จำง่ายๆว่า ให้ใช้สูตรที่ตรงกันข้ามกับทิศทางของการควบคุม ทิศต่ำกลับใช้ Max ส่วนทิศสูงกลับใช้สูตร Min
กรณีห้ามนำค่าที่ต่ำกว่า 0 ในเซลล์ A1 ไปใช้
=Max(0, A1)
กรณีห้ามนำค่าที่เกินกว่า 100 ในเซลล์ A1 ไปใช้
=Min(100, A1)
นอกจากนี้ยังสามารถใช้สูตรคูณมาบวกกันธรรมดา คำนวณได้คำตอบแบบเดียวกันได้อีก
กรณีห้ามนำค่าที่ต่ำกว่า 0 ในเซลล์ A1 ไปใช้
=(A1<=0)*0 + (A1>0)*A1
กรณีห้ามนำค่าที่เกินกว่า 100 ในเซลล์ A1 ไปใช้
=(A1>100)*0 +(A1<=100)*100
สูตรคำนวณแบบนี้ใช้หลักว่า เมื่อนำค่ามาตรวจสอบเงื่อนไขใส่ไว้ในวงเล็บ (โดยไม่จำเป็นต้องอาศัยสูตร If) ถ้าเงื่อนไขเป็นจริง เมื่อนำไปคำนวณต่อ Excel จะถือว่ามีค่าเท่ากับ 1 แต่ถ้าเงื่อนไขเป็นเท็จ เมื่อนำไปคำนวณต่อ Excel จะถือว่ามีค่าเท่ากับ 0
แบบสูตรจะดูว่ายาวกว่าสูตร If Max หรือ Min ก็ตาม แต่ถ้ามีเงื่อนไขซับซ้อนมากขึ้น จะกลายเป็นสูตรที่สั้นกว่า เช่น หากต้องการตรวจสอบว่า ถ้า A1 มีค่าเป็นตัวอักษร A, B, C, D, E, F, G, H, I, J, K, L, หรือ M แล้วให้สูตร If คืนค่าเป็นตัวเลข 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, หรือ 13 ตามลำดับ ต้องใช้สูตร If ต่อกัน ดังนี้
=IF(A1="A",1,IF(A1="B",2,IF(A1="C",3,IF(A1="D",4, IF(A1="E",5,IF(A1="F",6,IF(A1="G",7,IF(A1="H",8,
0))))))))
+IF(A1="I",9,IF(A1="J",10,IF(A1="K",11,IF(A1="L",12, IF(A1="M",13,0)))))
เมื่อปรับใหม่กลายเป็นสูตรสั้นลง และมีโครงสร้างซึ่งสามารถปรับแก้ไขได้ง่ายขึ้น
=(A1="A")*1+(A1="B")*2+(A1="C")*3+(A1="D")*4 +(A1="E")*5+(A1="F")*6+(A1="G")*7+(A1="H")*8
+(A1="I")*9+(A1="J")*10+(A1="K")*11+(A1="L")*12 +(A1="M")*13

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

แสดงความคิดเห็น