Nested IF statements หรือ IF ซ้อนกัน เป็นหนึ่งในเครื่องมือสูตรที่มีประโยชน์ที่สุดใน Excel พวกมันช่วยให้คุณทดสอบเงื่อนไขหลายเงื่อนไขในสูตรเดียวและตัดสินใจตามสถานการณ์ต่างๆ Nested IF ทำงานตามลำดับเฉพาะและคืนค่าผลลัพธ์ที่ต่างกัน—ทั้งหมดภายในเซลล์เดียว
ในบทช่วยสอนนี้ เราจะแสดงวิธีสร้าง Nested IF statements ในเซลล์เดียว
Nested IF Statement คืออะไร?
Nested IF หมายถึงการวางฟังก์ชัน IF หนึ่งไว้ภายในอีก IF หนึ่ง
Syntax พื้นฐานของ IF:
=IF(logical_test, value_if_true, value_if_false)
- logical_test: เงื่อนไขที่ต้องการตรวจสอบ
- value_if_true: ค่าที่คืนกลับถ้าเงื่อนไขเป็นจริง
- value_if_false: ค่าที่คืนกลับถ้าเป็นเท็จ
โครงสร้าง Nested IF:
Nested IF วาง IF statement อีกตัวหนึ่งไว้ในส่วน value_if_false ทำให้คุณทดสอบเงื่อนไขเพิ่มเติมเมื่อเงื่อนไขแรกไม่เป็นจริง
=IF(condition1, result1, IF(condition2, result2, result3))
อ่านว่า: "ถ้า condition1 เป็นจริง ให้คืน result1 มิฉะนั้น ถ้า condition2 เป็นจริง ให้คืน result2 ถ้าทั้งคู่ไม่เป็นจริง ให้คืน result3" Excel ประเมินเงื่อนไขจากซ้ายไปขวาและหยุดที่ผลลัพธ์ TRUE แรกที่พบ
การสร้าง Nested IF ในเซลล์เดียว
มาสร้างสูตรที่กำหนดเกรดตัวอักษรตามคะแนนสอบ:
กฎการให้เกรด:
- ≥ 90 → A
- ≥ 80 → B
- ≥ 70 → C
- ≥ 60 → D
- < 60 → F
ขั้นตอน 1: เริ่มจากเงื่อนไขสูงสุด
- เลือกเซลล์และใส่สูตรต่อไปนี้
สูตรนี้ตรวจสอบเฉพาะเกรด A
ขั้นตอน 2: เพิ่มเงื่อนไขที่สอง
=IF(C2>=90, "A", IF(C2>=80, "B", ""))
ตอนนี้ Excel ตรวจสอบ:
- คะแนน ≥ 90 หรือไม่?
- ถ้าไม่ใช่ คะแนน ≥ 80 หรือไม่?
ขั้นตอน 3: ต่อยอดการซ้อน
=IF(C2>=90, "A", IF(C2>=80, "B", IF(C2>=70, "C", "")))
ขั้นตอน 4: เสร็จสมบูรณ์สูตร
=IF(C2>=90, "A", IF(C2>=80, "B", IF(C2>=70, "C", IF(C2>=60, "D", "F"))))
- ลากสูตรลงไปเติมเซลล์อื่นๆ
นี่คือ Nested IF สมบูรณ์ในเซลล์เดียว สูตรนี้กำหนดเกรดตามคะแนน ลำดับสำคัญมาก: ถ้าคุณตรวจสอบ ≥ 60 ก่อน ทุกคะแนนมากกว่า 60 จะคืนค่า D
ทำให้ Nested IF อ่านง่ายขึ้น
สำหรับ Nested IF ที่ซับซ้อน พิจารณาใช้การขึ้นบรรทัดใหม่ในแถบสูตรเพื่อเพิ่มความอ่านง่าย:
- วางเคอร์เซอร์หน้า IF ตัวที่สอง
- กด Alt + Enter ภายในแถบสูตร
- ทำซ้ำสำหรับส่วนที่เหลือของสูตร
=IF(C2>=90, "A",
IF(C2>=80, "B",
IF(C2>=70, "C",
IF(C2>=60, "D", "F"))))
Excel ไม่สนใจช่องว่าง แต่มนุษย์สนใจ
Nested IF กับเงื่อนไขข้อความ
ใช้โบนัสตามแผนกตามช่วงต่อไปนี้:
- Sales → 10%
- Marketing → 7%
- อื่นๆ → 5%
สมมติว่าแผนกอยู่ใน C2:
=IF(C2="Sales", 0.1, IF(C2="Marketing", 0.07, 0.05))
สูตร Nested IF นี้คืนค่าอัตราโบนัสสำหรับแต่ละแผนก
การนำ AND/OR เข้าไปใน Nested IF
Nested IFs สามารถรวมกับฟังก์ชันอย่าง AND, OR หรือการคำนวณได้
กฎค่าขนส่ง (ในเซลล์เดียว):
- ถ้า Country = USA และ OrderTotal ≥ 80 → Free Shipping
- Else ถ้า Country = USA และ OrderTotal < 80 → $6 Shipping
- Else ถ้า Country ≠ USA และ OrderTotal ≥ 200 → International Free Shipping
- Else → International $15 Shipping
เลือกเซลล์และใส่สูตรต่อไปนี้:
=IF(AND(C2="USA",D2>=80),"Free Shipping",
IF(AND(C2="USA",D2<80),"$6 Shipping",
IF(AND(C2<>"USA",D2>=200),"International Free Shipping","International $15 Shipping")))
สูตรนี้ตรวจสอบเงื่อนไขแต่ละข้อตามลำดับและคืนค่าป้ายชื่อขนส่งที่ตรงกับเงื่อนไขแรก แล้วหยุด ถ้าไม่มีเงื่อนไขไหนตรง จะใช้ผลลัพธ์ "else" สุดท้าย: International $15 Shipping
กฎส่วนลด (OR):
- ถ้า VIP หรือ OrderTotal ≥ 500 → 20%
- Else ถ้า OrderTotal ≥ 200 → 15%
- Else ถ้า OrderTotal ≥ 100 → 10%
- Else → 5%
เลือกเซลล์และใส่สูตรต่อไปนี้:
=IF(OR(E2="VIP",D2>=500),0.2,
IF(D2>=200,0.15,
IF(D2>=100,0.1,0.05)))
Excel ตรวจสอบก่อนว่าลูกค้าเป็น VIP หรือยอดสั่งซื้อ ≥ 500 ถ้าใช่ คืนค่า 20% ถ้าไม่ ตรวจสอบ ≥ 200 สำหรับ 15% แล้ว ≥ 100 สำหรับ 10% มิฉะนั้นคืนค่า 5%
เมื่อไหร่ควรใช้ Nested IF?
ใช้ Nested IF เมื่อ:
- เงื่อนไขต้องตรวจสอบตามลำดับ
- ตรรกะเป็นแบบกฎเกณฑ์ (rule-based)
- ผลลัพธ์ขึ้นอยู่กับช่วง ไใช่การจับคู่ที่แน่นอน
หลีกเลี่ยง Nested IF เมื่อ:
- เงื่อนไขเป็นอิสระต่อกัน—ใช้ฟังก์ชัน IFS (Excel 2016+)
- สำหรับการค้นหาแบบช่วง ใช้ฟังก์ชัน XLOOKUP
- สำหรับการจับคู่ที่แน่นอน ใช้ฟังก์ชัน SWITCH
- ถ้าตรรกะซับซ้อนเกินไป ใช้คอลัมน์ช่วย (helper columns)
ข้อผิดพลาดทั่วไปและการแก้ไข
- #VALUE! error: วงเล็บไม่ตรงหรืออาร์กิวเมนต์ไม่ถูกต้อง นับวงเล็บเปิด/ปิด (ต้องเท่ากัน)
- ข้อบกพร่องทางตรรกะ: ทดสอบกรณีขอบ (เช่น คะแนน 80 พอดีในระบบเกรด)
- ลำดับผิด: ตรวจสอบจากสูงไปต่ำเสมอ
- วงเล็บปิดขาด: Excel ต้องการวงเล็บปิดหนึ่งต่อ IF หนึ่ง
- Nested IFs มากเกินไป: Excel รองรับ IF เยอะ แต่อ่านยากขึ้นเร็ว ถ้าตรรกะเกิน 5-6 เงื่อนไข พิจารณา IFS หรือตารางค้นหา
สรุป
โดยปฏิบัติตามบทช่วยสอนนี้ คุณสามารถสร้าง Nested IF statements ในเซลล์เดียวได้ Nested IF เป็นเครื่องมือทรงพลังสำหรับจัดการหลายเงื่อนไข แต่ต้องการลำดับและทดสอบที่ถูกต้อง มันให้ Excel ตัดสินใจหลายอย่างในเซลล์เดียวโดยทดสอบเงื่อนไขตามลำดับและคืนค่าผลลัพธ์ที่ต่างกันสำหรับแต่ละกรณี วางแผนตรรกะในลำดับที่ถูกต้องและเก็บผลลัพธ์ else สุดท้ายไว้ท้ายสุด ด้วยการฝึกฝน คุณสามารถสร้างตรรกะตัดสินใจที่ซับซ้อนซึ่งจัดการสถานการณ์หลากหลายได้อย่างมีประสิทธิภาพ ถ้าสูตรเริ่มยาวหรือสับสน มันเป็นสัญญาณว่าควรเปลี่ยนไปใช้ IFS, SWITCH หรือตารางค้นหา ซึ่งอ่านและบำรุงรักษาง่ายกว่า