TLDR สรุปสั้นๆ
IF ตรวจสอบเงื่อนไขว่าจริงหรือเท็จ แล้วคืนค่าที่กำหนดตามผลลัพธ์แยกเป็น 2 กรณี
คำอธิบาย
ฟังก์ชัน IF ช่วยเปรียบเทียบเงื่อนไขและคืนค่าที่ต่างกัน 2 กรณี ขึ้นอยู่กับผลของการเปรียบเทียบนั้น โดยถ้าเทียบแล้วเงื่อนไขเป็นจริง (TRUE) จะสามารถใช้สูตรแบบนึง ถ้าไม่จริง (FALSE) จะสามารถใช้สูตรอีกแบบนึงแทนได้ เช่น ถ้าคะแนนได้ตั้งแต่ 50 ขึ้นไปให้แสดง “ผ่าน” ถ้าไม่ใช่ให้แสดง “ไม่ผ่าน”
มีครั้งแรกในเวอร์ชันไหน
2003 หรือ Version ก่อนหน้า
รูปแบบคำสั่ง (Syntax)
IF(logical_test, value_if_true, [value_if_false])
Arguments
- logical_test (Required – logical expression)
เงื่อนไขที่ต้องการตรวจสอบ (เป็นค่า True หรือ False หรือตัวเลข) - value_if_true (Required – any value)
ค่าที่จะคืนเมื่อผลของ logical_test เป็น True หรือเลขที่ไม่ใช่ 0 - value_if_false (Optional – any value)
ค่าที่จะคืนเมื่อผลของ logical_test เป็น False หรือเลข 0
ตัวอย่างการใช้งาน (Examples)

- Formula:
Description: ถ้าเซลล์ D3 เท่ากับ ‘book’ (ไม่สนใจพิมพ์เล็กพิมพ์ใหญ่) ให้คืนค่า G3 มิฉะนั้นคืนค่า 0=IF(D3="book",G3,0)
Result: 1,100 (ค่าใน G3) - Formula:
Description: ตรวจสอบว่ายอดขายรวมทั้งหมด (จากคอลัมน์ SalesAmt ในตาราง TxData) เกิน 5,000 หรือไม่ แล้วแสดงผลลัพธ์เป็นข้อความ “Pass Target” หรือ “Fail”=IF(SUM(TxData[SalesAmt])>5000,"Pass Target","Fail")
Result: ได้ข้อความว่า “Pass Target” - Formula:
Description: แบ่งเกรดจากยอดขายใน G3 (SalesAmt) เป็น 3 ระดับ ซึ่งต้องใช้ IF 2 ตัวซ้อนกัน=IF(G3>2000, "High", IF(G3>=1000, "Medium", "Low"))
- “High” ถ้ายอดขายมากกว่า 2,000
- “Medium” ถ้ายอดขายอยู่ระหว่าง 1,000 ถึง 2,000
- “Low” ถ้ายอดขายน้อยกว่า 1,000
Result: ได้ข้อความว่า “Medium”
- Formula:
Description: ถ้า SUM(TxData[SalesAmt]) มียอดขายรวมไม่ใช่ 0 → แสดง “Sales Exist” แต่ถ้าเป็น 0 จะขึ้นว่า “No Sales”=IF(SUM(TxData[SalesAmt]), "Sales Exist", "No Sales")
Result: ได้ข้อความว่า “Sales Exist”
Tips & Tricks
- ถ้าต้องการได้ผลลัพธ์แค่เป็นค่า TRUE/FALSE เราไม่ต้องใช้ IF ก็ได้ เพราะแค่ใช้การเปรียบเทียบเชิง Logic เช่น A1=”cat” หรือใช้ฟังก์ชันตรวจสอบ เช่น ISNUMBER พวกนี้ก็ได้ค่า TRUE/FALSE แล้ว
- ตรง Logical Test นอกจากจะใส่ TRUE/FALSE ได้แล้ว ถ้าเราใส่เป็นแค่ตัวเลขแทน มันจะมองเลขที่เป็น 0 คือ FALSE นอกนั้นถือเป็น TRUE ทั้งหมด (รวมถึงเลขติดลบ) ซึ่งเหมาะกับสูตรแบบ Array ที่ใช้ Boolean Logic แทน AND/OR มากๆ
- ถ้าอยากเขียนสูตร IF ซ้อนกัน แนะนำใช้ Alt+Enter เพื่อขึ้นบรรทัดใหม่ในช่องเดิม สูตรจะอ่านง่ายขึ้น เช่น
=IF(G3>2000, "High",
IF(G3>=1000, "Medium",
"Low"))
ข้อควรระวัง (Cautions)
ระวังการเขียนฟังก์ชันที่ซับซ้อนด้วย IF ซ้อน (Nested IF) เพราะอาจทำให้สูตรยากต่อการจัดการและเกิดข้อผิดพลาดได้ ควรตรวจสอบการสะกดให้ถูกต้องเพื่อไม่ให้เกิดข้อผิดพลาดเช่น #NAME? ลองพิจารณาใช้สูตรอื่นมาช่วย เช่น
- ถ้าเงื่อนไขเป็นช่วง สามารถใช้ VLOOKUP (Approximate Match) หรือ XLOOKUP (Exact Match or Next Larger, Smaller items)
- ถ้าเงื่อนไขซับซ้อน อาจใช้ IFS หรือ SWITCH แทน
ฟังก์ชันที่เกี่ยวข้อง
References
- Microsoft IF Function Official Documentation
- Xelplus Excel IF Function Guide
- Ablebits IF Function Tutorial
ขอบคุณที่เข้ามาอ่านนะครับ ❤️
Leave a Reply