IF / IFS / SWITCH — จัดการเงื่อนไขหลายชั้นให้อ่านง่ายและไม่มึน
1. จาก IF เดี่ยว สู่การจัดการเงื่อนไขแบบมือโปร
ถ้าคุณเคยเรียน Excel พื้นฐานมา คงเคยเจอ IF — ฟังก์ชันที่ถามว่า “เงื่อนไขนี้จริงไหม แล้วเลือกเอาค่าตามผล” แต่วันนี้ผมจะพาคุณไปต่อจากจุดนั้นอีกขั้นครับ เพราะงานจริงไม่ค่อยมีแค่เงื่อนไขเดียว มักเป็นเงื่อนไขซ้อนกันหลายชั้น เช่น
- โบนัสพนักงานคิดหลายระดับตามยอดขาย
- เกรดนักเรียนแบ่งเป็นหลายช่วงคะแนน
- ระบบอนุมัติกู้ที่ต้องเช็คหลายเกณฑ์พร้อมกัน
ถ้าใช้ IF ซ้อน IF ไปเรื่อยๆ สูตรจะยาวจนอ่านยากและผิดบ่อย วันนี้ผมเลยขอแนะนำ IFS กับ SWITCH ที่จะช่วยให้สูตรสั้นลง อ่านง่ายขึ้น และดูแลต่อได้สบายกว่าแน่นอน
เปิดไฟล์ตัวอย่าง แล้วทำตามไปด้วยกันครับ — ผมเตรียมไว้ 3 ชีท ให้ลองเล่นครบทั้ง IF, IFS, SWITCH และ AND/OR
💡 เคล็ดลับ: หลักง่ายๆ ที่จะใช้ไปตลอดบทความนี้คือ — จำนวนเงื่อนไขหลายระดับแบบขั้นบันได ใช้ IFS; เปรียบเทียบค่าเดียวกับหลายกรณี ใช้ SWITCH; แต่ถ้าเงื่อนไขแค่ 2 ทางสั้นๆ ใช้ IF ธรรมดาก็เพียงพอ
2. ทบทวน IF แบบเงื่อนไขเดียว
IF เป็นฟังก์ชันที่อยู่คู่ Excel มานาน โครงสร้างพื้นฐานคือ:
=IF( เงื่อนไข , ค่าที่ได้ถ้าจริง , ค่าที่ได้ถ้าเท็จ )
เปิดชีท “เงื่อนไขพื้นฐาน” ในไฟล์ตัวอย่างดูครับ ผมทำตารางโบนัสพนักงานขายไว้ ที่คอลัมน์ C มีสูตรเช็คว่ายอดขายถึง 50,000 บาทไหม:
=IF(B5>=50000,"ผ่าน","ไม่ผ่าน")
สมชายมียอด 120,000 บาท ก็จะได้คำว่า “ผ่าน” ส่วนอนุชามียอด 78,000 บาท ก็ยังผ่าน เพราะเกิน 50,000 ส่วนวิภา 45,000 บาท และนิดา 20,000 บาท จะได้ “ไม่ผ่าน” ครับ
เห็นไหมว่าคำตอบถูกต้องตามหลัก logic — ถ้าเงื่อนไขจริง คืนค่าชุดแรก ถ้าเท็จคืนค่าชุดที่สอง แค่นี้ก็ใช้ทำงานได้หลากหลายแล้ว
3. Nested IF — ซ้อน IF เพื่อคิดหลายชั้น
ทีนี้สิ่งที่ Excel พื้นฐานทำไม่ได้คือ “เงื่อนไขมากกว่า 2 ทาง” เช่น โบนัสที่ต้องแบ่งเป็น 3 ระดับ วิธีแรกที่หลายคนใช้คือ Nested IF คือเอา IF ไปซ้อนอยู่ในช่อง “ค่าเท็จ” ของ IF ตัวนอกเรื่อยๆ
ในชีทเดียวกันตรงคอลัมน์ D ผมใส่สูตรโบนัสแบบหลายชั้น:
=IF(B5>=100000,B5*0.1,IF(B5>=50000,B5*0.05,0))
อ่านแบบนี้ครับ — ถ้ายอดขาย 100,000+ ได้โบนัส 10% ไม่ก็มาตรวจชั้นถัดไป ถ้า 50,000+ ได้ 5% ถ้ายังไม่ถึงอีกก็ได้ 0 บาท
ลองดูผลลัพธ์นะครับ:
| พนักงาน | ยอดขาย (บาท) | โบนัส (บาท) | ระดับ |
|---|---|---|---|
| สมชาย ใจดี | 120,000 | 12,000 | ระดับ A |
| อนุชา ศรีสุข | 78,000 | 3,900 | ระดับ B |
| วิภา แก้วใส | 45,000 | 0 | ระดับ C |
| นิดา ทองดี | 20,000 | 0 | ระดับ C |
คอลัมน์ E ผมเขียน nested IF อีกรูปแบบเพื่อบอก “ระดับโบนัส”:
=IF(B5>=100000,"ระดับ A",IF(B5>=50000,"ระดับ B","ระดับ C"))
ทั้งหมดนี้ “ถูก” และใช้ได้จริงครับ แต่พอเงื่อนไขยิ่งเยอะ (5-7 ชั้น) สูตรจะยาว มึน และเสี่ยงใส่เครื่องหมายวงเล็บผิดพลาดง่ายมาก นั่นคือจุดเปลี่ยนที่เราจะเริ่มใช้เครื่องมือใหม่กัน
⚠️ ข้อควรระวัง: Nested IF ยิ่งซ้อนลึกยิ่งอ่านยากและแก้ยากครับ โดยเฉพาะเวลาใส่ “ระดับกลาง” เพิ่มเข้ามาทีหลัง — เพราะต้องไล่แก้ทั้งโซ่ ไม่ใช่แค่จุดเดียว
4. IFS — หลายเงื่อนไขในฟังก์ชันเดียว อ่านง่ายกว่า
มาเจอกันตัวแรกเลยครับ นั่นคือ IFS ซึ่งถูกสร้างมาเพื่อแทน Nested IF โดยตรง โครงสร้างคือเอาคู่ “เงื่อนไข, ค่าที่ได้” วางเรียงต่อกันไปเรื่อยๆ:
=IFS( เงื่อนไข1 , ค่าที่ได้1 , เงื่อนไข2 , ค่าที่ได้2 , ... )
Excel จะไล่ตรวจจากซ้ายไปขวา แล้วคืนค่าของ “เงื่อนไขตัวแรกที่จริง” ทันที — ตัวที่เหลือนอกนั้นไม่ต้องสนใจ
เปิดชีท “IFS และ SWITCH” ส่วนที่ 1 ซึ่งเป็นตารางคะแนนนักเรียนครับ ผมใช้ IFS จัดเกรด A-F:
=IFS(B5>=80,"A",B5>=70,"B",B5>=60,"C",B5>=50,"D",TRUE,"F")
ไล่อ่านง่ายมาก — คะแนน 80+ ได้ A, 70+ ได้ B, 60+ ได้ C, 50+ ได้ D และที่เหลือได้ F
⚠️จุดที่ต้องระวังคืออาร์กิวเมนต์สุดท้าย TRUE ครับ มันทำหน้าที่เหมือน “ค่าเริ่มต้น” หรือ ELSE ที่รับกรณีไม่ตรงกับเงื่อนไขไหนเลย เหมือนที่เราใช้ในภาษาโปรแกรม ถ้าไม่มี TRUE และคะแนนต่ำกว่า 50 หมด Excel จะคืน error #N/A ทันที
ลองดูผลลัพธ์นะครับ:
| ชื่อนักเรียน | คะแนน | เกรด |
|---|---|---|
| แสงดาว แจ่มใส | 95 | A |
| มานี มีสุข | 88 | A |
| ปิติ เรียนรู้ | 74 | B |
| จันทร์ เจริญ | 55 | D |
| ขวัญใจ รักดี | 41 | F |
💡 เคล็ดลับ: ใช้ IFS ทุกครั้งที่เงื่อนไขเป็น “ขั้นบันได” เช่น เกรด ระดับโบนัส ค่าคอมมิชชัน — มันจะอ่านง่ายกว่า Nested IF มาก และเวลาเพิ่มระดับใหม่ก็แค่เพิ่มคู่ “เงื่อนไข, ค่า” เข้าไปตรงกลาง ไม่ต้องไปไล่แก้โซ่ทั้งเส้น
5. SWITCH — เทียบค่าเดียวกับหลายกรณี
ต่อจาก IFS เป็น SWITCH ซึ่งเหมาะกับอีกสถานการณ์หนึ่งโดยเฉพาะ คือตอนที่เราต้องการ “เทียบค่าเดียว” กับค่าที่เป็นไปได้หลายแบบ แล้วคืนค่าตามที่จับคู่ได้ โดยไม่ต้องเขียนเงื่อนไขยาวๆ
โครงสร้างคือ:
=SWITCH( ค่าที่จะเทียบ , ค่า1 , ผลลัพธ์1 , ค่า2 , ผลลัพธ์2 , ... , [ค่าเริ่มต้น] )
เปิดชีท “IFS และ SWITCH” ส่วนที่ 2 ครับ ที่รหัสสินค้า S100, S200, S300 ผมใช้ SWITCH แปลงเป็นชื่อสินค้าไทย:
=SWITCH(A15,"S100","เสื้อเชิ้ต","S200","กางเกงยีนส์","S300","รองเท้าผ้าใบ","สินค้าอื่น")
หลักการคือ Excel เอา A15 ไปเทียบทีละตัว — ถ้าตรง S100 ได้ “เสื้อเชิ้ต”, ตรง S200 ได้ “กางเกงยีนส์”, ตรง S300 ได้ “รองเท้าผ้าใบ” ส่วนค่า “สินค้าอื่น” คือค่าเริ่มต้นที่คืนเมื่อไม่ตรงกับตัวไหนเลย
ผลลัพธ์ที่ได้ครับ:
| รหัส | ชื่อสินค้า |
|---|---|
| S100 | เสื้อเชิ้ต |
| S200 | กางเกงยีนส์ |
| S300 | รองเท้าผ้าใบ |
| S999 | สินค้าอื่น |
SWITCH ต่างจาก IFS ตรงที่มันถามว่า “ค่านี้เท่ากับตัวไหน” ไม่ใช่ “เงื่อนไขไหนจริง” — เหมาะกับรหัส สถานะ หรือค่าจำกัดชุด
📌 ข้อควรจำ: SWITCH ใช้กับการ “จับคู่ค่า” (เหมือนรหัสไปหาชื่อ) ส่วน IFS ใช้กับ “ช่วง/เงื่อนไข” (เหมือนคะแนนไปหาเกรด) จำง่ายๆ ว่า — ค่าเดี่ยวใช้ SWITCH, เงื่อนไขช่วงใช้ IFS ครับ
6. IF ร่วมกับ AND / OR — เช็คหลายเกณฑ์พร้อมกัน
จนถึงตอนนี้ทุกเงื่อนไขยังเป็น “เงื่อนไขเดียว” แต่ชีวิตจริงเรามักต้องเช็คหลายเกณฑ์พร้อมกัน เช่น ต้องมีทั้งเงินเดือนสูง และอายุงานนาน นั่นคือที่มาของ AND กับ OR ที่เอามาใส่ใน IF ได้เลย
- AND( เงื่อนไข1 , เงื่อนไข2 ) — จริงเมื่อทุกเงื่อนไขจริงทั้งหมด
- OR( เงื่อนไข1 , เงื่อนไข2 ) — จริงเมื่ออย่างน้อยหนึ่งเงื่อนไขจริง
เปิดชีท “AND OR ประยุกต์” ครับ เป็นตารางพิจารณาอนุมัติกู้ ผมกำหนดเกณฑ์ว่า “เงินเดือน 45,000 บาทขึ้นไป และ อายุงาน 2 ปีขึ้นไป” ถึงจะอนุมัติ สูตรที่คอลัมน์ D:
=IF(AND(B4>=45000,C4>=2),"อนุมัติ","ไม่อนุมัติ")
ไล่ดูผล:
| ลูกค้า | เงินเดือน (บาท) | อายุงาน (ปี) | อนุมัติ? |
|---|---|---|---|
| ธนา มั่งมี | 55,000 | 3 | อนุมัติ |
| คีรีบูน รวยทรัพย์ | 90,000 | 5 | อนุมัติ |
| ฟ้าใส ดีจริง | 40,000 | 1 | ไม่อนุมัติ |
| อารีย์ ขยัน | 38,000 | 2 | ไม่อนุมัติ |
ส่วนตรง “ด่านแรกผ่าน?” ผมลองใช้ OR — ผ่านเมื่อเงินเดือน 100,000+ หรืออายุงาน 5 ปีขึ้นไป:
=IF(OR(B13>=100000,C13>=5),"ผ่าน","ไม่ผ่าน")
คีรีบูน อายุงาน 5 ปี จึงผ่านทั้งที่เงินเดือนไม่ถึง 100,000 — เพราะ OR แค่ “อย่างใดอย่างหนึ่งจริง” ก็พอ ต่อไปคุณจะนำ AND/OR ไปควบกับ IFS หรือ nested IF ก็ได้ตามความเหมาะสม
💡 เคล็ดลับ: จำความต่างง่ายๆ — AND ต้องครบทุกอย่าง ใครขาดไปไม่ได้; OR แค่คนใดคนหนึ่งผ่านก็ถือว่าผ่าน เลือกให้ตรงกับกฎธุรกิจจริงขององค์กรคุณนะครับ บางบริษัทใช้ AND บางแห่งใช้ OR ขึ้นกับนโยบาย
7. เลือกใช้ตัวไหนดี — เทียบให้เห็นภาพ
หลายคนงงว่าควรใช้ตัวไหนตอนไหน ผมขอลองเทียบให้ดูชัดๆ ครับ:
| โจทย์ | ฟังก์ชันที่เหมาะ | เหตุผล |
|---|---|---|
| เงื่อนไข 2 ทางง่ายๆ (ผ่าน/ไม่ผ่าน) | IF | สั้น ตรงไปตรงมา |
| เงื่อนไขหลายระดับแบบขั้นบันได | IFS | อ่านง่ายกว่า nested IF มาก |
| จับคู่รหัส/ค่าที่กำหนดไว้แล้ว | SWITCH | เทียบค่าเดียวกับหลายกรณี |
| เช็คหลายเกณฑ์พร้อมกัน | IF + AND / OR | ควบคุมทุกเงื่อนไขได้ชัดเจน |
| เงื่อนไขซับซ้อนแบบกำหนดเองได้ | Nested IF | ยืดหยุ่นสุด แต่ดูแลยาก |
⚠️ ข้อควรระวัง: ไม่มี “อันไหนถูกเสมอ” ครับ หลักคือเลือกให้การดูแลในอนาคตง่ายที่สุด — สูตรที่สั้นที่สุดไม่จำเป็นต้องดีที่สุดเสมอไป ถ้าให้คนอื่นมาแก้ต่อแล้วมึน ก็อาจเป็นสูตรที่ “ฉลาดเกินไป” ก็ได้
8. ตัวอย่างประยุกต์จากงานจริง
สถานการณ์ที่ 1: HR คำนวณโบนัสประจำปี
ฝ่ายบุคคลมีข้อมูลยอดขาย/ผลงานของทุกคนเป็นสิบๆ แถว ใช้ nested IF หรือ IFS สร้างสูตรคิดโบนัสแบบหลายระดับ (เหมือนชีท “เงื่อนไขพื้นฐาน”) แล้วลากสูตรลงมาได้ทั้งคอลัมน์ใน 1 ที ถ้าบริษัทเปลี่ยนเกณฑ์ปีหน้า ก็แค่ไปแก้ตรงกลางของ IFS ที่เดียว ไม่ต้องไล่แก้ทุกแถว
สถานการณ์ที่ 2: ร้านค้าจัดประเภทสินค้าอัตโนมัติ
ร้านค้าออนไลน์มีรหัสสินค้าหลายพันรายการ ใช้ SWITCH แปลงรหัสหมวดหมู่ (เช่น S=เสื้อผ้า, G=ของใช้, E=เครื่องใช้ไฟฟ้า) เป็นชื่อหมวดภาษาไทย เพื่อเอาไปกรองหรือทำรายงานได้ทันที เหมือนชีท “IFS และ SWITCH” ส่วนที่ 2
สถานการณ์ที่ 3: ธนาคาร/ลิสซิ่งคัดกรองลูกหนี้
ส่วนสินเชื่อใช้ IF + AND เพื่อตรวจหลายเงื่อนไข (เงินเดือน + อายุงาน + ประวัติ) ในสูตรเดียว แล้วแสดงผล “อนุมัติ/ไม่อนุมัติ” แบบอัตโนมัติ เหมือนชีท “AND OR ประยุกต์” — ลดการดูข้อมูลทีละคนได้เยอะมาก
9. ข้อควรระวังและปัญหาที่เจอบ่อย
เทคนิคพวกนี้ทำได้ไว แต่ก็มีกับดักที่เจอกันบ่อย ลองดูตารางนี้ครับ:
| อาการ | สาเหตุ | วิธีแก้ |
|---|---|---|
| IFS คืน #N/A | ไม่มีเงื่อนไหนตรงและลืมใส่ TRUE | เติม TRUE เป็น “ค่าเริ่มต้น” ท้ายสุดเสมอ |
| SWITCH คืน #N/A | ไม่ตรงกับค่าใดและลืมค่าเริ่มต้น | ใส่ค่าเริ่มต้นเป็นอาร์กิวเมนต์สุดท้าย |
| Nested IF วงเล็บไม่ครบ | ซ้อนหลายชั้นจนสับสน | ใช้ IFS แทน หรือนับเครื่องหมายวงเล็บให้ครบ |
| AND/OR ใช้ผิดความหมาย | สลับเกณฑ์ “ต้องครบ”/“อย่างใดอย่างหนึ่ง” | อ่านกฎธุรกิจให้ชัดก่อนเลือก |
| Nested IF แก้ยากตอนเพิ่มระดับ | โซ่ยาวเกินไป | ย้ายมาใช้ IFS หรือ LOOKUP กับตารางช่วย |
⚠️ ข้อควรระวัง: อย่าเผลอใส่เงื่อนไขซ้อนทับกันเองใน IFS ครับ เช่น เงื่อนไขแรก >=80 แล้วเงื่อนไขสอง >=70 — เพราะถ้าเงื่อนไขแรกจับได้ก่อน เงื่อนไขหลังจะไม่มีโอกาสทำงานเลย ต้องจัดลำดับให้ถูกต้องเสมอ
10. สรุป
สรุปครบทั้ง 4 เครื่องมือแบบกระชับไว้ตรงนี้ครับ:
| ฟังก์ชัน | ใช้เมื่อ | จุดเด่น |
|---|---|---|
| IF | เงื่อนไข 2 ทางสั้นๆ | ง่ายสุด ใช้ได้ทุกเวอร์ชัน |
| Nested IF | เงื่อนไขกำหนดเองซับซ้อน | ยืดหยุ่น แต่ดูแลยาก |
| IFS | เงื่อนไขหลายชั้นแบบขั้นบันได | อ่านง่าย จัดการได้เร็ว |
| SWITCH | จับคู่ค่าจำกัดชุดกับผลลัพธ์ | กระชับ ไม่ต้องเขียนเงื่อนไขยาว |
| IF + AND/OR | เช็คหลายเกณฑ์พร้อมกัน | ควบคุมทุกเงื่อนไขได้ชัดเจน |
เปิดไฟล์ตัวอย่างแล้วลองไล่เล่นทั้ง 3 ชีทดูนะครับ — เริ่มจากชีท “เงื่อนไขพื้นฐาน” เพื่อดู IF กับ Nested IF จากนั้นไป “IFS และ SWITCH” เพื่อเห็นความต่างของสองตัวนี้ แล้วปิดท้ายที่ “AND OR ประยุกต์” เพื่อลองผูกหลายเกณฑ์เข้าด้วยกัน
เลือกใช้ให้ตรงกับโจทย์ แล้วคุณจะไม่ต้องมึนกับสูตรเงื่อนไขอีกเลยครับ บทความหน้าเราจะทำความรู้จักกับ SUMIFS / COUNTIFS / AVERAGEIFS — การรวมค่านับค่าแบบหลายเงื่อนไข เจอกันครับ! 😊