เคยไหมครับ เวลาทำงานกับ Excel แล้วต้องเจอกับเงื่อนไขที่ซับซ้อน เช่น “ถ้าคะแนนมากกว่า 80 ให้เกรด A, ถ้ามากกว่า 70 ให้เกรด B…” หรือ “ถ้ายอดขายเกิน 1 แสน ได้คอมมิชชั่น 20%, ถ้าเกิน 5 หมื่น ได้ 10%” หลายคนอาจจะนึกถึงสูตร IF ซ้อนกันหลายๆ ชั้น ซึ่งอาจทำให้สับสนและตาลายได้ง่าย
บทความนี้ NONGIT.COM จะพาไปทำความรู้จักกับสูตร IF ตั้งแต่พื้นฐานการใช้งานเงื่อนไขเดียว ไปจนถึงการรับมือกับหลายเงื่อนไขแบบมือโปรด้วยฟังก์ชัน IFS ที่จะทำให้ชีวิตของคุณง่ายขึ้นเยอะเลยครับ
Microsoft Excel เป็นโปรแกรมประเภทคำนวณ ซึ่งมีฟังก์ชั่นให้เลือกใช้งานเยอะ และวันนี้มีตัวอย่างการใช้งานฟังก์ชั่น IF แบบหลายเงื่อนไข มาให้ดูกันครับ เพื่อที่จะนำไปประยุกต์ใช้กับการทำงาน หรือ การเรียน
เริ่มต้นกับสูตร IF แบบพื้นฐาน
ก่อนจะไปดูเงื่อนไขซับซ้อน เรามาปูพื้นฐานกันก่อนนะครับ สูตร IF คือฟังก์ชันที่ใช้ในการสร้างเงื่อนไขง่ายๆ มีแค่ “จริง” กับ “เท็จ” เท่านั้นเอง
โครงสร้างสูตร: =IF(logical_test, [value_if_true], [value_if_false])
logical_test: คือ เงื่อนไขที่เราต้องการทดสอบ (เช่น B2>=50000)value_if_true: คือ ค่าที่จะแสดงผล ถ้าเงื่อนไขเป็น จริงvalue_if_false: คือ ค่าที่จะแสดงผล ถ้าเงื่อนไขเป็น เท็จ
ตัวอย่างง่ายๆ: สมมติเราจะตัดเกรด “ผ่าน / ไม่ผ่าน” โดยมีเงื่อนไขว่า “คะแนนในช่อง B2 ต้องมากกว่าหรือเท่ากับ 50 ถึงจะผ่าน”
เราจะเขียนสูตรในช่อง C2 ได้ว่า: =IF(B2>=50, "ผ่าน", "ไม่ผ่าน")
การใช้สูตร Excel ฟังก์ชั่น IF หลายเงื่อนไข หรือ IF ซ้อน IF
ตอนนี้มาถึงปัญหาคลาสสิกที่เราเจอกันบ่อยๆ คือการมีหลายเงื่อนไข เราจะใช้เทคนิคที่เรียกว่า “IF ซ้อน IF” (Nested IF) ครับ โดยนำ IF อีกตัวไปใส่ไว้ในตำแหน่ง value_if_false ของ IF ตัวแรกนั่นเอง
หากใครที่เคยเรียน Excel จะคุ้นกับการจัดเกรดจากคะแนนดิบของนักเรียน แต่ผ่านมานานแล้วหากไม่ได้ใช้งานบ่อยๆ ก็ทำให้ความจำลบเลือน หรือคืนอาจารย์ที่สอนไปเรียบร้อยแล้ว ^^
ตัวอย่างนี้เป็นการคำนวณยอดขาย ของพนักงานงาน เพื่อคิดเปอร์เซ็น (%) คอมมิชชั่น ให้พนักงานขายตามยอดขายของแต่ละคน
เงื่อนไขการคิด % คอมมิชชั่น
เงื่อนไขที่ 1 ยอดขายมากกว่าหรือเท่ากับ 100,000 จะได้ 20%
เงื่อนไขที่ 2 ยอดขายมากกว่าหรือเท่ากับ 50,000 จะได้ 10 %
เงื่อนไขที่ 3 ยอดขายน้อยกว่า 50,000 ได้ 5 %

ซึ่งการใช้งานฟังก์ชั่น IF สามารถเขียนสูตรได้ 2 แบบ จากตัวอย่างจะพิมพ์สูตรที่เซลล์ C2
แบบที่ 1 “=IF(B2<50000,5,if(b2<100000,10,20))>”
แบบที่ 2 “=IF(B2>=100000,20,IF(B2>=50000,10,5))”

จากตัวอย่าง อธิบายสูตรว่า
เงื่อนไขที่ 1 ถ้าหาก B2 มากกว่าหรือเท่ากับ 100,000 ให้เป็น 20
เงื่อนไขที่ 2 ถ้าหาก B2 มากกว่าหรือเท่ากับ 50,000 ให้เป็น 10
เงื่อนไขที่ 3 ถ้าหากไม่ใช่ให้เป็น 5
หลังจากที่พิมพ์สูตรในช่องเซลล์ C2 เสร็จแล้ว ให้คลิกลากที่มุมเซลล์ C2 ลงไปด้านล่าง เพื่อ Copy สูตรคำนวณในช่องเซลล์ถัดไปตามที่ต้องการ

เทคนิคที่ดีกว่าด้วยฟังก์ชัน IFS
สำหรับคนที่ใช้ Microsoft Excel 2019 หรือ Microsoft 365 ขึ้นไป มีฟังก์ชันที่เจ๋งกว่า IF ซ้อนกันเยอะๆ นั่นคือ IFS ครับ
ทำไม IFS ถึงดีกว่า? IFS ถูกออกแบบมาเพื่อจัดการกับหลายเงื่อนไขโดยเฉพาะ ทำให้สูตรของเรา สั้นลง อ่านง่ายขึ้น และลดโอกาสเขียนสูตรผิด เพราะไม่ต้องวุ่นวายกับวงเล็บที่ซ้อนกันไปมาครับ
โครงสร้างสูตร: =IFS(เงื่อนไข1, ค่าถ้าจริง1, เงื่อนไข2, ค่าถ้าจริง2, ...)
จากโจทย์คำนวณคอมมิชชั่นเดิม เราสามารถเขียนด้วย IFS ได้ดังนี้:
=IFS(B2>=100000, 20%, B2>=50000, 10%, B2<50000, 5%)
เห็นไหมครับว่าสูตรดูสะอาดตาและเข้าใจง่ายกว่ากันเยอะเลย เราแค่เขียนเงื่อนไขกับผลลัพธ์คู่กันไปเรื่อยๆ ได้เลย ไม่ต้องกังวลเรื่องการซ้อนสูตรอีกต่อไปครับ
เมื่อเงื่อนไขซับซ้อนมากๆ
ในฐานะเพื่อนร่วมอาชีพ บางครั้งเราเจอตารางเงื่อนไขที่มีเป็น 10-20 ระดับ เช่น การคำนวณค่าเบี้ยประกัน หรือการแบ่งโซนขนส่ง การใช้ IF หรือ IFS ยาวๆ อาจจะไม่ใช่ทางเลือกที่ดีที่สุดในการบริหารจัดการ (Maintainability)
Best Practice: คือการแยกตารางเงื่อนไข (Criteria Table) ออกมาต่างหาก แล้วใช้ฟังก์ชันค้นหาอย่าง VLOOKUP หรือ XLOOKUP เข้ามาช่วยแทน วิธีนี้ทำให้เราแก้ไขเงื่อนไขในอนาคตได้ง่ายมาก โดยไม่ต้องไปยุ่งกับสูตรหลักเลยครับ เหมาะสำหรับงานที่ต้องการความยืดหยุ่นสูง
สรุปง่ายๆ คือ:
- เงื่อนไขเดียว (2 ทางเลือก): ใช้
IFคือคำตอบที่ง่ายและดีที่สุด - หลายเงื่อนไข (3-5 เงื่อนไข):
IFซ้อนIFยังพอใช้ได้ แต่แนะนำให้ใช้IFS(ถ้าเวอร์ชัน Excel รองรับ) จะทำให้สูตรอ่านง่ายและจัดการง่ายกว่ามากครับ - เงื่อนไขเยอะและซับซ้อน: ควรพิจารณาใช้
VLOOKUPหรือXLOOKUPกับตารางเงื่อนไขแยก จะเป็นวิธีที่ยั่งยืนกว่า
หวังว่าคู่มือนี้จะเป็นประโยชน์ในการนำไปประยุกต์ใช้กับการทำงานนะครับ
FAQ (คำถามที่พบบ่อย)
สูตร IF ซ้อนกันได้กี่ชั้น?
ใน Excel เวอร์ชันใหม่ๆ สามารถซ้อนได้ถึง 64 ชั้น แต่ไม่แนะนำอย่างยิ่งครับ เพราะจะทำให้สูตรซับซ้อนและตรวจสอบข้อผิดพลาดได้ยากมาก หากเงื่อนไขเกิน 3-4 ชั้น ควรหันไปใช้ IFS หรือ VLOOKUP แทนจะดีกว่าครับ
ทำไมสูตรขึ้น #NAME? หรือ #VALUE!?
#NAME? มักเกิดจากการพิมพ์ชื่อฟังก์ชันผิด เช่น พิมพ์ iF แทนที่จะเป็น IF#VALUE! อาจเกิดจากการเปรียบเทียบข้อมูลผิดประเภท เช่น นำข้อความไปเทียบกับตัวเลข หรือมีข้อผิดพลาดในการอ้างอิงเซลล์ครับ






