สิ่งที่ควรรู้
- ฟังก์ชัน IF ใช้สำหรับทดสอบตรรกะ (Logical Test) คือ ตรวจสอบว่าสิ่งใดสิ่งหนึ่งเป็นจริงหรือไม่
- ไวยากรณ์และอาร์กิวเมนต์ของฟังก์ชัน IF คือ =IF(logical_test, value_if_true, [value_if_false])
- ตัวอย่าง =IF(A2>A3,"Bigger","Smaller")
บทความนี้อธิบายวิธีใช้ฟังก์ชัน IF เพื่อทำการทดสอบตรรกะ ในทุกเวอร์ชันของ Excel รวมถึง Excel 2019 และ Microsoft 365 พร้อมหลายตัวอย่าง
ฟังก์ชัน IF คืออะไร?
ฟังก์ชัน IF ใน Excel ใช้สำหรับทำการทดสอบตรรกะ สูตรที่ใช้ฟังก์ชันนี้เรียกว่า IF statement หรือ if/then statement
สูตรทุกสูตรที่ใช้ฟังก์ชันนี้สามารถมีผลลัพธ์ได้สองแบบ วิธีการทำงานคือ สูตรถูกตั้งให้ทดสอบว่าสิ่งใดสิ่งหนึ่งเป็นจริง หากเป็นจริง จะเกิดสิ่งหนึ่ง แต่หากเป็นเท็จ จะเกิดอีกสิ่งหนึ่งแทน
ฟังก์ชัน IF เป็นหนึ่งในฟังก์ชันตรรกะหลายตัวที่ใช้ใน Excel ได้ อื่นๆ ได้แก่ AND, IFERROR, IFS, NOT และ OR
ไวยากรณ์และอาร์กิวเมนต์ของฟังก์ชัน IF
ทุกสูตรที่ใช้ฟังก์ชัน IF มีส่วนประกอบดังนี้:
=IF(logical_test, value_if_true, [value_if_false])
- logical_test: เงื่อนไขที่คุณทดสอบ จำเป็น
- value_if_true: ควรเกิดอะไรขึ้น หาก logical_test เป็นจริง จำเป็น
- value_if_false: ควรเกิดอะไรขึ้น หาก logical_test เป็นเท็จ ไม่จำเป็น
การเขียน IF statement ใน Excel จะง่ายขึ้นถ้าคุณอ่านมันแตกต่างออกไปนิดหน่อย: ถ้าส่วนแรกเป็นจริง ให้ทำสิ่งนี้ ถ้าส่วนแรกเป็นเท็จ ให้ทำอีกสิ่งแทน
จำกฎเหล่านี้ไว้:
- Excel คืน FALSE หาก logical_test เป็นเท็จและ value_if_false ถูกละเว้น
- เพื่อคืนข้อความเป็น value_if_true หรือ value_if_false ต้องล้อมรอบด้วยเครื่องหมายคำพูด ยกเว้นคำว่า TRUE และ FALSE
- ฟังก์ชัน IF ไม่สนใจตัวพิมพ์เล็ก/ใหญ่ (Not case sensitive)
- Excel 2010 และใหม่กว่า อนุญาตให้มี IF statements ได้ถึง 64 ตัวในสูตรเดียว เวอร์ชันเก่ากว่าจำกัดที่ 7 ตัว
ตัวอย่างฟังก์ชัน IF
นี่คือวิธีต่างๆ ที่คุณสามารถใช้สูตร IF ใน Excel:
เขียนข้อความหากเงื่อนไขเป็นจริง
=IF(A2>A3,"Bigger","Smaller")
นี่คือตัวอย่างพื้นฐานมากของ IF statement ใน Excel การทดสอบคือดูว่า A2 มากกว่า A3 หรือไม่ หากใช่ ให้เขียน Bigger มิฉะนั้นเขียน Smaller
คำนวณคณิตศาสตร์หากเงื่อนไขเป็นจริง
=IF(A2>A3,A2-A3)
IF statement นี้เขียนแตกต่างออกไปเล็กน้อย แทนที่จะให้ผลลัพธ์ value_if_true เป็นคำ มันคือการลบค่าหนึ่งจากอีกค่า หาก A2 ใหญ่กว่า A3 จริงๆ ผลต่างจะเป็นผลลัพธ์ หากไม่ใช่ เนื่องจากเราละเว้นส่วน value_if_false Excel คืน FALSE
ทดสอบเงื่อนไขด้วยคณิตศาสตร์
=IF(A2/A3=5,A2/A3,"")
อีกวิธีเขียน IF statement คือคำนวณภายในส่วน logical_test เงื่อนไข IF ที่นี่คือ A2/A3=5 หากเป็นจริง ให้คำนวณ A2/A3 หากไม่เท่ากับ 5 เราต้องการผลลัพธ์เป็นว่างเปล่า จึงใช้เครื่องหมายคำพูดคู่
ทดสอบว่าวันที่เป็นวันนี้หรือไม่
=IF(A2=TODAY(),"This is today","")
ฟังก์ชัน Excel อื่นๆ สามารถใช้ภายใน IF statement ได้ ในตัวอย่างนี้ เราใช้ฟังก์ชัน TODAY ตรวจสอบว่า A2 เป็นวันที่วันนี้หรือไม่ หากใช่ สูตรเขียน This is today มิฉะนั้นไม่เขียนอะไร
ใช้ AND ร่วมกับสูตร IF
=IF(E2<=TODAY(),"Now","Soon")
=IF(AND(F2="Now",D2>=(B2-C2)),"Yes","No")
ตัวอย่างนี้ของฟังก์ชัน IF ซับซ้อนขึ้น เป้าหมายคือดูว่าสิ่งที่เราติดหนี้ค้างชำระหรือไม่ และหากค้าง เรากำลังดูว่าจำนวนเงินนั้นอยู่ในงบประมาณหรือไม่ เพื่อที่จะชำระได้ หากทั้งสองเงื่อนไขเป็นจริง เราจะเห็นในคอลัมน์ G ว่าถึงเวลาชำระแล้ว
IF(E2<=TODAY(),"Now","Soon") อยู่ในคอลัมน์ Urgency บอกว่ารายการค้างชำระหรือครบกำหนดวันนี้ โดยเปรียบเทียบวันครบกำหนดกับวันนี้ หากวันครบกำหนดเป็นวันนี้หรือในอดีต จะเขียน Now ในคอลัมน์ F มิฉะนั้นเขียน Soon
คำสั่ง IF ที่สองยังคงโครงสร้างเหมือน IF statement แม้จะใช้ AND อยู่ข้างใน ส่วนที่หนาตรงนี้คือที่ที่ฟังก์ชัน AND นั่ง และเนื่องจากอยู่ภายในชุดคอมมาแรก จึงเป็นสิ่งที่เราใช้เป็น logical_test:
=IF(AND(F2="Now",D2>=(B2-C2)),"Yes","No")
เขียนแตกต่างออกไปเพื่อแสดงว่ามันเหมือน IF statements อื่นๆ:
=IF(ทดสอบฟังก์ชัน AND นี้,เขียน Yes หากจริง หรือเขียน No หากเท็จ)
ภายในฟังก์ชัน AND มี IF statements สองตัว:
- F2="Now" เป็นส่วนของสูตรในคอลัมน์ G ตรวจสอบว่า Now อยู่ใน F2 หรือไม่
- D2>=(B2-C2) มีสองส่วน: คำนวณ B2-C2 ก่อนเพื่อดูว่าเหลือต้องจ่ายเท่าไหร่ แล้วตรวจสอบงบประมาณที่มีใน D2 ว่ามีเงินพอชำระหรือไม่
ดังนั้น หากเราติดหนี้ตอนนี้ และมีเงินทุนชำระ เราจะได้รับแจ้งว่า Yes ถึงเวลาชำระหนี้รายการนั้นแล้ว
ตัวอย่าง Nested IF Statement (IF ซ้อน)
Nested IF statements คือการที่มี IF statement มากกว่าหนึ่งในสูตร โครงสร้างเกือบเหมือนกัน แต่แทนที่จะปิดวงเล็บท้ายชุดแรก เราใส่คอมมาแล้วเขียน statement ต่อไป
สอง IF Statements ในสูตรเดียว
=IF(B2="F","Class A",IF(B2="M","Class B"))
ตัวอย่างแรกนี้ใช้จัดประเภทนักเรียนตามเพศ โดยหญิงเป็น Class A และชายเป็น Class B สูตรตรวจสอบ F และ M ใน B2 แล้วเขียน Class A หรือ Class B ขึ้นอยู่กับ statement ไหนเป็นจริง
จำนวนวงเล็บปิดที่ต้องการท้ายสูตรที่มี Nested IF functions เท่ากับจำนวนครั้งที่เขียน IF ในตัวอย่างเราเขียน IF สองครั้ง จึงต้องการวงเล็บปิดสองตัวท้ายสูตร
สาม IF Statements ในสูตรเดียว
=IF(A2=TODAY(),"This is today",IF(A2TODAY(),"Future date")))
นี่คือตัวอย่างสูตรที่มี IF statements หลายตัว เหมือนตัวอย่าง TODAY ข้างต้นแต่เพิ่มการทดสอบตรรกะอีกหนึ่งขั้น:
- ชุดแรกตรวจสอบว่า A2 เป็นวันที่วันนี้หรือไม่ คืน This is today หากใช่
- ชุดที่สองทดสอบว่าวันนี้มากกว่า A2 เพื่อดูว่า A2 เป็นวันที่เก่าหรือไม่ คืน Old date หากใช่
- สุดท้าย ทดสอบว่าวันนี้น้อยกว่าวันที่ใน A2 สูตรคืน Future date หากใช่
คัดลอกราคาหาก Statements เป็นเท็จ
=IF(C2="Bill","",IF(C2="Food","",B2))
ในตัวอย่าง Nested IF formula สุดท้ายนี้ เราต้องระบุจำนวนเงินรวมของการซื้อทั้งหมดที่ไม่อยู่ในหมวดหมู่เฉพาะ เรากำลังรวมค่าใช้จ่ายที่ไม่จำเป็นทั้งหมด และด้วยรายการยาว นี่คือวิธีที่ดีที่สุด เรากำหนดว่าคำอธิบายรายการที่บอกว่า Bill หรือ Food เป็นสิ่งสำคัญ ดังนั้นราคาใน B2 จึงต้องแสดงสำหรับรายการอื่นๆ ทั้งหมด
นี่คือสิ่งที่เกิดขึ้น:
- C2="Bill","": หาก C2 บอกว่า Bill ให้เว้นเซลล์ว่าง
- C2="Food","": หาก C2 บอกว่า Food ให้เว้นเซลล์ว่าง
- B2: หาก statement ใด statement หนึ่งเป็นเท็จ ให้เขียนค่าที่อยู่ใน B2
สูตรนี้ทิ้งให้เราได้รายการราคาที่เราสามารถรวมได้ด้วยฟังก์ชัน SUM เพื่อประเมินอย่างรวดเร็วว่าใช้เงินไปเท่าไหร่กับสิ่งที่เราไม่จำเป็น
วิธีเขียน Nested IF Statements ให้ง่ายขึ้น
เมื่อคุณสร้างสูตรมากขึ้น มันจะกลายเป็นยากต่อการจัดการและแก้ไขภายหลัง วิธีหนึ่งที่ทำให้ Nested IF statements ง่ายขึ้นคือการขึ้นบรรทัดใหม่หลังจากแต่ละ statement เหมือนนี้:
=
IF(A2=TODAY(),"This is today",
IF(A2TODAY(),"Future date")))
เพื่อทำใน Excel เราต้องแก้ไขจากแถบสูตร:
-
เลือกแถบสูตรที่ด้านบนของ Excel
-
วางเมาส์ใต้พื้นที่ข้อความจนเคอร์เซอร์เปลี่ยนเป็นลูกศรสองด้าน แล้วคลิกและลากกล่องลงเพื่อเพิ่มพื้นที่ทำงาน
-
วางเคอร์เซอร์หลังเครื่องหมายเท่ากับ และกด Alt+Enter (Windows) หรือ Ctrl+Option+Enter (Mac) ส่วนที่เหลือของสูตรจะไปอยู่บรรทัดใหม่
-
ทำซ้ำขั้นตอน 3 ก่อน IF statement ทุกตัว เพื่อให้ทุกตัวอยู่บรรทัดของตัวเอง