
IF
ฟังก์ชั่น IF จะส่งค่าหนึ่งในสองค่ากลับมา โดยขึ้นอยู่กับว่านิพจน์ที่ระบุไว้ประเมินเป็นค่าบูลีน TRUE หรือ FALSE
IF(นิพจน์ if, ถ้าเป็น true, ถ้าเป็น false)
นิพจน์ if: นิพจน์ทางตรรกะ นิพจน์ if สามารถประกอบด้วยอะไรก็ได้ตราบใดที่ยังสามารถคำนวณนิพจน์เป็นค่าบูลีนได้ ถ้านิพจน์ประเมินเป็นตัวเลข 0 จะพิจารณาว่าเป็น FALSE และหมายเลขอื่นใดๆ จะพิจารณาว่าเป็น TRUE
ถ้าเป็น true: ค่าที่จะส่งค่ากลับมาหากนิพจน์ if เป็น TRUE ถ้าเป็น true สามารถประกอบด้วยค่าใดๆ ก็ได้ ถ้า ถ้าเป็น true ถูกเว้นว่าง (มีเครื่องหมายจุลภาค แต่ไม่มีการใส่ค่า) และนิพจน์ if ประเมินเป็น TRUE แล้ว IF จะส่งค่ากลับมาเป็น 0
ถ้าเป็น false: อาร์กิวเมนต์ทางเลือกที่จะระบุค่าที่จะส่งกลับมาหากนิพจน์ if เป็น FALSE ถ้าเป็น false สามารถประกอบด้วยค่าใดๆ ก็ได้ ถ้า ถ้าเป็น false ถูกเว้นว่าง (มีเครื่องหมายจุลภาค แต่ไม่มีการใส่ค่า) และนิพจน์ if ประเมินเป็น FALSE แล้ว IF จะส่งค่ากลับมาเป็น 0 ถ้า ถ้าเป็น false ถูกเว้นว่างไว้ทั้งหมด (ไม่มีเครื่องหมายจุลภาคตามหลัง ถ้าเป็น true) และนิพจน์ if ประเมินเป็น FALSE แล้ว IF จะส่งค่ากลับมาเป็น FALSE
หมายเหตุ
ทั้ง ถ้าเป็น true และ ถ้าเป็น 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 จะส่งค่ากลับมาเป็นนิพจน์ ถ้าเป็น false "ไม่ใช่ตัวเลขทั้งหมด" หรือกรณีอื่นๆ จะส่งค่ากลับมาเป็นนิพจน์ ถ้าเป็น 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" |