IF
ฟังก์ชั่น IF จะส่งค่าหนึ่งในสองค่ากลับมา โดยขึ้นอยู่กับว่านิพจน์ที่ระบุไว้ประเมินเป็นค่าบูลีน TRUE หรือ FALSE
IF(นิพจน์ if, if-true, if-false)
นิพจน์ if: นิพจน์ทางตรรกะ นิพจน์ if สามารถประกอบด้วยอะไรก็ได้ตราบใดที่ยังสามารถคำนวณนิพจน์เป็นค่าบูลีนได้ ถ้านิพจน์ประเมินเป็นตัวเลข 0 จะพิจารณาว่าเป็น FALSE และหมายเลขอื่นใดๆ จะพิจารณาว่าเป็น TRUE
if-true: ค่าที่จะส่งค่ากลับมาหากนิพจน์ if เป็น TRUE if-trueสามารถประกอบด้วยค่าใดๆ ก็ได้ ถ้า if-true ถูกเว้นว่าง (มีเครื่องหมายจุลภาค แต่ไม่มีการใส่ค่า) และนิพจน์ if ประเมินเป็น TRUE แล้ว IF จะส่งค่ากลับมาเป็น 0
if-false: อาร์กิวเมนต์ทางเลือกที่จะระบุค่าที่จะส่งกลับมาหากนิพจน์ if เป็น FALSE if-false สามารถประกอบด้วยค่าใดๆ ก็ได้ ถ้า if-false ถูกเว้นว่าง (มีเครื่องหมายจุลภาค แต่ไม่มีการใส่ค่า) และนิพจน์ if ประเมินเป็น FALSE แล้ว IF จะส่งค่ากลับมาเป็น 0 ถ้า if-false ถูกเว้นว่างไว้ทั้งหมด (ไม่มีเครื่องหมายจุลภาคตามหลัง if-true) และนิพจน์ if ประเมินเป็น FALSE แล้ว IF จะส่งค่ากลับมาเป็น FALSE
หมายเหตุ
ทั้ง if-true และ if-false อย่างใดอย่างหนึ่งหรือทั้งสองอย่างสามารถประกอบด้วยฟังก์ชั่น IF เพิ่มเติม (มักจะเรียกว่าฟังก์ชั่น IF ซ้อน)
ใช้ IF เพื่อดำเนินการเปรียบเทียบอย่างง่าย |
---|
ตารางด้านล่างแสดงวิธีง่ายๆ ในการติดตามเกรดนักเรียน |
A | B | C | D | E | F | |
---|---|---|---|---|---|---|
1 | นักเรียน | คะแนนสอบ 1 | คะแนนสอบ 2 | คะแนนสุดท้าย | ตัวอักษรเกรด | ผลลัพธ์สุดท้าย |
2 | 1 | 56 | 59 | 59 | F | ไม่ผ่าน |
3 | 2 | 75 | 84 | 84 | B | ผ่าน |
4 | 3 | 100 | 93 | 100 | A | ผ่าน |
คุณสามารถดำเนินการเปรียบเทียบ IF อย่างง่ายโดยใช้ข้อมูลนี้ได้ ต่อไปนี้เป็นบางวิธีในการใช้ฟังก์ชั่น IF: |
ส่งกลับค่าข้อความโดยอิงจากเกณฑ์: สูตรนี้ใช้อาร์กิวเมนต์ต่อไปนี้:
สูตรนี้จะกำหนดผลลัพธ์เป็น "ผ่าน" หากคะแนนสอบของนักเรียน 1 คือ 60 หรือมากกว่า หากไม่ใช่ จะส่งค่ากลับมาเป็น "ไม่ผ่าน" |
ส่งกลับค่าตัวเลขโดยอิงจากเกณฑ์: สูตรนี้ใช้อาร์กิวเมนต์ต่อไปนี้:
สูตรนี้จะคำนวณคะแนนสุดท้ายซึ่งเป็นคะแนนสูงสุดจากคะแนนสอบสองคะแนน และสามารถแก้ไขได้ง่ายสำหรับนักเรียนคนอื่นๆ ในตารางด้านบนโดยเปลี่ยนการอ้างอิงเซลล์ให้ตรงกับคะแนนของนักเรียนที่ถูกต้อง |
ใช้ฟังก์ชั่น IF ซ้อนเพื่อทดสอบเงื่อนไขเพิ่มเติม: สูตรด้านบนจะกำหนดผลลัพธ์เป็น "ผ่าน" หากมีนักเรียนอย่างน้อยหนึ่งคนที่มีคะแนน 60 หรือมากกว่า สูตรด้านบนจะกำหนดตัวอักษรเกรดโดยอิงจากคะแนนสุดท้ายของนักเรียน หมายเหตุ: เมื่อใช้ฟังก์ชั่น IF ซ้อน ลำดับของการเปรียบเทียบเป็นสิ่งสำคัญเนื่องจากสูตรจะหยุดหลังจากประโยคที่เป็นจริงประโยคแรก ตัวอย่างเช่น ถ้าคุณต้องการเพิ่มเงื่อนไขใหม่ไปที่สูตรตัวอักษรเกรด "ไม่ได้พยายาม" หากนักเรียนมีคะแนนเป็น 0 คุณจะต้องเพิ่มเงื่อนไขนั้นเป็นเงื่อนไขแรก การเพิ่มเงื่อนไขที่ตำแหน่งท้ายสุดจะส่งค่ากลับมาเป็น "F" แม้ว่าคะแนนจะเป็น 0 เนื่องจากจะถูกประเมินไปแล้วว่าน้อยกว่า 60 และนี่คือเหตุผลที่ไม่จำเป็นต้องใช้นิพจน์ if แยกต่างหากสำหรับตัวอักษรเกรด "A" ถ้าคะแนนของนักเรียนไม่ใช่ "B" แสดงว่าคะแนนก็ไม่ใช่ตัวอักษรเกรดอื่นเช่นเดียวกัน และต้องเป็น "A" |
ลองดู |
---|
ในการดูการใช้ฟังก์ชั่น IF ในสเปรดชีต Numbers ให้สร้างสเปรดชีตใหม่โดยใช้แม่แบบ "สมุดพก" เอาชื่อออกในตารางภาพรวมของชั้นเรียน แล้วดูว่าค่าในคอลัมน์ "เกรดสุดท้าย" เปลี่ยนไปอย่างไร สำรวจฟังก์ชั่นที่ใช้ในคอลัมน์ "เกรดสุดท้าย" |
ใช้ IF กับฟังก์ชั่นอื่นๆ |
---|
สูตรต่อไปนี้ใช้ได้กับ ISBLANK เพื่อตรวจสอบว่าเซลล์ว่างหรือไม่ สูตรนี้ใช้อาร์กิวเมนต์ต่อไปนี้:
สำหรับการทดสอบที่ซับซ้อนยิ่งขึ้น คุณยังสามารถรวม IF กับ AND, OR และ NOT ได้อีกด้วย |
ก้าวไปอีกขั้นกับ IFS |
---|
ฟังก์ชั่น IFS สามารถใช้เพื่อประเมินชุดของนิพจน์ แล้วส่งกลับค่าโดยอิงจากเงื่อนไขแรกที่เป็นจริงได้ ซึ่งจะแทนที่ประโยค IF ซ้อนที่มีหลายประโยค |
ตัวอย่างเพิ่มเติม |
---|
=IF(A5>=0, "ไม่เป็นจำนวนลบ", "จำนวนลบ") จะส่งข้อความกลับมาเป็น "ไม่เป็นจำนวนลบ" หากเซลล์ A5 ประกอบด้วยตัวเลขที่มากกว่าหรือเท่ากับ 0 หรือไม่ใช่ค่าตัวเลข ถ้าเซลล์ A5 ประกอบด้วยค่าที่น้อยกว่า 0 ฟังก์ชั่นนี้จะส่งค่ากลับมาเป็น "เลขลบ" =IF(A5<>0, "ไม่ใช่ศูนย์", "ศูนย์") จะส่งข้อความกลับมาเป็น "ไม่ใช่ศูนย์" หากเซลล์ A5 ประกอบด้วยตัวเลขที่ไม่ใช่ 0 ถ้าเซลล์ A5 ประกอบด้วย 0 ฟังก์ชั่นนี้จะส่งค่ากลับมาเป็น "ศูนย์" =IF(IFERROR(OR(ISEVEN(B4+B5), ISODD(B4+B5)), FALSE), "ตัวเลขทั้งหมด", "ไม่ใช่ตัวเลขทั้งหมด") จะส่งข้อความกลับมาว่า "ตัวเลขทั้งหมด" หากทั้งเซลล์ B4 และ B5 ประกอบด้วยตัวเลข หรือกรณีอื่นๆ จะส่งข้อความกลับมาว่า "ไม่ใช่ตัวเลขทั้งหมด" นี่จะเป็นการทดสอบเพื่อพิจารณาว่าผลรวมของทั้งสองเซลล์นั้นเป็นเลขคู่หรือเลขคี่ ถ้าเซลล์นั้นไม่ใช่ตัวเลข ฟังก์ชั่น EVEN และ ODD จะส่งค่ากลับมาเป็นข้อผิดพลาดและฟังก์ชั่น IFERROR จะส่งค่ากลับมาเป็น FALSE หรือกรณีอื่นๆ จะส่งค่ากลับมาเป็น TRUE เนื่องจากไม่ว่าจะฟังก์ชั่น EVEN หรือ ODD ก็เป็น TRUE ดังนั้นถ้า B4 หรือ B5 ไม่ใช่ค่าตัวเลขหรือบูลีน ประโยค IF จะส่งค่ากลับมาเป็นนิพจน์ if-false "ไม่ใช่ตัวเลขทั้งหมด" หรือกรณีอื่นๆ จะส่งค่ากลับมาเป็นนิพจน์ if-true "ตัวเลขทั้งหมด" |
ตัวอย่าง การหลีกเลี่ยงข้อผิดพลาดที่เกิดจากการหารด้วย 0 |
---|
บางครั้งไม่อาจเป็นไปได้ที่จะสร้างตารางในลักษณะที่สามารถหลีกเลี่ยงการหารด้วย 0 ได้ อย่างไรก็ตามถ้าเกิดการหารด้วย 0 ขึ้น ผลลัพธ์จะเป็นค่าข้อผิดพลาดในเซลล์ ซึ่งโดยทั่วไปแล้วจะไม่ใช่ผลลัพธ์ที่ต้องการ ตัวอย่างนี้แสดงวิธีการสามวิธีการที่จะป้องกันข้อผิดพลาดนี้ อนุมานว่าเซลล์ D2 กับ E2 ต่างประกอบด้วยตัวเลข เป็นไปได้ที่ E2 จะประกอบด้วย 0 คุณต้องการที่จะหาร D2 ด้วย E2 แต่หลีกเลี่ยงข้อผิดพลาดจากการหารด้วย 0 แต่ละวิธีการในสามวิธีการต่อไปนี้จะส่งค่ากลับมาเป็น 0 หากเซลล์ E2 เท่ากับ 0 ถ้าเป็นอย่างอื่นจะส่งค่ากลับมาเป็นผลลัพธ์ของ D2/E2 =IF(E2=0, 0, D2/E2) จะดำเนินงานโดยการทดสอบเซลล์ E2 โดยตรงเพื่อดูว่าเป็น 0 หรือไม่ =IFERROR(D2/E2, 0) จะดำเนินงานโดยการส่งค่ากลับมาเป็น 0 หากมีข้อผิดพลาดเกิดขึ้น การหารด้วย 0 เป็นข้อผิดพลาด =IF(ISERROR(D2/E2), 0, D2/E2) ดำเนินงานโดยการทดสอบตรรกะเพื่อดูว่า D2/E2 เป็น TRUE หรือไม่ |
ตัวอย่างในการใช้ REGEX |
---|
ให้ A1 ประกอบด้วย "marina@example.com" =IF(A1 = REGEX("([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})"), "Contains e-mail", "No e-mail") จะส่งค่ากลับมาเป็น "Contains e-mail" |