Function IF() with Excel

อ.ดร. สมศักดิ์ จันทร์เอม

วิทยาลัยนานาชาตินวัตกรรมดิจิทัล มหาวิทยาลัยเชียงใหม่

26 มีนาคม 2569

ในโปรแกรม Excel ฟังก์ชัน IF สามารถใช้ได้หลายรูปแบบขึ้นอยู่กับวัตถุประสงค์ โดยมีตรรกะพื้นฐานที่อิงกับ ตัวดำเนินการเงื่อนไข (conditional operators) ซึ่งสามารถแบ่งได้เป็น 3 รูปแบบหลัก ดังแสดงในตารางด้านล่างนี้

สัญลักษณ์ ความหมาย ตัวอย่างสูตร (Formula) ผลลัพธ์
= เท่ากับ =A1=10 TRUE / FALSE
<> ไม่เท่ากับ =A1<>10 TRUE / FALSE
> มากกว่า =A1>10 TRUE / FALSE
< น้อยกว่า =A1<10 TRUE / FALSE
>= มากกว่าหรือเท่ากับ =A1>=10 TRUE / FALSE
<= น้อยกว่าหรือเท่ากับ =A1<=10 TRUE / FALSE

1. ฟังก์ชัน IF แบบพื้นฐาน

ใช้สำหรับทดสอบเงื่อนไข และคืนค่าผลลัพธ์ 1 ค่าในกรณีที่เงื่อนไขเป็น TRUE และอีกค่าในกรณีที่เป็น FALSE

รูปแบบ (Syntax):

=IF(condition, value_if_true, value_if_false)

ตัวอย่าง:

=IF(B2>10, "มากกว่า 10", "น้อยกว่าหรือเท่ากับ 10")

ตารางข้อมูลตัวอย่าง ผู้เรียน 10 คน

คัดลอกและวางตารางด้านล่างลงใน Excel โดยเริ่มที่เซลล์ A1

Name (ชื่อ) Exam Score (คะแนนสอบ) Age (อายุ) Status (สถานะ)
John 85 20
Emily 45 22
Sophia 55 18
Michael 90 21
Daniel 40 19
Olivia 60 24
Ethan 78 23
Lucas 30 17
William 95 25
Isabella 50 19

ตัวอย่าง: การใช้งานพื้นฐานของฟังก์ชัน IF

ตรวจสอบว่าคะแนนสอบเป็น “ผ่าน (Pass)” หรือ “ไม่ผ่าน (Fail)” โดยกำหนดว่าคะแนน ผ่าน = 50 ขึ้นไป

สูตร (Formula):

=IF(A2>=50, "Pass", "Fail")

ผลลัพธ์ในคอลัมน์ “Status”

Status (สถานะ)
Pass
Fail
Pass
Pass
Fail
Pass
Pass
Fail
Pass
Pass

2. ฟังก์ชัน IF แบบซ้อน

ใช้เมื่อมี หลายเงื่อนไข (multiple conditions) และต้องการให้แสดงผลลัพธ์ได้มากกว่า 2 แบบ

รูปแบบ (Syntax):

=IF(condition1, value_if_true1, IF(condition2, value_if_true2, value_if_false))

ตัวอย่าง:

=IF(B2>80, "Excellent", IF(B2>=50, "Pass", "Fail"))

สูตรนี้หมายถึง:

  • ถ้าคะแนนมากกว่า 80 → แสดงผล “Excellent”
  • ถ้าคะแนนตั้งแต่ 50–80 → แสดงผล “Pass”
  • ถ้าน้อยกว่า 50 → แสดงผล “Fail”

ตัวอย่าง: การใช้ฟังก์ชัน IF แบบซ้อน

กำหนดเกรดตามคะแนนสอบ:

  • มากกว่า 80: "A"
  • ระหว่าง 50–80: "B"
  • น้อยกว่า 50: "F"

สูตร (Formula):

=IF(B2>80, "A", IF(B2>=50, "B", "F"))

ผลลัพธ์ในคอลัมน์ “Status”:

Status
A
F
B
A
F
B
B
F
A
B

3. ฟังก์ชัน IF ร่วมกับฟังก์ชันอื่น

ใช้ร่วมกับฟังก์ชันอื่น (เช่น AND, OR หรือการคำนวณต่าง ๆ) เพื่อสร้างตรรกะที่ซับซ้อนยิ่งขึ้น

รูปแบบ (Syntax):

=IF(AND(condition1, condition2), value_if_true, value_if_false)

หรือ

=IF(OR(condition1, condition2), value_if_true, value_if_false)


ตัวอย่าง (Examples):

=IF(AND(B2>10, C1<20), "Condition met", "Condition not met")

หรือ

=IF(OR(B2="Yes", C1="No"), "Correct choice", "Incorrect choice")

ตัวอย่าง: การใช้ฟังก์ชัน IF แบบซ้อนร่วมกับ AND

ตรวจสอบว่าคะแนนสอบผ่านและอายุมากกว่า 20 ปีหรือไม่

สูตร (Formula):

=IF(AND(B2>=50, C2>20), "Pass and over 20", "Does not meet criteria")

\(~\)

ผลลัพธ์ในคอลัมน์ “Status”:

Status (สถานะ)
Does not meet criteria
Pass and over 20
Does not meet criteria
Pass and over 20
Does not meet criteria
Pass and over 20
Pass and over 20
Does not meet criteria
Pass and over 20
Does not meet criteria

ตัวอย่าง: การใช้ฟังก์ชัน IF แบบซ้อนร่วมกับ OR

ตรวจสอบว่าคะแนนสอบผ่าน หรืออายุมากกว่า 20 ปีหรือไม่

สูตร (Formula):

=IF(OR(B2>=50, C2>20), "Pass or over 20", "Does not meet criteria")

ผลลัพธ์ในคอลัมน์ “Status”:

Status (สถานะ)
Pass or over 20
Pass or over 20
Pass or over 20
Pass or over 20
Does not meet criteria
Pass or over 20
Pass or over 20
Does not meet criteria
Pass or over 20
Pass or over 20

ฟังก์ชันที่ทำงานคล้าย IF: IFS

IFS: ใช้เพื่อตรวจสอบหลายเงื่อนไขในครั้งเดียว คล้ายกับ IF แบบซ้อน แต่มีรูปแบบที่อ่านง่ายและกระชับกว่า

=IFS(B2>80, "Excellent", B2>=50, "Pass", TRUE, "Fail")

ตัวอย่าง: การใช้ฟังก์ชัน IFS

การกำหนดระดับคะแนน (Assigning Score Levels)

เงื่อนไข:

  • มากกว่า 80 → "Excellent"
  • ระหว่าง 50–80 → "Good"
  • น้อยกว่า 50 → "Needs Improvement"

สูตร (Formula):

=IFS(B2>80, "Excellent", B2>=50, "Good", TRUE, "Needs Improvement")

ผลลัพธ์ในคอลัมน์ “Status”:

Status (สถานะ)
Excellent
Needs Improvement
Good
Excellent
Needs Improvement
Good
Good
Needs Improvement
Excellent
Good

ฟังก์ชันแนว IF: SWITCH

SWITCH: ใช้เมื่อต้องเปรียบเทียบค่ากับ ค่าคงที่หลายค่า (เหมาะกับกรณีที่เป็นค่าตายตัว ไม่ใช่ช่วง)

=SWITCH(A2, 1, "One", 2, "Two", "Other")

ตัวอย่าง: การใช้ฟังก์ชัน SWITCH

ตัวอย่างนี้กำหนดเกรดอักษรจากคะแนนสอบ:

  • คะแนนมากกว่า 80: “A”

  • คะแนนระหว่าง 50–80: “B”

  • คะแนนน้อยกว่า 50: “F”

วิธีใช้ SWITCH

เนื่องจาก SWITCH ไม่สามารถประเมินตัวดำเนินการเปรียบเทียบ โดยตรง (เช่น มากกว่า/น้อยกว่า) จึงควรแปลงเงื่อนไขให้เป็น ค่าคงที่ โดยใช้ฟังก์ชันอย่าง TRUE เพื่อให้รองรับตรรกะแบบช่วงได้

สูตร (Formula):

=SWITCH(TRUE, B2>80, "A", B2>=50, "B", TRUE, "F")

คำอธิบายของสูตร

  1. SWITCH(TRUE, ...): ทำให้ SWITCH ทำงานคล้าย IF โดยตรวจเช็กเงื่อนไขเรียงตามลำดับ
  2. B2>80: ถ้าคะแนนมากกว่า 80 ให้คืนค่า "A"
  3. B2>=50: ถ้าคะแนนอยู่ระหว่าง 50–80 ให้คืนค่า "B"
  4. TRUE: เงื่อนไขปิดท้าย (fallback) — ถ้าไม่เข้าเงื่อนไขใดด้านบน ให้คืนค่า "F"

ผลลัพธ์จากสูตรในคอลัมน์ “Status”

ชื่อ คะแนนสอบ สถานะ
John 85 A
Emily 45 F
Sophia 55 B
Michael 90 A
Daniel 40 F
Olivia 60 B
Ethan 78 B
Lucas 30 F
William 95 A
Isabella 50 B

ข้อดีของฟังก์ชัน SWITCH

  1. อ่านเข้าใจง่ายกว่าการใช้ Nested IF หรือ IFS เมื่อต้องจัดการกับหลายเงื่อนไข

  2. มีโครงสร้างที่กระชับกว่า เหมาะสำหรับค่าคงที่หรือสมการตรรกะที่ไม่ซับซ้อน

แบบฝึกหัด (Exercise)

ใช้ข้อมูลพนักงานต่อไปนี้ในการตอบคำถาม

คัดลอกตารางนี้แล้ววางลงในเซลล์ A1 ในโปรแกรม Excel

พนักงาน (Employee) ตำแหน่ง (Position) เงินเดือน (Salary) คะแนนประเมิน (Evaluation Score)
A1 Supervisor 70000 100
A2 Staff 80000 65
A3 Manager 70000 95
A4 Staff 85000 55
A5 Manager 65000 85
A6 Manager 50000 50
A7 Supervisor 40000 95
A8 Staff 35000 75
A9 Supervisor 45000 50
A10 Supervisor 35000 100
A11 Supervisor 80000 65
A12 Supervisor 95000 55
A13 Staff 45000 65
A14 Staff 90000 75
A15 Supervisor 30000 95
A16 Manager 45000 95
A17 Staff 95000 85
A18 Supervisor 65000 60
A19 Staff 40000 65
A20 Manager 70000 85

1️⃣ ใช้ฟังก์ชัน IF() เพื่อระบุว่าใครได้รับโบนัส

เงื่อนไข:

  • ถ้าคะแนน ≥ 75 → ได้โบนัส
  • ถ้าคะแนน < 75 → ไม่ได้โบนัส

2️⃣ ใช้ฟังก์ชัน IFS() เพื่อกำหนดเปอร์เซ็นต์โบนัสตามคะแนน

เงื่อนไข:

  • คะแนน ≥ 90 → โบนัส 15%
  • คะแนน ≥ 80 → โบนัส 10%
  • คะแนน ≥ 70 → โบนัส 5%
  • ต่ำกว่า 70 → ไม่มีโบนัส

3️⃣ ใช้ฟังก์ชัน IF() แบบซ้อน (Nested IF) เพื่อกำหนดโบนัสจากทั้งเงินเดือนและคะแนน

เงื่อนไข:

  • ถ้าเงินเดือน < 50,000 และ คะแนน ≥ 80 → โบนัส 10%
  • ถ้าเงินเดือน ≥ 50,000 และ คะแนน ≥ 90 → โบนัส 5%
  • เงื่อนไขอื่น ๆ → ไม่มีโบนัส

4️⃣ ใช้ฟังก์ชัน SWITCH() เพื่อแปลงตำแหน่งเป็นระดับ (Level)

เงื่อนไข:

  • “Staff” → Level 1
  • “Supervisor” → Level 2
  • “Manager” → Level 3

🔑 เฉลย (Answer Key)

1)

=IF(D2>=75, "Bonus", "No Bonus")

2)

=IFS(D2>=90, "15%", D2>=80, "10%", D2>=70, "5%", D2<70, "0%")

3)

=IF(C2<50000, IF(D2>=80, "10%", "0%"), IF(D2>=90, "5%", "0%"))

4)

=SWITCH(B2, "Staff", 1, "Supervisor", 2, "Manager", 3, "Unknown")