ฟังก์ชัน IF ช่วยให้คุณสามารถทำการเปรียบเทียบตรรกะระหว่างค่าและสิ่งที่คุณคาดหวังไว้ โดยการทดสอบเงื่อนไข และส่งกลับผลลัพธ์ถ้าเป็น True หรือ False
-
=IF(ถ้ามีบางอย่างเป็น True ให้ดำเนินการอย่างหนึ่ง ถ้าไม่มี ให้ดำเนินการอีกอย่างหนึ่ง)
ดังนั้นคําสั่ง IF สามารถมีผลลัพธ์ได้สองรายการ ผลลัพธ์แรกคือถ้าการเปรียบเทียบของคุณเป็นจริง ผลลัพธ์ที่สองถ้าการเปรียบเทียบของคุณเป็นเท็จ
คําสั่ง IF มีเสถียรภาพอย่างไม่น่าเชื่อและเป็นพื้นฐานของรูปแบบสเปรดชีตจํานวนมาก แต่ก็เป็นสาเหตุหลักของปัญหาสเปรดชีตจํานวนมาก ตามหลักแล้ว คําสั่ง IF ควรนําไปใช้กับเงื่อนไขที่น้อยที่สุด เช่น ชาย/หญิง ใช่/ไม่ใช่/อาจจะ เพื่อตั้งชื่อให้เล็กน้อย แต่บางครั้งคุณอาจจําเป็นต้องประเมินสถานการณ์ที่ซับซ้อนมากขึ้นที่จําเป็นต้องซ้อน* มากกว่าฟังก์ชัน IF 3 ฟังก์ชันร่วมกัน
* “การซ้อนทับ” หมายถึงหลักปฏิบัติของฟังก์ชันหลายฟังก์ชันรวมกันในสูตรเดียว
ใช้ฟังก์ชัน IF ซึ่งเป็นหนึ่งใน ฟังก์ชันทางตรรกะ เพื่อส่งกลับหนึ่งค่าถ้าเงื่อนไขเป็น จริง และอีกค่าหนึ่งถ้าเงื่อนไขเป็น เท็จ
ไวยากรณ์
IF(logical_test, value_if_true, [value_if_false])
ตัวอย่างเช่น
-
=IF(A2>B2,"เกินงบ","ตกลง")
-
=IF(A2=B2,B4-A4,"")
ชื่ออาร์กิวเมนต์ |
คำอธิบาย |
logical_test (จำเป็น) |
เงื่อนไขที่คุณต้องการทดสอบ |
Value_if_true (จำเป็น) |
ค่าที่คุณต้องการให้ส่งกลับถ้าผลลัพธ์ของ logical_test เป็น TRUE |
value_if_false (ไม่จำเป็น) |
ค่าที่คุณต้องการให้ส่งกลับถ้าผลลัพธ์ของ logical_test เป็น FALSE |
ข้อสังเกต
แม้ว่า Excel จะอนุญาตให้คุณซ้อนฟังก์ชัน IF ที่แตกต่างกันได้ถึง 64 ฟังก์ชัน แต่เราไม่แนะนําให้ทําเช่นนั้น เพราะเหตุใด
-
คําสั่ง IF ต้องใช้ความคิดจํานวนมากเพื่อสร้างอย่างถูกต้อง และตรวจสอบให้แน่ใจว่าตรรกะของคําสั่งสามารถคํานวณได้อย่างถูกต้องผ่านแต่ละเงื่อนไขไปจนถึงจุดสิ้นสุด ถ้าคุณไม่ซ้อนสูตรของคุณ 100% อย่างถูกต้อง แสดงว่าอาจทํางานได้ 75% ของเวลา แต่ให้ผลลัพธ์ที่ไม่คาดคิด 25% ของเวลา น่าเสียดายที่อัตราต่อรองที่คุณจับได้ 25% นั้นเพรียวบาง
-
คำสั่ง IF หลายรายการอาจทำให้การคำนวณเป็นเรื่องยากอย่างคาดไม่ถึง โดยเฉพาะเมื่อคุณย้อนกลับมาดูในภายหลังและพยายามทำความเข้าใจสิ่งที่คุณ หรืออาจเป็นคนอื่นพยายามทำ
ถ้าคุณพบคำสั่ง IF ที่ดูเหมือนไม่มีจุดสิ้นสุด คุณควรปล่อยเมาส์แล้ววางแผนกลยุทธ์ของคุณใหม่
มาดูวิธีการสร้างคำสั่ง IF แบบซ้อนทับที่ซับซ้อนโดยใช้คำสั่ง IF หลายคำสั่ง และเวลาที่ควรใช้เครื่องมืออื่นใน Excel ของคุณ
ตัวอย่าง
ต่อไปนี้คือตัวอย่างของคำสั่ง IF แบบซ้อนทับมาตรฐานเพื่อแปลงคะแนนสอบของนักเรียนให้เป็นเกรดที่เป็นตัวอักษร
-
=IF(D2>89,"A",IF(D2>79,"B",IF(D2>69,"C",IF(D2>59,"D","F"))))
คำสั่ง IF ที่ซ้อนกันอย่างซับซ้อนนี้ทำตามหลักตรรกะอย่างตรงไปตรงมา:
-
ถ้าคะแนนสอบ (ในเซลล์ D2) มากกว่า 89 นักเรียนจะได้ A
-
ถ้าคะแนนสอบมากกว่า 79 นักเรียนจะได้ B
-
ถ้าคะแนนสอบมากกว่า 69 นักเรียนจะได้ C
-
ถ้าคะแนนสอบมากกว่า 59 นักเรียนจะได้ D
-
มิฉะนั้น นักเรียนจะได้ F
ตัวอย่างนี้ค่อนข้างปลอดภัยเนื่องจากไม่น่าจะมีความสัมพันธ์ระหว่างคะแนนการทดสอบและเกรดจดหมายจะเปลี่ยนไป ดังนั้นจึงไม่จําเป็นต้องบํารุงรักษามากนัก แต่นี่คือความคิด – จะเกิดอะไรขึ้นถ้าคุณต้องการแบ่งเกรดระหว่าง A+, A และ A- (และอื่นๆ) ตอนนี้คําสั่ง IF สี่เงื่อนไขของคุณจําเป็นต้องเขียนใหม่เพื่อให้มี 12 เงื่อนไข! สูตรของคุณจะมีลักษณะดังนี้ในตอนนี้:
-
=IF(B2>97,"A+",IF(B2>93,"A",IF(B2>89,"A-",IF(B2>87,"B+",IF(B2>83,"B",IF(B2>79,"B-", IF(B2>77,"C+",IF(B2>73,"C",IF(B2>69,"C-",IF(B2>57,"D+",IF(B2>53,"D",IF(B2>49,"D-","F"))))))))))))
มันยังคงทํางานได้อย่างถูกต้องและจะทํางานได้ตามที่คาดไว้ แต่ใช้เวลานานในการเขียนและใช้เวลานานในการทดสอบเพื่อให้แน่ใจว่าจะทําสิ่งที่คุณต้องการ ปัญหาที่จ้าอีกประการหนึ่งคือคุณต้องป้อนคะแนนและเกรดตัวอักษรที่เทียบเท่ากันด้วยมือ อะไรคือโอกาสที่คุณจะพิมพ์ผิดโดยบังเอิญ ตอนนี้ลองนึกภาพพยายามที่จะทําเช่นนี้ 64 ครั้งกับเงื่อนไขที่ซับซ้อนมากขึ้น! แน่นอนว่ามันเป็นไปได้ แต่คุณต้องการจริงๆหรือไม่ที่จะต้องใช้ความพยายามเช่นนี้และข้อผิดพลาดที่อาจจะยากจริงๆหรือไม่?
: ทุกฟังก์ชันใน Excel จําเป็นต้องมีวงเล็บเปิดและปิด () Excel จะพยายามช่วยให้คุณทราบว่าจะเกิดอะไรขึ้นโดยการลงสีส่วนต่างๆ ของสูตรเมื่อคุณกําลังแก้ไข ตัวอย่างเช่น ถ้าคุณจะแก้ไขสูตรด้านบน ขณะที่คุณย้ายเคอร์เซอร์ผ่านวงเล็บปิด ")" แต่ละวงเล็บเปิดที่สอดคล้องกันจะเปลี่ยนสีเดียวกัน ซึ่งจะมีประโยชน์อย่างยิ่งในสูตรที่ซ้อนกันที่ซับซ้อนเมื่อคุณกําลังพยายามหาว่าคุณมีวงเล็บที่ตรงกันเพียงพอหรือไม่
ตัวอย่างเพิ่มเติม
ต่อไปนี้คือตัวอย่างทั่วไปของการคำนวณค่าคอมมิชชั่นยอดขายโดยยึดตามระดับความสำเร็จของรายได้
-
=IF(C9>15000,20%,IF(C9>12500,17.5%,IF(C9>10000,15%,IF(C9>7500,12.5%,IF(C9>5000,10%,0)))))
สูตรนี้บอกว่า IF(C9 มากกว่า 15,000 จะส่งกลับ 20%, IF(C9 มากกว่า 12,500 จะส่งกลับ 17.5% และอื่นๆ...
แม้ว่าจะคล้ายกับตัวอย่างเกรดก่อนหน้าอย่างมาก สูตรนี้เป็นตัวอย่างที่ดีของความยากลําบากในการรักษาคําสั่ง IF ขนาดใหญ่ คุณต้องทําอย่างไรถ้าองค์กรของคุณตัดสินใจเพิ่มระดับการชดเชยใหม่ และอาจเปลี่ยนค่าดอลลาร์หรือเปอร์เซ็นต์ที่มีอยู่ คุณต้องมีงานมากมายในมือของคุณ!
: คุณสามารถแทรกตัวแบ่งบรรทัดในแถบสูตรเพื่อให้อ่านสูตรที่ยาวได้ง่ายขึ้น เพียงกด ALT+ENTER ก่อนข้อความที่คุณต้องการตัดไปยังบรรทัดใหม่
นี่คือตัวอย่างของสถานการณ์ค่าคอมมิชชั่นที่มีการหยุดใช้งาน:
คุณเห็นไหมว่าเกิดอะไรขึ้น เปรียบเทียบลําดับของการเปรียบเทียบรายได้กับตัวอย่างก่อนหน้า แล้วอันนี้ไปทางไหนล่ะ ใช่แล้ว มันเริ่มจากด้านล่างขึ้น ($5,000 ถึง $15,000) ไม่ใช่วิธีอื่น แต่ทําไมมันต้องเป็นเรื่องใหญ่ด้วยล่ะ? เป็นเรื่องใหญ่เพราะสูตรไม่สามารถผ่านการประเมินค่าแรกสําหรับมูลค่ามากกว่า $5,000 ได้ สมมติว่าคุณมีรายได้ $12,500 – คําสั่ง IF จะส่งกลับ 10% เนื่องจากมากกว่า $5,000 และจะหยุดตรงนั้น นี่อาจเป็นปัญหาอย่างไม่น่าเชื่อเพราะในสถานการณ์มากมายข้อผิดพลาดประเภทนี้ไม่มีใครสังเกตเห็นจนกว่าข้อผิดพลาดเหล่านี้จะมีผลกระทบเชิงลบ ดังนั้นการรู้ว่ามีข้อบกพร่องร้ายแรงบางอย่างที่มีคําสั่ง IF ซ้อนกันที่ซับซ้อนคุณสามารถทําอะไรได้บ้าง ในกรณีส่วนใหญ่ คุณสามารถใช้ฟังก์ชัน VLOOKUP แทนการสร้างสูตรที่ซับซ้อนด้วยฟังก์ชัน IF เมื่อใช้ VLOOKUP คุณต้องสร้างตารางอ้างอิงก่อน:
-
=VLOOKUP(C2,C5:D17,2,TRUE)
สูตรนี้ระบุให้ค้นหาค่าใน C2 ในช่วง C5:C17 ถ้าพบค่าให้ส่งกลับค่าที่สอดคล้องกันจากแถวเดียวกันในคอลัมน์ D
-
=VLOOKUP(B9,B2:C6,2,TRUE)
ในทํานองเดียวกัน สูตรนี้จะค้นหาค่าในเซลล์ B9 ในช่วง B2:B22 ถ้าพบค่าให้ส่งกลับค่าที่สอดคล้องกันจากแถวเดียวกันในคอลัมน์ C
: VLOOKUP ทั้งสองตัวนี้ใช้อาร์กิวเมนต์ TRUE ที่ส่วนท้ายของสูตร ซึ่งหมายความว่าเราต้องการให้ค้นหาค่าที่ตรงกันโดยประมาณ กล่าวอีกนัยหนึ่งมันจะตรงกับค่าที่แน่นอนในตารางการค้นหารวมถึงค่าใด ๆ ที่อยู่ระหว่างพวกเขา ในกรณีนี้ ตารางการค้นหาจําเป็นต้องเรียงลําดับจากน้อยไปหามาก จากน้อยที่สุดไปหามากที่สุด
VLOOKUP มีรายละเอียดเพิ่มเติมที่นี่ แต่นี่เป็นสิ่งที่ง่ายกว่าคําสั่ง IF ที่ซ้อนกันแบบ 12 ระดับและซับซ้อน! และยังมีประโยชน์อื่นๆ อีกด้วย:
-
ตารางอ้างอิง VLOOKUP อยู่ในที่ที่มองเห็นได้ง่ายและดูได้ง่าย
-
ค่าในตารางจะถูกอัปเดตได้อย่างง่ายดายและคุณไม่จำเป็นต้องยุ่งกับสูตรอีกเลย ถ้าเงื่อนไขของคุณไม่เปลี่ยนแปลง
-
ถ้าคุณไม่ต้องการให้ผู้อื่นเห็นหรือยุ่งกับตารางอ้างอิงของคุณ ให้ใส่บนเวิร์กชีตอื่น
คุณทราบหรือไม่
ตอนนี้มี ฟังก์ชัน IFS ที่สามารถแทนที่คําสั่ง IF ซ้อนกันหลายคําสั่งด้วยฟังก์ชันเดียว ดังนั้น แทนที่จะเป็นตัวอย่างเกรดเริ่มต้นของเรา ซึ่งมีฟังก์ชัน IF ที่ซ้อนกัน 4 ฟังก์ชัน:
-
=IF(D2>89,"A",IF(D2>79,"B",IF(D2>69,"C",IF(D2>59,"D","F"))))
ซึ่งทำได้ง่ายด้วยฟังก์ชัน IFS เพียงฟังก์ชันเดียว
-
=IFS(D2>89,"A",D2>79,"B",D2>69,"C",D2>59,"D",TRUE,"F")
ฟังก์ชัน IFS มีประโยชน์มากเนื่องจากคุณไม่ต้องกังวลเกี่ยวกับคำสั่ง IF และวงเล็บเหล่านั้นทั้งหมด
: ฟีเจอร์นี้จะพร้อมใช้งานถ้าคุณมีการสมัครใช้งาน Microsoft 365 เท่านั้น ถ้าคุณเป็นสมาชิก Microsoft 365ตรวจสอบให้แน่ใจว่าคุณมี Office เวอร์ชันล่าสุดซื้อหรือลองใช้ Microsoft 365
ต้องการความช่วยเหลือเพิ่มเติมไหม
คุณสามารถสอบถามผู้เชี่ยวชาญใน Excel Tech Community หรือรับการสนับสนุนใน ชุมชน
หัวข้อที่เกี่ยวข้อง
วิดีโอ: ฟังก์ชัน IF ขั้นสูงฟังก์ชัน IFS (Microsoft 365, Excel 2016 และใหม่กว่า)ฟังก์ชัน COUNTIF จะนับค่าตามเกณฑ์ เดียวฟังก์ชัน COUNTIFS จะนับค่าตามเกณฑ์หลายเกณฑ์ฟังก์ชัน SUMIF จะรวมค่าตามเกณฑ์ เดียวฟังก์ชัน SUMIFS จะรวมค่าตามเกณฑ์ หลายเกณฑ์ ฟังก์ชัน ANDหรือฟังก์ชันVLOOKUPภาพรวมของสูตรใน Excelวิธีการหลีกเลี่ยงสูตร ที่ใช้งานไม่ได้ตรวจหาข้อผิดพลาดในสูตรฟังก์ชัน ทางตรรกะฟังก์ชัน Excel (ตามลําดับตัวอักษร)ฟังก์ชัน Excel (ตามประเภท)