ฟังก์ชัน IF ช่วยให้คุณสามารถทำการเปรียบเทียบตรรกะระหว่างค่าและสิ่งที่คุณคาดหวังไว้ โดยการทดสอบเงื่อนไข และส่งกลับผลลัพธ์ถ้าเป็น True หรือ False
- =IF(ถ้ามีบางอย่างเป็น True ให้ดำเนินการอย่างหนึ่ง ถ้าไม่มี ให้ดำเนินการอีกอย่างหนึ่ง)
ดังนั้นข้อความ IF สามารถให้ผลลัพธ์ได้ 2 แบบ ผลลัพธ์แรกคือ ถ้าการเปรียบเทียบของคุณเป็นจริง ผลลัพธ์ที่สองจะเป็นเท็จ
คําสั่ง IF มีประสิทธิภาพอย่างมาก และสร้างพื้นฐานของรูปแบบสเปรดชีตจํานวนมาก แต่ก็ยังเป็นสาเหตุของปัญหาสเปรดชีตมากมาย โดยปกติ คําสั่ง IF ควรนําไปใช้กับเงื่อนไขที่น้อยที่สุด เช่น ชาย/หญิง ใช่/ไม่ใช่/ไม่แน่ แต่บางครั้ง คุณอาจต้องประเมินสถานการณ์ที่ซับซ้อนกว่าที่ต้องการใช้การซ้อนทับ* มากกว่าฟังก์ชัน IF 3 ฟังก์ชันรวมกัน
* "การซ้อนทับ" หมายถึงหลักปฏิบัติของฟังก์ชันหลายฟังก์ชันรวมกันในสูตรเดียว
รายละเอียดด้านเทคนิค
ใช้ฟังก์ชัน IF ซึ่งเป็นหนึ่งใน ฟังก์ชันทางตรรกะ เพื่อส่งกลับหนึ่งค่าถ้าเงื่อนไขเป็น จริง และอีกค่าหนึ่งถ้าเงื่อนไขเป็น เท็จ
ไวยากรณ์
IF(logical_test, value_if_true, [value_if_false])
ตัวอย่างเช่น
- =IF(A2>B2,"เกินงบ","ตกลง")
- =IF(A2=B2,B4-A4,"")
| ชื่ออาร์กิวเมนต์ | คำอธิบาย |
|---|---|
|
logical_test (จำเป็น) |
เงื่อนไขที่คุณต้องการทดสอบ |
|
Value_if_true (จำเป็น) |
ค่าที่คุณต้องการให้ส่งกลับถ้าผลลัพธ์ของ logical_test เป็น TRUE |
|
value_if_false (ไม่จำเป็น) |
ค่าที่คุณต้องการให้ส่งกลับถ้าผลลัพธ์ของ logical_test เป็น FALSE |
ข้อสังเกต
แม้ว่า Excel จะเปิดโอกาสให้คุณซ้อนฟังก์ชัน IF ที่แตกต่างกันได้ถึง 64 ชั้น แต่เราไม่แนะนําให้ทํา เพราะเหตุใด
- คําสั่ง IF ต้องใช้ความคิดที่รอบคอบเป็นอย่างมากเพื่อสร้างฟังก์ชันเหล่านั้นให้ถูกต้อง และตรวจสอบให้แน่ใจว่าตรรกะเหล่านั้นสามารถคํานวณตามเงื่อนไขแต่ละข้อได้ถูกต้องทุกข้อไปจนถึงข้อสุดท้าย ถ้าคุณไม่ซ้อนสูตร ให้มีความแม่นยํา 100% สูตรอาจมีโอกาสคํานวณสําเร็จ 75% แต่มีโอกาสส่งผลลัพธ์ที่ไม่คาดคิด 25% น่าเสียดายที่โอกาสที่คุณจะจับ 25% นั้นน้อยมาก
- คำสั่ง IF หลายรายการอาจทำให้การคำนวณเป็นเรื่องยากอย่างคาดไม่ถึง โดยเฉพาะเมื่อคุณย้อนกลับมาดูในภายหลังและพยายามทำความเข้าใจสิ่งที่คุณ หรืออาจเป็นคนอื่นพยายามทำ
ถ้าคุณพบคําสั่ง IF ที่ดูเหมือนไม่มีจุดสิ้นสุด คุณควรปล่อยเมาส์แล้ววางแผนกลยุทธ์ของคุณใหม่
มาดูวิธีการสร้างคําสั่ง IF แบบซ้อนทับที่ซับซ้อนโดยใช้คําสั่ง IF หลายคําสั่ง และเวลาที่ควรใช้เครื่องมืออื่นใน Excel ของคุณ
ตัวอย่าง
ต่อไปนี้คือตัวอย่างของคำสั่ง IF แบบซ้อนทับมาตรฐานเพื่อแปลงคะแนนสอบของนักเรียนให้เป็นเกรดที่เป็นตัวอักษร
- =IF(D2>89,"A",IF(D2>79,"B",IF(D2>69,"C",IF(D2>59,"D","F"))))
คำสั่ง IF ที่ซ้อนกันอย่างซับซ้อนนี้ทำตามหลักตรรกะอย่างตรงไปตรงมา:
- ถ้าคะแนนสอบ (ในเซลล์ D2) มากกว่า 89 นักเรียนจะได้ A
- ถ้าคะแนนสอบมากกว่า 79 นักเรียนจะได้ B
- ถ้าคะแนนสอบมากกว่า 69 นักเรียนจะได้ C
- ถ้าคะแนนสอบมากกว่า 59 นักเรียนจะได้ D
- มิฉะนั้น นักเรียนจะได้ F
ตัวอย่างนี้ค่อนข้างปลอดภัยเนื่องจากไม่น่าเป็นไปได้ที่ความสัมพันธ์ระหว่างคะแนนสอบและเกรดที่เป็นตัวอักษรจะเปลี่ยนแปลง ดังนั้นจึงไม่ต้องการการบํารุงรักษามาก แต่นี่คือความคิด – จะเกิดอะไรขึ้นถ้าคุณต้องการแบ่งเกรดระหว่าง A+, A และ A- (และอื่นๆ)? คําสั่ง IF สี่เงื่อนไขของคุณจะต้องถูกเขียนใหม่ให้มี 12 เงื่อนไข! ในตอนนี้ สูตรของคุณจะมีลักษณะดังนี้:
- =IF(B2>97,"A+",IF(B2>93,"A",IF(B2>89,"A-",IF(B2>87,"B+",IF(B2>83,"B",IF(B2>79,"B-", IF(B2>77,"C+",IF(B2>73,"C",IF(B2>69,"C-",IF(B2>57,"D+",IF(B2>53,"D",IF(B2>49,"D-","F"))))))))))))
สูตรจะยังคงทํางานอย่างแม่นยําและจะทํางานตามที่คาดไว้ แต่ใช้เวลานานในการเขียนและใช้เวลานานยิ่งกว่าในการทดสอบเพื่อให้แน่ใจว่าทํางานได้ตามที่คุณต้องการ ปัญหาที่ชัดเจนอีกประการหนึ่งคือคุณต้องใส่คะแนนและเกรดที่เป็นตัวอักษรด้วยตนเอง สงสัยว่าคุณมีโอกาสที่จะพิมพ์ผิดโดยไม่ได้ตั้งใจเท่าไร ตอนนี้ ลองนึกภาพการทําสิ่งนี้ 64 ครั้งกับเงื่อนไขที่ซับซ้อนมากขึ้น! แน่นอนว่ามันเป็นไปได้ แต่คุณต้องการให้ตัวเองตกอยู่ภายใต้ความพยายามและข้อผิดพลาดที่เป็นไปได้ที่ตรวจพบได้ยากจริงๆหรือไม่?
เคล็ดลับ
ทุกฟังก์ชันใน Excel ต้องมีวงเล็บเปิดและปิด () Excel จะพยามยามช่วยคุณแยกแยะโดยการใส่สีให้กับส่วนต่างๆ ของสูตรเมื่อคุณแก้ไข ตัวอย่างเช่น ถ้าคุณแก้ไขสูตรด้านบน เมื่อคุณย้ายเคอร์เซอร์ผ่านแต่ละวงเล็บปิด ")" วงเล็บเปิดที่สอดคล้องกันจะเปลี่ยนเป็นสีเดียวกัน ซึ่งจะมีประโยชน์อย่างยิ่งในสูตรแบบซ้อนทับที่ซับซ้อน เมื่อคุณพยายามแยกแยะว่าคุณมีวงเล็บที่ตรงกันเพียงพอหรือไม่
ตัวอย่างเพิ่มเติม
ต่อไปนี้คือตัวอย่างทั่วไปของการคำนวณค่าคอมมิชชั่นยอดขายโดยยึดตามระดับความสำเร็จของรายได้
- =IF(C9 15000,20%,IF(C9 12500,17.5%,IF(C9>10000,15%,IF(C9>7500,12.5%,IF(C9>5000,10%,0)))))>>
สูตรนี้บอกว่า IF(C9 มากกว่า 15,000 จะส่งกลับ 20%, IF(C9 มากกว่า 12,500 จะส่งกลับ 17.5% และอื่นๆ...
แม้จะมีความคล้ายคลึงกับตัวอย่างเกรดก่อนหน้านี้อย่างมาก สูตรนี้เป็นตัวอย่างที่ดีของความยากลําบากในการจัดการคําสั่ง IF ขนาดใหญ่ คุณจําเป็นต้องทํามากเพียงใดถ้าองค์กรของคุณตัดสินใจเพิ่มระดับการชดเชยใหม่และอาจถึงกับเปลี่ยนแปลงจํานวนเงินหรือค่าเปอร์เซ็นต์ที่มีอยู่ คุณมีงานจํานวนมากที่ต้องทําแน่นอน!
เคล็ดลับ
คุณสามารถแทรกตัวแบ่งบรรทัดในแถบสูตรเพื่อทําให้อ่านสูตรที่ยาวได้ง่ายขึ้น เพียงกด ALT+ENTER ก่อนข้อความที่คุณต้องการตัดไปยังบรรทัดใหม่
นี่คือตัวอย่างของสถานการณ์ค่าคอมมิชชั่นที่มีการหยุดใช้งาน:
คุณเห็นไหมว่ามีอะไรผิดปกติ เปรียบเทียบลําดับของการเปรียบเทียบรายได้กับตัวอย่างก่อนหน้า อันนี้ไปทางไหน? ถูกต้อง มันกําลังจากล่างขึ้นบน (5,000 ดอลลาร์ถึง 15,000 ดอลลาร์) ไม่ใช่ในทางกลับกัน แต่ทําไมถึงเป็นเรื่องใหญ่ขนาดนี้? เป็นเรื่องใหญ่เพราะสูตรไม่สามารถผ่านการประเมินครั้งแรกสําหรับค่าใดๆ ที่เกิน $5,000 ได้ สมมติว่าคุณมีรายได้ $12,500 คําสั่ง IF จะส่งกลับ 10% เนื่องจากมากกว่า $5,000 และจะหยุดตรงนั้น สิ่งนี้อาจเป็นปัญหาอย่างไม่น่าเชื่อ เพราะในหลายๆ สถานการณ์ ข้อผิดพลาดประเภทนี้จะไม่ถูกสังเกตเห็นจนกว่าจะส่งผลเสีย ดังนั้นเมื่อรู้ว่ามีข้อผิดพลาดร้ายแรงบางอย่างกับคําสั่ง IF แบบซ้อนทับที่ซับซ้อน คุณจะทําอะไรได้บ้าง ในกรณีส่วนใหญ่ คุณสามารถใช้ฟังก์ชัน VLOOKUP แทนการสร้างสูตรที่ซับซ้อนด้วยฟังก์ชัน IF เมื่อใช้ VLOOKUP คุณต้องสร้างตารางอ้างอิงก่อน:
- =VLOOKUP(C2,C5:D17,2,TRUE)
สูตรนี้ระบุให้ค้นหาค่าใน C2 ในช่วง C5:C17 ถ้าพบค่า จะส่งกลับค่าที่สอดคล้องกันจากแถวเดียวกันในคอลัมน์ D
- =VLOOKUP(B9,B2:C6,2,TRUE)
ในทํานองเดียวกัน สูตรนี้จะค้นหาค่าในเซลล์ B9 ในช่วง B2:B22 ถ้าพบค่า จะส่งกลับค่าที่สอดคล้องกันจากแถวเดียวกันในคอลัมน์ C
หมายเหตุ
VLOOKUP ทั้งสองรายการเหล่านี้ใช้อาร์กิวเมนต์ TRUE ที่จุดสิ้นสุดของสูตร หมายความว่าเราต้องการให้ค้นหาค่าที่ตรงกันโดยประมาณ กล่าวอีกนัยหนึ่ง แอปจะจับคู่ค่าในตารางค้นหา และค่าใดก็ตามที่อยู่ระหว่างนั้น ในกรณีนี้ตารางค้นหาต้องถูกจัดเรียงตามลําดับจากน้อยไปหามาก
VLOOKUP จะครอบคลุมรายละเอียดเพิ่มเติม ที่นี่ แต่แน่นอนว่าจะง่ายกว่าคําสั่ง IF แบบซ้อนทับที่ซับซ้อน 12 ระดับมาก! และยังมีประโยชน์อื่นๆ อีกด้วย:
- ตารางอ้างอิง VLOOKUP อยู่ในที่ที่มองเห็นได้ง่ายและดูได้ง่าย
- ค่าในตารางจะถูกอัปเดตได้อย่างง่ายดายและคุณไม่จำเป็นต้องยุ่งกับสูตรอีกเลย ถ้าเงื่อนไขของคุณไม่เปลี่ยนแปลง
- ถ้าคุณไม่ต้องการให้ผู้อื่นเห็นหรือยุ่งกับตารางอ้างอิงของคุณ ให้ใส่บนเวิร์กชีตอื่น
คุณทราบหรือไม่
ขณะนี้มี ฟังก์ชัน IFS ที่สามารถแทนที่คําสั่ง IF หลายคําสั่งที่ซ้อนกันด้วยฟังก์ชันเดียว ดังนั้นแทนที่จะเป็นตัวอย่างเกรดเริ่มต้นของเราซึ่งมีฟังก์ชัน IF ที่ซ้อนกัน 4 ฟังก์ชัน:
- =IF(D2>89,"A",IF(D2>79,"B",IF(D2>69,"C",IF(D2>59,"D","F"))))
ซึ่งทำได้ง่ายด้วยฟังก์ชัน IFS เพียงฟังก์ชันเดียว
- =IFS(D2>89,"A",D2>79,"B",D2>69,"C",D2>59,"D",TRUE,"F")
ฟังก์ชัน IFS มีประโยชน์มากเนื่องจากคุณไม่ต้องกังวลเกี่ยวกับคําสั่ง IF และวงเล็บเหล่านั้นทั้งหมด
หมายเหตุ
ฟีเจอร์นี้จะพร้อมใช้งานถ้าคุณมี การสมัครใช้งาน Microsoft 365 เท่านั้น ถ้าคุณเป็นผู้สมัครใช้งาน Microsoft 365 ตรวจสอบให้แน่ใจว่าคุณมี Office เวอร์ชันล่าสุด
ต้องการความช่วยเหลือเพิ่มเติมไหม
คุณสามารถสอบถามผู้เชี่ยวชาญใน ชุมชนด้านเทคนิคของ Excel หรือรับการสนับสนุนใน ชุมชนได้เสมอ