ข้ามไปเนื้อหาหลัก
Wise Success (Thailand)
เทคนิค Excel

สูตร IF หลายเงื่อนไขใน Excel: IF ซ้อน, IFS, AND, OR พร้อมตัวอย่าง

· อ่านประมาณ 10 นาที

สูตร IF คือสูตรที่ทำให้ Excel "ตัดสินใจ" แทนเราได้ เช่น ผ่านหรือไม่ผ่าน ได้โบนัสหรือไม่ ค้างชำระหรือยัง เมื่องานซับซ้อนขึ้นจนต้องใช้หลายเงื่อนไข หลายคนเขียน IF ซ้อนกันจนอ่านไม่ออก บทความนี้สอนใช้ IF หลายเงื่อนไข ทั้งแบบ IF ซ้อน (Nested IF), IFS, AND, OR และทางเลือกที่ทำให้สูตรสั้นและแก้ไขง่ายกว่าเดิม

โครงสร้างสูตร IF

=IF(logical_test, value_if_true, value_if_false)
  • logical_test เงื่อนไขที่ต้องการตรวจ เช่น B2>=50
  • value_if_true ผลลัพธ์เมื่อเงื่อนไขเป็นจริง
  • value_if_false ผลลัพธ์เมื่อเงื่อนไขเป็นเท็จ
=IF(B2>=50, "ผ่าน", "ไม่ผ่าน")

ข้อความต้องอยู่ในเครื่องหมายคำพูด "..." ส่วนตัวเลขและสูตรไม่ต้องใส่ เช่น =IF(C2>100000, C2*5%, 0) คิดโบนัส 5% เมื่อยอดขายเกิน 100,000 บาท

เครื่องหมายเปรียบเทียบที่ใช้ในเงื่อนไข

เครื่องหมายความหมายตัวอย่าง
=เท่ากับC2="บัญชี"
<>ไม่เท่ากับC2<>"บัญชี"
> / <มากกว่า / น้อยกว่าB2>100
>= / <=มากกว่าหรือเท่ากับ / น้อยกว่าหรือเท่ากับB2<=TODAY()

IF หลายเงื่อนไขแบบ "และ" ด้วย AND

ใช้เมื่อต้องการให้ทุกเงื่อนไขเป็นจริง เช่น ผ่านการอบรมเมื่อคะแนนสอบตั้งแต่ 60 และ เข้าเรียนครบ 80%

=IF(AND(B2>=60, C2>=80%), "ผ่าน", "ไม่ผ่าน")

IF หลายเงื่อนไขแบบ "หรือ" ด้วย OR

ใช้เมื่อเงื่อนไขใดเงื่อนไขหนึ่งเป็นจริงก็พอ เช่น ได้สิทธิ์ส่วนลดถ้าเป็นสมาชิก หรือ ซื้อตั้งแต่ 3,000 บาท

=IF(OR(D2="สมาชิก", E2>=3000), "ได้ส่วนลด", "-")

ใช้ AND กับ OR ร่วมกันได้ เช่น =IF(AND(B2="ขาย", OR(C2>=100000, D2>=50)), "ได้โบนัส", "") คือ พนักงานฝ่ายขายที่ยอดขายถึง 100,000 หรือปิดได้ 50 บิล

IF ซ้อนกัน (Nested IF) สำหรับหลายระดับ

เมื่อผลลัพธ์มีมากกว่า 2 แบบ เช่น ตัดเกรด A, B, C, D ต้องใส่ IF ไว้ในช่อง value_if_false ของ IF ก่อนหน้า

=IF(B2>=80, "A", IF(B2>=70, "B", IF(B2>=60, "C", "D")))

ข้อควรระวัง: ต้องเรียงเงื่อนไขจากค่ามากไปน้อย (เมื่อใช้ >=) ถ้าเขียน B2>=60 ไว้ก่อน คนที่ได้ 90 คะแนนจะได้ C เพราะ Excel หยุดที่เงื่อนไขแรกที่เป็นจริง และต้องปิดวงเล็บให้ครบตามจำนวน IF

IFS: เขียนหลายเงื่อนไขแบบไม่ต้องซ้อน

ใน Excel 2019 ขึ้นไปและ Microsoft 365 ใช้ IFS แทน IF ซ้อนได้ อ่านง่ายกว่ามาก

=IFS(B2>=80, "A", B2>=70, "B", B2>=60, "C", TRUE, "D")

ใส่เป็นคู่ "เงื่อนไข, ผลลัพธ์" ไปเรื่อย ๆ และคู่สุดท้ายใช้ TRUE เป็น "กรณีอื่นทั้งหมด" ถ้าไม่ใส่ แล้วไม่มีเงื่อนไขใดเป็นจริง จะได้ #N/A

SWITCH: เมื่อเทียบค่าตรงตัวหลายค่า

ถ้าเงื่อนไขเป็นการเทียบค่าเดียวกับหลายตัวเลือก เช่น แปลงรหัสแผนกเป็นชื่อ ใช้ SWITCH (Excel 2019 ขึ้นไป)

=SWITCH(C2, "ACC", "บัญชี", "HR", "บุคคล", "SAL", "ขาย", "อื่น ๆ")

ตัวอย่าง IF ที่ใช้บ่อยในงานจริง

1. ไม่แสดงผลเมื่อเซลล์ว่าง

=IF(B2="", "", B2*C2)

ถ้ายังไม่กรอกจำนวน ให้เว้นว่างแทนการแสดง 0 ทำให้ฟอร์มดูสะอาด

2. ตรวจสถานะค้างชำระ

=IF(AND(D2="", C2<TODAY()), "เกินกำหนด", IF(D2="", "รอชำระ", "ชำระแล้ว"))

C2 คือวันครบกำหนด D2 คือวันที่รับเงิน ถ้ายังไม่รับเงินและเลยกำหนดแล้วจะแสดง "เกินกำหนด"

3. ตรวจว่าข้อความมีคำที่ต้องการไหม

=IF(ISNUMBER(SEARCH("ด่วน", B2)), "งานด่วน", "ปกติ")

IF ปกติใช้ Wildcard * ไม่ได้ ต้องใช้ SEARCH หาคำ แล้วใช้ ISNUMBER ตรวจว่าเจอหรือไม่

4. ใช้ IF ร่วมกับ COUNTIF ตรวจข้อมูลซ้ำ

=IF(COUNTIF($A$2:$A$500, A2)>1, "ซ้ำ", "")

ใช้ตรวจรหัสพนักงานหรือเลขที่ใบแจ้งหนี้ที่กรอกซ้ำ

เมื่อไรไม่ควรใช้ IF ซ้อน

ถ้าเงื่อนไขเป็น "ขั้นบันได" ที่อาจเปลี่ยนในอนาคต เช่น อัตราค่าคอมมิชชัน ขั้นภาษี หรือส่วนลดตามยอดซื้อ ไม่ควรเขียนตัวเลขฝังไว้ในสูตร IF เพราะเมื่อนโยบายเปลี่ยนต้องตามแก้สูตรทุกเซลล์

ทางที่ดีกว่าคือทำตารางอัตราแยกไว้ แล้วใช้ XLOOKUP แบบ match_mode -1 ดึงอัตราที่ตรงขั้น เมื่อนโยบายเปลี่ยนก็แก้แค่ตาราง

=XLOOKUP(C2, อัตรา!A2:A6, อัตรา!B2:B6, , -1)

ปัญหาที่พบบ่อย

  • #NAME? ลืมใส่เครื่องหมายคำพูดครอบข้อความ เช่น =IF(B2=ผ่าน, ...) ต้องเป็น "ผ่าน" หรือใช้ IFS/SWITCH ใน Excel 2016 ที่ไม่มีฟังก์ชันนี้
  • ผลลัพธ์ผิดทุกแถว มักเกิดจากเรียงเงื่อนไขผิดลำดับ หรือเปรียบเทียบตัวเลขที่ถูกเก็บเป็นข้อความ
  • ใส่ตัวเลขในเครื่องหมายคำพูด เช่น "0" จะได้ข้อความ "0" ไม่ใช่ตัวเลข ทำให้ SUM ไม่รวมค่านั้น
  • Formula has too many arguments ปิดวงเล็บไม่ครบหรือผิดตำแหน่ง ลองใช้ IFS แทนเพื่อลดจำนวนวงเล็บ

คำถามที่พบบ่อย

IF ซ้อนได้กี่ชั้น

Excel 2007 ขึ้นไปซ้อนได้สูงสุด 64 ชั้น แต่ในทางปฏิบัติถ้าเกิน 3–4 ชั้นควรเปลี่ยนไปใช้ IFS หรือตารางอ้างอิงร่วมกับ XLOOKUP

IFS กับ IF ซ้อน ต่างกันไหม

ผลลัพธ์เหมือนกัน แต่ IFS อ่านง่ายกว่าและไม่ต้องนับวงเล็บ ข้อเสียคือใช้ได้เฉพาะ Excel 2019 ขึ้นไป ถ้าส่งไฟล์ให้คนใช้ Excel 2016 ควรใช้ IF ซ้อน

สรุป

ใช้ IF สำหรับ 2 ทางเลือก ใช้ AND / OR เมื่อมีหลายเงื่อนไข ใช้ IFS เมื่อมีหลายระดับ และใช้ตารางอ้างอิงกับ XLOOKUP เมื่อเงื่อนไขเป็นขั้นบันไดที่อาจเปลี่ยน แค่นี้สูตรของคุณจะสั้น อ่านง่าย และแก้ไขได้โดยคนอื่นในทีม

สูตรตรรกะ IF, IFS และ Nested IF เป็นหัวข้อแรกของหลักสูตรอบรม Excel Advance ถ้ายังไม่คล่องสูตรพื้นฐาน อ่าน20 สูตร Excel พื้นฐาน หรือเริ่มที่Excel Basic สำหรับองค์กรที่ต้องการให้วิทยากรสอน Excel กับงานของทีมโดยตรง ดูรายละเอียดอบรม In-house

บทความที่เกี่ยวข้อง

เทคนิค Excel ·

Power Query คืออะไร? รวมไฟล์ Excel หลายไฟล์อัตโนมัติ ไม่ต้องคัดลอกวาง

Power Query คือเครื่องมือใน Excel ที่รวมและล้างข้อมูลจากหลายไฟล์ได้อัตโนมัติ ตั้งขั้นตอนครั้งเดียว เดือนถัดไปแค่กด Refresh บทความนี้สอนทีละขั้นพร้อมเทคนิคที่ใช้บ่อย

อ่านต่อ →

เทคนิค Excel ·

สูตรคำนวณอายุงานใน Excel ด้วย DATEDIF และสูตรวันที่สำหรับงาน HR

รวมสูตร Excel สำหรับงาน HR ตั้งแต่คำนวณอายุงานด้วย DATEDIF อายุพนักงาน วันครบทดลองงาน วันเกษียณ นับวันทำงานด้วย NETWORKDAYS และคำนวณสิทธิ์ตามอายุงาน

อ่านต่อ →

เทคนิค Excel ·

วิธีทำ Dropdown List ใน Excel ด้วย Data Validation (รวม Dropdown 2 ชั้น)

Dropdown List ช่วยให้ข้อมูลใน Excel สะอาดตั้งแต่ต้นทาง บทความนี้สอนทำ Dropdown 3 แบบ รวมถึง Dropdown 2 ชั้น และใช้ Data Validation ป้องกันการกรอกข้อมูลผิด

อ่านต่อ →

ต้องการจัดอบรมให้ทีมในองค์กร?

ปรับเนื้อหาให้ตรงกับงานจริงของทีมคุณ สอนที่บริษัทหรือ Online ได้ ส่งรายละเอียดมา เราตอบกลับพร้อมใบเสนอราคา

☎ โทรเลย LINE @wisesuccess

เลือกประเภทคุกกี้ที่คุณอนุญาต ปรับเปลี่ยนได้ทุกเมื่อที่ลิงก์ "ตั้งค่าคุกกี้" ท้ายเว็บไซต์