ส่งกลับค่าหนึ่งค่าถ้าเงื่อนไขที่คุณระบุประเมินเป็น TRUE และส่งกลับอีกค่าหนึ่งถ้าเงื่อนไขนั้นประเมินเป็น FALSE ใช้ IF เพื่อทําการทดสอบตามเงื่อนไขกับค่าและสูตร
ไวยากรณ์
IF(logical_test,value_if_true,value_if_false)
Logical_test คือค่าหรือนิพจน์ใดๆ ที่สามารถประเมินเป็น TRUE หรือ FALSE ตัวอย่างเช่น [Quarter1]=100 เป็นนิพจน์ตรรกะ ถ้าค่าในหนึ่งแถวของคอลัมน์ [Quarter1] เท่ากับ 100 นิพจน์จะประเมินเป็น TRUE มิฉะนั้น นิพจน์จะประเมินเป็น FALSE อาร์กิวเมนต์นี้สามารถใช้ตัวดําเนินการการคํานวณการเปรียบเทียบใดก็ได้
Value_if_true เป็นค่าที่ส่งกลับถ้า logical_test เป็น TRUE ตัวอย่างเช่น ถ้าอาร์กิวเมนต์นี้เป็นสตริงข้อความ "อยู่ภายในงบประมาณ" และอาร์กิวเมนต์ logical_test ประเมินเป็น TRUE ฟังก์ชัน IF จะแสดงข้อความ "อยู่ในงบ" ถ้า logical_test เป็น TRUE และ value_if_true ว่างเปล่า อาร์กิวเมนต์นี้จะส่งกลับค่า 0 (ศูนย์) เมื่อต้องการแสดงคําว่า TRUE ให้ใช้ค่าตรรกะ TRUE สําหรับอาร์กิวเมนต์นี้ Value_if_true อาจเป็นสูตรอื่นได้
Value_if_false เป็นค่าที่ส่งกลับถ้า logical_test เป็น FALSE ตัวอย่างเช่น ถ้าอาร์กิวเมนต์นี้เป็นสตริงข้อความ "เกินงบ" และอาร์กิวเมนต์ logical_test ประเมินเป็น FALSE ฟังก์ชัน IF จะแสดงข้อความ "เกินงบ" ถ้า logical_test เป็น FALSE และ value_if_false ละไว้ (นั่นคือ หลังจาก value_if_true แล้ว จะไม่มีเครื่องหมายจุลภาค) ค่าตรรกะ FALSE จะถูกส่งกลับ ถ้า logical_test เป็น FALSE และ value_if_false ว่างเปล่า (นั่นคือ หลังจาก value_if_true แล้ว จะมีเครื่องหมายจุลภาคตามด้วยวงเล็บปิด) ค่า 0 (ศูนย์) จะถูกส่งกลับ Value_if_false อาจเป็นสูตรอื่นได้
ข้อสังเกต
-
ฟังก์ชัน IF สามารถซ้อนเป็นอาร์กิวเมนต์ value_if_true และ value_if_false ได้ถึงเจ็ดฟังก์ชันเพื่อสร้างการทดสอบที่ซับซ้อนยิ่งขึ้น ดูตัวอย่างสุดท้ายต่อไปนี้
-
เมื่ออาร์กิวเมนต์ value_if_true และ value_if_false ถูกประเมินค่า IF จะส่งกลับค่าโดยคําสั่งเหล่านั้น
-
ถ้าอาร์กิวเมนต์ใดกับ IF เป็นอาร์เรย์ ทุกองค์ประกอบของอาร์เรย์จะถูกประเมินเมื่อมีการดําเนินการคําสั่ง IF
ตัวอย่างชุดที่ 1
C ol1 |
คอล 2 |
คอล 3 |
ค่าใช้จ่าย |
สูตร |
คำอธิบาย (ผลลัพธ์) |
---|---|---|---|---|---|
50 |
=IF([ค่าใช้จ่าย]<=100,"อยู่ในงบ","เกินงบ") |
ถ้าตัวเลขน้อยกว่าหรือเท่ากับ 100 สูตรจะแสดง "อยู่ในงบ" มิฉะนั้น ฟังก์ชันจะแสดง "เกินงบประมาณ" (อยู่ในงบประมาณ) |
|||
23 |
45 |
89 |
50 |
=IF([Expense]=100,SUM([Col1],[Col2],[Col3]),"") |
ถ้าตัวเลขเป็น 100 ค่าสามค่าจะถูกเพิ่ม มิฉะนั้น จะส่งกลับข้อความว่าง ("") () |
ตัวอย่างชุดที่ 2
ActualExpenses |
PredictedExpenses |
สูตร |
คำอธิบาย (ผลลัพธ์) |
---|---|---|---|
1500 |
900 |
=IF([ActualExpenses]>[PredictedExpenses],"Over Budget","OK") |
ตรวจสอบว่าแถวแรกเกินงบประมาณหรือไม่ (เกินงบ) |
500 |
900 |
=IF([ActualExpenses]>[PredictedExpenses],"Over Budget","OK") |
ตรวจสอบว่าแถวที่สองเกินงบประมาณหรือไม่ (ตกลง) |
ตัวอย่างชุดที่ 3
คะแนน |
สูตร |
คำอธิบาย (ผลลัพธ์) |
---|---|---|
45 |
=IF([คะแนน]>89,"A",IF([คะแนน]>79,"B", IF([คะแนน]>69,"C",IF([คะแนน]>59,"D","F")))) |
กําหนดเกรดเป็นตัวอักษรให้กับคะแนนแรก (F) |
90 |
=IF([คะแนน]>89,"A",IF([คะแนน]>79,"B", IF([คะแนน]>69,"C",IF([คะแนน]>59,"D","F")))) |
กําหนดเกรดเป็นตัวอักษรให้กับคะแนนที่สอง (A) |
78 |
=IF([คะแนน]>89,"A",IF([คะแนน]>79,"B", IF([คะแนน]>69,"C",IF([คะแนน]>59,"D","F")))) |
กําหนดเกรดเป็นตัวอักษรให้กับคะแนนที่สาม (C) |
ในตัวอย่างก่อนหน้า คําสั่ง IF ที่สองจะเป็นอาร์กิวเมนต์ value_if_false ในคําสั่ง IF คําสั่งแรกด้วย ในทํานองเดียวกัน คําสั่ง IF ที่สามคืออาร์กิวเมนต์ value_if_false ในคําสั่ง IF ที่สอง ตัวอย่างเช่น ถ้า logical_test แรก ([คะแนน]>89) เป็น TRUE จะส่งกลับ "A" ถ้า logical_test แรกเป็น FALSE คําสั่ง IF ที่สองจะถูกประเมินและอื่นๆ
เกรดตัวอักษรจะถูกกําหนดให้กับตัวเลขโดยใช้คีย์ต่อไปนี้ (โดยสมมติให้ใช้จํานวนเต็มเท่านั้น)
ถ้าคะแนนเท่ากับ |
จากนั้นส่งคืน |
---|---|
มากกว่า 89 |
A |
ตั้งแต่ 80 ถึง 89 |
B |
ตั้งแต่ 70 ถึง 79 |
C |
ตั้งแต่ 60 ถึง 69 |
D |
น้อยกว่า 60 |
ศ. |