
ฟังก์ชัน IF เป็นหนึ่งในสูตรแรกๆ ที่ผู้ใช้ Excel ทุกคนควรใช้งานให้เชี่ยวชาญ หลักการทำงานพื้นฐานคือการตอบคำถามง่ายๆ ว่า "เงื่อนไขนี้เป็นจริงหรือเท็จ — และควรทำอย่างไรในแต่ละกรณี" เมื่อคุณเข้าใจแนวคิดนี้ คุณจะสามารถสร้างตรรกะการตัดสินใจที่ทรงพลังลงในสเปรดชีตของคุณได้โดยตรง ตั้งแต่การตรวจสอบผ่าน/ไม่ผ่านเบื้องต้น ไปจนถึงระบบการให้เกรดหลายระดับและกฎเกณฑ์ทางธุรกิจ
คู่มือนี้จะพาคุณทำความเข้าใจฟังก์ชัน IF ตั้งแต่พื้นฐาน จากนั้นจะเจาะลึกไปที่ฟังก์ชัน IF ซ้อนกัน (Nested IF) ข้อผิดพลาดที่พบบ่อย และทางเลือกใหม่ๆ ที่ Excel มีให้เพื่อให้ตรรกะที่ซับซ้อนสามารถอ่านและดูแลรักษาได้ง่ายขึ้น
ไวยากรณ์ (Syntax) ของ IF นั้นตรงไปตรงมา:
=IF(logical_test, value_if_true, value_if_false)
A2>100, B5="Yes")สมมติว่าคอลัมน์ B มีตัวเลขยอดขาย และคุณต้องการติดแท็กพนักงานขายที่ทำยอดได้เกินโควตา $10,000 ในคอลัมน์ C ให้ป้อน:
=IF(B2>10000, "Quota Met", "Below Quota")
Excel จะประเมินว่า B2 มีค่ามากกว่า 10,000 หรือไม่ หากใช่ เซลล์นั้นจะแสดงข้อความ "Quota Met" ไม่เช่นนั้นจะแสดง "Below Quota" นี่คือกลไกการทำงานทั้งหมด ส่วนที่เหลือเป็นเพียงการนำแนวคิดนี้ไปต่อยอดเท่านั้น
คุณยังสามารถกำหนดให้ส่งกลับเป็นตัวเลขแทนข้อความ หรือแม้กระทั่งส่งกลับเป็นสูตรอื่นก็ได้ ตัวอย่างเช่น:
=IF(B2>10000, B2*0.1, 0)
สูตรนี้จะจ่ายค่าคอมมิชชัน 10% เมื่อทำยอดถึงโควตาเท่านั้น และจะส่งกลับค่า 0 หากไม่ถึงโควตา
การทดสอบตรรกะสามารถใช้ตัวดำเนินการเปรียบเทียบมาตรฐานของ Excel ได้ดังนี้:
| ตัวดำเนินการ | ความหมาย | ตัวอย่าง |
|---|---|---|
| = | เท่ากับ | A2="Approved" |
| <> | ไม่เท่ากับ | A2<>"Pending" |
| > | มากกว่า | B2>500 |
| < | น้อยกว่า | B2<0 |
| >= | มากกว่าหรือเท่ากับ | C2>=90 |
| <= | น้อยกว่าหรือเท่ากับ | C2<=59 |
คุณสามารถรวมเงื่อนไขเข้าด้วยกันโดยใช้ AND และ OR ภายในการทดสอบตรรกะ:
=IF(AND(B2>10000, C2="Active"), "Bonus Eligible", "Not Eligible")
สูตรนี้จะแสดง "Bonus Eligible" เมื่อทั้งสองเงื่อนไขเป็นจริงพร้อมกันเท่านั้น
แล้วถ้าคุณต้องการผลลัพธ์มากกว่าสองแบบล่ะ? คุณสามารถซ้อนฟังก์ชัน IF หนึ่งไว้ในอีกฟังก์ชันหนึ่งได้ กรณีใช้งานแบบคลาสสิกคือการคำนวณเกรด:
=IF(A2>=90, "A",
IF(A2>=80, "B",
IF(A2>=70, "C",
IF(A2>=60, "D", "F"))))
Excel จะประเมินแต่ละเงื่อนไขจากซ้ายไปขวา ทันทีที่พบเงื่อนไขที่เป็น TRUE มันจะส่งกลับผลลัพธ์นั้นและข้ามส่วนที่เหลือไปทั้งหมด ดังนั้น หากคะแนนเป็น 85 จะไม่ผ่านการทดสอบแรก (≥90) เพราะเป็น FALSE แล้วเข้าสู่การทดสอบที่สอง (≥80) ซึ่งเป็น TRUE และส่งกลับผลลัพธ์ "B"
IF ซ้อนกันไม่ได้จำกัดอยู่แค่การส่งกลับเป็นข้อความ สูตรการให้ส่วนลดตามลำดับขั้นอาจมีหน้าตาแบบนี้:
=IF(B2>=1000, B2*0.85,
IF(B2>=500, B2*0.90,
IF(B2>=100, B2*0.95, B2)))
คำสั่งซื้อ $1,000 ขึ้นไปได้รับส่วนลด 15%; $500–$999 ได้รับส่วนลด 10%; $100–$499 ได้รับส่วนลด 5%; และยอดที่ต่ำกว่านี้จะจ่ายราคาเต็ม ตรรกะแบบนี้มักพบได้บ่อยใน แดชบอร์ดการขายและการติดตาม KPI โดยที่ระดับผลงานจะเป็นตัวกำหนดค่าคอมมิชชันหรือการประเมินผล
IF(A2=Yes, ...) จะทำให้เกิดข้อผิดพลาด ข้อความจะต้องอยู่ในเครื่องหมายคำพูดคู่ (Double quotes): IF(A2="Yes", ...)A2>=60 ก่อน A2>=90 คะแนนที่สูงทุกคะแนนจะไปตรงกับเกณฑ์แรก (ที่ต่ำกว่า) เสมอ และจะไม่มีวันเข้าถึงเกณฑ์ที่สูงกว่าได้เลย=IF(A2>10, "High") จะส่งกลับคำว่า FALSE (ตัวอักษรนี้เลย) เมื่อเงื่อนไขไม่เป็นจริง หากคุณต้องการให้แสดงค่าว่าง ให้ระบุ "" อย่างชัดเจนIF("10">5, ...) อาจไม่ทำงานอย่างที่คิดไว้เนื่องจาก "10" ถูกมองว่าเป็นข้อความ ควรใช้ ประเภทข้อมูลที่สอดคล้องกัน ในเซลล์ของคุณExcel 2019 และ Microsoft 365 ได้เปิดตัวฟังก์ชัน IFS ซึ่งช่วยลดปัญหาการต้องปิดวงเล็บเรียงกันเป็นพีระมิด ทำให้ IF ซ้อนกันอ่านยาก ไวยากรณ์คือ:
=IFS(logical_test1, value1, logical_test2, value2, ...)
สูตรการคิดเกรดจะดูเป็นระเบียบขึ้นมาก:
=IFS(A2>=90, "A", A2>=80, "B", A2>=70, "C", A2>=60, "D", TRUE, "F")
คู่สุดท้าย TRUE, "F" จะทำหน้าที่เป็นตัวครอบคลุมทุกกรณีที่เหลือ — หากไม่มีเงื่อนไขใดก่อนหน้านี้เป็นจริง เงื่อนไขสุดท้ายนี้จะกลายเป็นจริงเสมอ ทำให้ผลลัพธ์เป็น "F" ฟังก์ชัน IFS เหมาะอย่างยิ่งเมื่อคุณมีผลลัพธ์มากกว่าสามแบบขึ้นไปและต้องการให้สูตรอ่านเข้าใจได้ง่ายในพริบตา
ฟังก์ชัน SWITCH เหมาะที่สุดเมื่อคุณต้องการทดสอบค่าหนึ่งเทียบกับรายการค่าที่ตรงกันเป๊ะๆ มากกว่าการทดสอบแบบช่วงข้อมูล:
=SWITCH(A2, "Red", "Stop", "Yellow", "Caution", "Green", "Go", "Unknown")
โครงสร้างคือ =SWITCH(expression, match1, result1, match2, result2, ..., default) หาก A2 มีค่า "Red" จะส่งกลับ "Stop"; "Yellow" ส่งกลับ "Caution"; "Green" ส่งกลับ "Go"; และหากเป็นค่าอื่นๆ จะส่งกลับ "Unknown"
SWITCH อ่านง่ายกว่าฟังก์ชัน IF ซ้อนกันมากเมื่อคุณต้องการแปลงข้อความหรือรหัสตัวเลขเฉพาะเจาะจงให้เป็นป้ายกำกับ — ซึ่งเป็นความต้องการทั่วไปใน การจัดการข้อมูล HR ที่ต้องแปลงรหัสแผนกเป็นชื่อแผนก หรือในการรายงานทางการเงินที่ต้องจัดหมวดหมู่รหัสบัญชี
ฟังก์ชัน IF จะทรงพลังยิ่งขึ้นเมื่อใช้ร่วมกับฟังก์ชันการค้นหา (Lookup) และสถิติ นี่คือรูปแบบที่นำไปใช้งานได้จริงบางส่วน:
=IF(ISBLANK(B2), "Missing", B2*1.1)
ช่วยป้องกันข้อผิดพลาดเมื่อเซลล์อ้างอิงอาจว่างเปล่า — ถือเป็นนิสัยที่ดีเมื่อทำงานกับข้อมูลที่นำเข้ามา (Imported data) หากคุณต้องทำความสะอาดชุดข้อมูลที่เข้ามาอยู่เป็นประจำ การจับคู่ IF เข้ากับการจัดการข้อผิดพลาดก็เป็นเพียงหนึ่งในเทคนิคมากมายที่ครอบคลุมอยู่ใน เวิร์กโฟลว์การแปลงข้อมูลด้วย Power Query
=IFERROR(VLOOKUP(A2, D:E, 2, 0), "Not Found")
แทนที่จะซ้อนฟังก์ชัน IF ไว้รอบๆ VLOOKUP คุณสามารถใช้ IFERROR เพื่อดักจับข้อผิดพลาดที่อาจเกิดขึ้นจากการค้นหาและแทนที่ด้วยข้อความที่อ่านง่ายขึ้น หากต้องการดูเทคนิคการค้นหาข้อมูลแบบเจาะลึก สามารถดูได้ที่ คู่มือ VLOOKUP ฉบับสมบูรณ์
บางครั้งคุณก็ไม่จำเป็นต้องใส่ฟังก์ชัน IF ไว้ใน SUM เลย — SUMIF และ SUMIFS สามารถจัดการการรวบรวมข้อมูลตามเงื่อนไขได้อย่างมีประสิทธิภาพมากกว่าการเอา SUM ไปครอบด้วย IF
เรามาลองสร้างระบบประเมินผลงานเล็กๆ ตั้งแต่เริ่มต้นกัน สมมติว่าสเปรดชีตของคุณประกอบด้วย:
คุณต้องการให้คอลัมน์ D แสดงการประเมินเป็น "Excellent" (ดีเยี่ยม), "Good" (ดี), "Needs Improvement" (ต้องปรับปรุง), หรือ "At Risk" (มีความเสี่ยง) โดยอิงจากข้อมูลในทั้งสองคอลัมน์
ขั้นตอนที่ 1: กำหนดกฎเกณฑ์ของคุณ Excellent = งาน ≥ 50 AND คุณภาพ ≥ 85. Good = งาน ≥ 40 AND คุณภาพ ≥ 70. Needs Improvement = งาน ≥ 30 OR คุณภาพ ≥ 60. At Risk = นอกเหนือจากเงื่อนไขทั้งหมดนี้
ขั้นตอนที่ 2: เขียนสูตรในเซลล์ D2:
=IF(AND(B2>=50, C2>=85), "Excellent",
IF(AND(B2>=40, C2>=70), "Good",
IF(OR(B2>=30, C2>=60), "Needs Improvement",
"At Risk")))
ขั้นตอนที่ 3: คัดลอกสูตรลงมาในคอลัมน์ D สำหรับพนักงานทุกคน
ขั้นตอนที่ 4: ปรับใช้ การจัดรูปแบบตามเงื่อนไข (Conditional formatting) กับคอลัมน์ D เพื่อให้แต่ละระดับการประเมินแสดงผลเป็นสีที่ต่างกัน — สีเขียวสำหรับ Excellent, สีเหลืองสำหรับ Good, สีส้มสำหรับ Needs Improvement, สีแดงสำหรับ At Risk คราวนี้สเปรดชีตของคุณก็จะสามารถสื่อสารผลลัพธ์ได้อย่างรวดเร็วโดยไม่ต้องมานั่งอ่านทุกเซลล์
การใช้ IF ซ้อนกันโดยมีเงื่อนไข AND/OR หลายชั้นอาจเป็นเรื่องยากจริงๆ หากต้องเขียนตั้งแต่เริ่มต้น โดยเฉพาะเมื่อกฎเกณฑ์ทางธุรกิจเกี่ยวข้องกับระดับขั้นตั้งแต่ 5 ระดับขึ้นไป หรือเป็นการผสมผสานระหว่างเงื่อนไขที่เป็นข้อความและตัวเลข หากคุณเพียงแค่อธิบายสิ่งที่คุณต้องการเป็นภาษาพูดทั่วไป — ตัวอย่างเช่น "ทำเครื่องหมายว่าเป็นคำสั่งซื้อด่วนพิเศษ (High priority) หากยอดสูงกว่า $5,000 และเป็นลูกค้าระดับพรีเมียม ให้เป็นด่วนปานกลาง (Medium priority) หากเงื่อนไขใดเงื่อนไขหนึ่งเป็นจริง และเป็นด่วนต่ำ (Low priority) ในกรณีอื่นๆ" — เครื่องมือสร้างสูตรด้วย AI อย่าง GPTExcel จะสามารถสร้างสูตรที่ถูกต้องขึ้นมาให้ได้ทันที ช่วยให้คุณประหยัดเวลาการลองผิดลองถูกจากการนั่งนับวงเล็บและการแก้บั๊กลำดับเงื่อนไข
Excel รองรับฟังก์ชัน IF ซ้อนกันสูงสุด 64 ระดับ ในทางปฏิบัติ หากซ้อนกันเกินสามหรือสี่ระดับก็จะเริ่มอ่านและดูแลรักษายากแล้ว สำหรับเงื่อนไขที่มากขนาดนั้น ขอแนะนำให้เปลี่ยนไปใช้ IFS, SWITCH หรือปรับโครงสร้างตรรกะของคุณใหม่โดยใช้ตารางการค้นหาร่วมกับ VLOOKUP หรือ INDEX MATCH แทน
ทั้งสองแบบใช้ในการทดสอบหลายเงื่อนไขและส่งกลับผลลัพธ์ที่แตกต่างกัน ความแตกต่างที่สำคัญคือไวยากรณ์: IF ซ้อนกันจะต้องมีการปิดวงเล็บสำหรับแต่ละระดับ ทำให้โครงสร้างถูกซ้อนกันลึกมาก ในขณะที่ IFS จะจัดเรียงคู่ของเงื่อนไขและผลลัพธ์ต่อกันไปเรื่อยๆ ซึ่งช่วยให้อ่าน เขียน และตรวจสอบได้ง่ายกว่า ฟังก์ชัน IFS มีให้ใช้งานใน Excel 2019, Excel 2021 และ Microsoft 365
ได้ ทั้งอาร์กิวเมนต์ true และ false — หรือทั้งคู่ — สามารถเป็นนิพจน์ใดๆ ของ Excel ที่ถูกต้องได้ รวมถึงฟังก์ชันอื่นๆ ด้วย ตัวอย่างเช่น =IF(A2>0, SQRT(A2), 0) จะส่งกลับค่ารากที่สองสำหรับตัวเลขบวก และส่งกลับศูนย์สำหรับค่าอื่นๆ สิ่งนี้ทำให้ IF เป็นตัวครอบที่ยืดหยุ่นในการควบคุมว่าจะให้การคำนวณเริ่มทำงานเมื่อใด
เมื่อคุณละเว้นอาร์กิวเมนต์ที่สามไปเลย — โดยเขียนว่า =IF(A2>10, "High") — Excel จะถูกตั้งค่าเริ่มต้นให้ส่งกลับค่าตรรกะ FALSE ออกมา หากต้องการให้ส่งกลับเป็นเซลล์ว่างแทน ให้ระบุเป็นสตริงว่าง (Empty string) อย่างชัดเจนในอาร์กิวเมนต์ false: =IF(A2>10, "High", "")
เรียนรู้วิธีใช้ฟังก์ชัน TEXT ใน Excel เพื่อแปลงตัวเลข วันที่ และเวลาเป็นสตริงข้อความที่จัดรูปแบบแล้วด้วยรหัสรูปแบบ (Format codes) พร้อมตัวอย่างจริงและการใช้งานในชีวิตประจำวัน
เรียนรู้วิธีการทำงานของฟังก์ชัน IF ใน Excel การซ้อนฟังก์ชัน IF หลายชั้น และเมื่อใดควรใช้ฟังก์ชันทางเลือกใหม่ๆ อย่าง IFS และ SWITCH เพื่อให้สูตรอ่านง่ายและเป็นระเบียบยิ่งขึ้น
เรียนรู้ SUMIF และ SUMIFS ใน Excel เพื่อรวมค่าตามเงื่อนไขเดียวหรือหลายเงื่อนไข พร้อมไวยากรณ์จริง ตัวอย่างที่ใช้ได้จริง และคำแนะนำทีละขั้นตอน