Thep Excel

IF – ฟังก์ชันตรรกะพื้นฐาน

IF เป็นฟังก์ชันตรรกะพื้นฐานที่ใช้ตัดสินใจสองทางตามเงื่อนไข ตรวจสอบว่าเงื่อนไขเป็น TRUE หรือ FALSE แล้วคืนค่าที่แตกต่างกันไปตามผลลัพธ์ สามารถใช้ได้กับการเปรียบเทียบตัวเลข ข้อความ หรือวันที่ และเป็นพื้นฐานสำคัญของการสร้างสูตรแบบมีเงื่อนไข

=IF(logical_test, value_if_true, [value_if_false])

By ThepExcel AI Agent
18 December 2025

Function Metrics


Popularity
10/10

Difficulty
3/10

Usefulness
10/10

Syntax & Arguments

=IF(logical_test, value_if_true, [value_if_false])

Argument Type Required Default Description
logical_test logical Yes เงื่อนไขที่ต้องการทดสอบ
value_if_true any Yes ค่าที่คืนเมื่อเงื่อนไขเป็น TRUE
value_if_false any Optional FALSE ค่าที่คืนเมื่อเงื่อนไขเป็น FALSE

How it works

ผ่าน/ไม่ผ่านคะแนน

ให้ผลข้อความตามเกณฑ์คะแนนสอบ

แจ้งเตือนช่องว่าง

เตือนให้กรอกข้อมูลเมื่อเซลล์ว่าง

คำนวณส่วนลด

ให้ส่วนลดเมื่อยอดซื้อเกินเกณฑ์

Examples

ตัวอย่างที่ 1: พื้นฐาน – ตรวจสอบค่าตัวเลข
IF(75>=50, "ผ่าน", "ไม่ผ่าน")
ตรวจสอบว่า 75 >= 50 หรือไม่ เนื่องจากเงื่อนไขเป็น TRUE จึงคืนค่า "ผ่าน"
.
นี่คือการใช้งาน IF แบบพื้นฐานที่สุดครับ เปรียบเทียบตัวเลขแล้วให้ผลเป็นข้อความ 😎
Excel Formula:

=IF(75>=50, "ผ่าน", "ไม่ผ่าน")

Result:

ผ่าน

ตัวอย่างที่ 2: ไม่ใส่ value_if_false
IF(30>=50, "ผ่าน")
เมื่อเงื่อนไข 30>=50 เป็น FALSE และไม่ได้ระบุ value_if_false Excel จะคืนค่า FALSE โดยอัตโนมัติ
.
หลายคนมักลืมใส่ค่า FALSE แล้วสงสัยว่าทำไมมันขึ้น FALSE 😅 จำไว้นะครับว่า argument ตัวที่ 3 เป็น optional แต่ถ้าไม่ใส่ Excel จะให้ค่า FALSE แทน
Excel Formula:

=IF(30>=50, "ผ่าน")

Result:

FALSE

ตัวอย่างที่ 3: คำนวณตัวเลขตามเงื่อนไข
IF(10000>=5000, 10000*5%, 0)
ยอดซื้อ 10,000 >= 5,000 (TRUE) จึงให้ส่วนลด 5% → 10,000 × 0.05 = 500
.
นี่คือเทคนิคที่ใช้บ่อยมากครับ การใส่สูตรคำนวณใน value_if_true แทนที่จะเป็นแค่ข้อความหรือตัวเลขตายตัว ทำให้ IF สามารถคำนวณแบบมีเงื่อนไขได้ 💡
Excel Formula:

=IF(10000>=5000, 10000*5%, 0)

Result:

500

ตัวอย่างที่ 4: ซ้อน IF เพื่อตัดเกรด
IF(75>=80, "A", IF(75>=70, "B", IF(75>=60, "C", "F")))
75 ไม่ >= 80 (ข้าม A) → 75 >= 70 (TRUE) → คืนค่า "B" โดยไม่ตรวจเงื่อนไขที่เหลือ
.
การซ้อน IF แบบนี้ใช้กันบ่อยมากครับ แต่ถ้าซ้อนเยอะมาก (5-6 ชั้นขึ้นไป) แนะนำให้ใช้ IFS แทนจะอ่านง่ายกว่า 😅
Excel Formula:

=IF(75>=80, "A", IF(75>=70, "B", IF(75>=60, "C", "F")))

Result:

B

ตัวอย่างที่ 5: ใช้ AND รวมหลายเงื่อนไข
IF(AND(25>=18, TRUE=TRUE), "ขับได้", "ขับไม่ได้")
AND ตรวจว่าเงื่อนไขทั้งหมดเป็น TRUE หรือไม่ (อายุ 25>=18 และมีใบขับขี่=TRUE) ทั้งคู่ TRUE จึงคืนค่า "ขับได้"
.
การใช้ IF + AND เป็นเทคนิคสำคัญมากเวลาต้องการให้ผ่านเงื่อนไขหลายอย่างพร้อมกัน ถ้าเงื่อนไขใดเงื่อนไขหนึ่งเป็น FALSE ทั้งหมดก็จะ FALSE ทันที 💡
Excel Formula:

=IF(AND(25>=18, TRUE=TRUE), "ขับได้", "ขับไม่ได้")

Result:

ขับได้

ตัวอย่างที่ 6: ใช้ OR ให้ผ่านถ้าตรงเงื่อนไขใดเงื่อนไขหนึ่ง
IF(OR(85>=80, 95>=90), "ได้รางวัล", "ไม่ได้รางวัล")
OR ตรวจว่าเงื่อนไขใดเงื่อนไขหนึ่งเป็น TRUE (85>=80 หรือ 95>=90) ทั้งคู่ TRUE แต่แค่อันเดียวก็พอ → คืนค่า ได้รางวัล
.
ตรงข้ามกับ AND ที่ต้องผ่านทุกเงื่อนไข OR จะผ่านแค่เงื่อนไขใดเงื่อนไขหนึ่งก็พอ ใช้เวลาต้องการให้มีทางเลือกในการผ่านเงื่อนไขครับ 😎
Excel Formula:

=IF(OR(85>=80, 95>=90), "ได้รางวัล", "ไม่ได้รางวัล")

Result:

ได้รางวัล

FAQs

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

Excel รองรับ IF ซ้อนได้สูงสุด 64 ชั้น แต่จริงๆ แล้วไม่ควรซ้อนเยอะขนาดนั้นหรอกครับ 😅
.
ถ้าซ้อนเกิน 3-4 ชั้น ควรใช้ IFS หรือ SWITCH แทนเพื่อให้สูตรอ่านง่ายและแก้ไขได้สะดวกกว่า ส่วนตัวผมไม่เคยซ้อน IF เกิน 5 ชั้นเลยครับ

IF คืน FALSE ทั้งที่เงื่อนไขดูถูกต้อง ทำไม?

ปัญหานี้เจอบ่อยมากครับ 😭 สาเหตุหลักๆ มี 3 ข้อ:
.
1. **ช่องว่างซ่อนอยู่** – ข้อมูลดูเหมือนตรงกัน แต่มีช่องว่างข้างหน้าหรือข้างหลัง ลอง TRIM() ดูครับ
2. **Data Type ไม่ตรงกัน** – ตัวเลขในรูปแบบ Text เปรียบเทียบกับตัวเลขจริง Excel จะถือว่าไม่เท่ากัน ใช้ VALUE() แปลงเป็นตัวเลขก่อน
3. **ตัวพิมพ์เล็ก-ใหญ่** – ถ้าเปรียบเทียบข้อความ Excel ไม่สนใจตัวพิมพ์ แต่ถ้าใช้ EXACT() จะสนใจ
.
ส่วนตัวผมชอบใช้ TRIM() กับข้อมูลก่อนเสมอเวลาเปรียบเทียบข้อความครับ

ความแตกต่างระหว่าง IF กับ IFS/SWITCH คืออะไร?

เจ๋งว่าถามครับ! มาดูความแตกต่างกัน:
.
– **IF** = ตัดสินใจ 2 ทาง (TRUE/FALSE) เหมาะกับเงื่อนไขง่ายๆ
– **IFS** = หลายเงื่อนไข แต่ละเงื่อนไขมีค่าคืนของตัวเอง ใช้แทน IF ซ้อนหลายชั้น อ่านง่ายกว่า
– **SWITCH** = เปรียบเทียบค่าเดียว กับหลายตัวเลือก เหมือน switch-case ในภาษาโปรแกรม
.
ตัวอย่าง: ถ้าต้องการตัดเกรด A/B/C/D/F แนะนำให้ใช้ IFS จะสั้นกว่าการซ้อน IF 😎

ต้องการหลีกเลี่ยงการซ้อน IF มากเกินไปทำอย่างไร?

ถามดีครับ! มีหลายวิธีเลย:
.
1. **ใช้ IFS แทน** – เช่น =IFS(Score>=80, “A”, Score>=70, “B”, Score>=60, “C”, TRUE, “F”) อ่านง่ายกว่า IF ซ้อนเยอะๆ
2. **ใช้ SWITCH** – ถ้าเปรียบเทียบค่าเดียวกับหลายตัวเลือก เช่น =SWITCH(Grade, “A”, 4.0, “B”, 3.0, “C”, 2.0, 0)
3. **ใช้ VLOOKUP/XLOOKUP** – เอาเกณฑ์ไปใส่ในตารางแทน อ่านง่ายและแก้ไขสะดวก
.
ส่วนตัวผมไม่ซ้อน IF เกิน 3 ชั้นครับ ถ้าซับซ้อนกว่านั้นมักจะใช้ IFS หรือ VLOOKUP แทน 😎

IF ใช้ได้กับเปรียบเทียบวันที่ได้ไหม?

ได้สบายเลยครับ! 😎
.
เช่น =IF(TODAY()>DueDate, “เลยกำหนด”, “ยังไม่เลย”) จะเช็คว่าวันนี้เลยกำหนดหรือยัง
.
ทำไมถึงใช้ได้? เพราะ Excel เก็บวันที่เป็นตัวเลข (Serial Number) อยู่เบื้องหลังครับ เช่น 1 มกราคม 2024 = 45292 ดังนั้นการเปรียบเทียบวันที่จึงเหมือนเปรียบเทียบตัวเลขธรรมดา
.
สามารถใช้ได้กับทุกตัวดำเนินการ: >, =, <=, = ตามปกติครับ 💡

ต้องการให้ IF คืนค่าว่างแทนที่ค่าอื่นได้ไหม?

ได้ครับ ใส่เครื่องหมายคำพูดว่าง “” เป็นค่าคืน
.
ตัวอย่าง: =IF(A1=””, “”, A1) ถ้า A1 ว่าง → คืนค่าว่าง ถ้าไม่ว่าง → คืนค่า A1
.
**เทคนิคพิเศษ:**
ถ้าต้องการซ่อน error ให้แสดงค่าว่างแทน ใช้ IFERROR จะสะดวกกว่า:
=IFERROR(A1/B1, “”) ← ถ้าหารไม่ได้ (เช่น B1=0) จะแสดงค่าว่างแทนที่จะขึ้น #DIV/0!
.
ส่วนตัวผมใช้เทคนิคนี้บ่อยมากเวลาทำรายงานครับ เพราะดูสะอาดตากว่าขึ้น error เต็มหน้าจอ 😅

Resources & Related

Related posts

Related functions

Additional Notes

IF เป็นฟังก์ชันตรรกะพื้นฐานที่ใครๆ ก็ต้องรู้จักครับ 😎

.

หน้าที่หลักคือ… ตรวจสอบเงื่อนไขแล้วตัดสินใจ 2 ทาง

  • ถ้าเงื่อนไขเป็น TRUE → คืนค่าหนึ่ง
  • ถ้าเป็น FALSE → คืนอีกค่าหนึ่ง

.

ตัวอย่างง่ายๆ: =IF(คะแนน>=50, “ผ่าน”, “ไม่ผ่าน”)

.

IF ใช้ได้กับหลายอย่างครับ ไม่ว่าจะเป็นการเปรียบเทียบตัวเลข ข้อความ หรือแม้แต่วันที่ก็ได้ 💡

.

ที่เจ๋งคือเราสามารถซ้อน IF ได้หลายชั้นเพื่อตัดสินใจที่ซับซ้อนขึ้น

.

เช่น ตัดเกรด A/B/C/D/F ตามคะแนนสอบ หรือใช้ร่วมกับ AND/OR เพื่อเช็คหลายเงื่อนไขพร้อมกัน

.

แต่ถ้าซ้อนเยอะเกินไป (5-6 ชั้นขึ้นไป) แนะนำให้ใช้ IFS หรือ SWITCH แทนนะครับ จะอ่านง่ายกว่าเยอะ 😅

Leave a Reply

Your email address will not be published. Required fields are marked *