ฟังก์ชัน IF คือสูตรที่ซ้อนกันและการหลีกเลี่ยงข้อผิดพลาด
Applies ToExcel for Microsoft 365 Excel for Microsoft 365 for Mac Excel สำหรับเว็บ Excel 2024 Excel 2024 for Mac Excel 2021 Excel 2021 for Mac Excel 2019 Excel 2016 Excel Web App Excel สำหรับ Windows Phone 10

ฟังก์ชัน 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 แบบซ้อนทับที่ซับซ้อน - สูตรใน E2 คือ =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"))))))))))))
  • =IF(D2>89,"A",IF(D2>79,"B",IF(D2>69,"C",IF(D2>59,"D","F"))))

    คำสั่ง IF ที่ซ้อนกันอย่างซับซ้อนนี้ทำตามหลักตรรกะอย่างตรงไปตรงมา:

  1. ถ้าคะแนนสอบ (ในเซลล์ D2) มากกว่า 89 นักเรียนจะได้ A

  2. ถ้าคะแนนสอบมากกว่า 79 นักเรียนจะได้ B

  3. ถ้าคะแนนสอบมากกว่า 69 นักเรียนจะได้ C

  4. ถ้าคะแนนสอบมากกว่า 59 นักเรียนจะได้ D

  5. มิฉะนั้น นักเรียนจะได้ 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 จะพยายามช่วยให้คุณทราบว่าจะเกิดอะไรขึ้นโดยการลงสีส่วนต่างๆ ของสูตรเมื่อคุณกําลังแก้ไข ตัวอย่างเช่น ถ้าคุณจะแก้ไขสูตรด้านบน ขณะที่คุณย้ายเคอร์เซอร์ผ่านวงเล็บปิด ")" แต่ละวงเล็บเปิดที่สอดคล้องกันจะเปลี่ยนสีเดียวกัน ซึ่งจะมีประโยชน์อย่างยิ่งในสูตรที่ซ้อนกันที่ซับซ้อนเมื่อคุณกําลังพยายามหาว่าคุณมีวงเล็บที่ตรงกันเพียงพอหรือไม่

ตัวอย่างเพิ่มเติม

ต่อไปนี้คือตัวอย่างทั่วไปของการคำนวณค่าคอมมิชชั่นยอดขายโดยยึดตามระดับความสำเร็จของรายได้

สูตรในเซลล์ D9 คือ 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>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 ก่อนข้อความที่คุณต้องการตัดไปยังบรรทัดใหม่

นี่คือตัวอย่างของสถานการณ์ค่าคอมมิชชั่นที่มีการหยุดใช้งาน:

สูตรใน D9 ที่หยุดใช้งานคือ =IF(C9>5000,10%,IF(C9>7500,12.5%,IF(C9>10000,15%,IF(C9>12500,17.5%,IF(C9>15000,20%,0)))))

คุณเห็นไหมว่าเกิดอะไรขึ้น เปรียบเทียบลําดับของการเปรียบเทียบรายได้กับตัวอย่างก่อนหน้า แล้วอันนี้ไปทางไหนล่ะ ใช่แล้ว มันเริ่มจากด้านล่างขึ้น ($5,000 ถึง $15,000) ไม่ใช่วิธีอื่น แต่ทําไมมันต้องเป็นเรื่องใหญ่ด้วยล่ะ? เป็นเรื่องใหญ่เพราะสูตรไม่สามารถผ่านการประเมินค่าแรกสําหรับมูลค่ามากกว่า $5,000 ได้ สมมติว่าคุณมีรายได้ $12,500 – คําสั่ง IF จะส่งกลับ 10% เนื่องจากมากกว่า $5,000 และจะหยุดตรงนั้น นี่อาจเป็นปัญหาอย่างไม่น่าเชื่อเพราะในสถานการณ์มากมายข้อผิดพลาดประเภทนี้ไม่มีใครสังเกตเห็นจนกว่าข้อผิดพลาดเหล่านี้จะมีผลกระทบเชิงลบ ดังนั้นการรู้ว่ามีข้อบกพร่องร้ายแรงบางอย่างที่มีคําสั่ง IF ซ้อนกันที่ซับซ้อนคุณสามารถทําอะไรได้บ้าง ในกรณีส่วนใหญ่ คุณสามารถใช้ฟังก์ชัน VLOOKUP แทนการสร้างสูตรที่ซับซ้อนด้วยฟังก์ชัน IF เมื่อใช้ VLOOKUP คุณต้องสร้างตารางอ้างอิงก่อน:

สูตรในเซลล์ D2 คือ =VLOOKUP(C2,C5:D17,2,TRUE)
  • =VLOOKUP(C2,C5:D17,2,TRUE)

สูตรนี้ระบุให้ค้นหาค่าใน C2 ในช่วง C5:C17 ถ้าพบค่าให้ส่งกลับค่าที่สอดคล้องกันจากแถวเดียวกันในคอลัมน์ D

สูตรในเซลล์ C9 คือ =VLOOKUP(B9,B2:C6,2,TRUE)
  • =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 (ตามประเภท)

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่

ต้องการตัวเลือกเพิ่มเติมหรือไม่

สํารวจสิทธิประโยชน์ของการสมัครใช้งาน เรียกดูหลักสูตรการฝึกอบรม เรียนรู้วิธีการรักษาความปลอดภัยอุปกรณ์ของคุณ และอื่นๆ

ชุมชนช่วยให้คุณถามและตอบคําถาม ให้คําติชม และรับฟังจากผู้เชี่ยวชาญที่มีความรู้มากมาย