ฟังก์ชัน IF

ส่งกลับค่าหนึ่งค่าถ้าเงื่อนไขที่คุณระบุเป็น TRUE และส่งกลับค่าอีกค่าหนึ่งถ้าเงื่อนไขที่คุณระบุเป็น FALSE ใช้ IF เพื่อทำการทดสอบเงื่อนไขของค่าและสูตร

ไวยากรณ์

IF(logical_test,value_if_true,value_if_false)

logical_test     คือค่าหรือนิพจน์ใดๆ ที่สามารถให้ค่าเป็น TRUE หรือ FALSE ได้ ตัวอย่างเช่น [Quarter1]=100 คือ นิพจน์เชิงตรรกะ เช่น ถ้าค่าในแถวหนึ่งของคอลัมน์ นั้นคือ [Quarter1] เท่ากับ 100 นิพจน์จะให้ค่าเป็น TRUE แต่ถ้าไม่เท่ากับ 100 นิพจน์จะให้ค่าเป็น FALSE อาร์กิวเมนต์นี้สามารถใช้ตัวดำเนินการคำนวณเปรียบเทียบใดๆ ก็ได้

value_if_true     คือค่าที่ถูกส่งกลับถ้า logical_test เป็น TRUE ยกตัวอย่างเช่น ถ้าอาร์กิวเมนต์นี้เป็นสตริงข้อความ "Within budget" และอาร์กิวเมนต์ logical_test ให้ค่าเป็น TRUE แล้ว ฟังก์ชัน IF จะแสดงข้อความว่า "Within budget" ถ้า logical_test เป็น TRUE และไม่ได้ใส่ค่าอะไรไว้ใน value_if_true อาร์กิวเมนต์นี้จะส่งกลับ 0 (ศูนย์) เมื่อต้องการแสดงคำว่า TRUE ให้ใช้ค่าตรรกะ TRUE สำหรับอาร์กิวเมนต์นี้ อย่างไรก็ตาม value_if_true สามารถเป็นสูตรอื่นได้

value_if_false     คือค่าที่ถูกส่งกลับถ้า logical_test เป็น FALSE ตัวอย่างเช่น ถ้าอาร์กิวเมนต์เป็นสตริงข้อความ "Over budget" และอาร์กิวเมนต์ logical_test ให้ค่าเป็น FALSE แล้ว ฟังก์ชัน IF จะแสดงข้อความ "Over budget" ถ้า 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 ซ้อนกันได้สูงสุด 7 ชั้นเพื่อทำให้การทดสอบมีความละเอียดยิ่งขึ้น ให้ดูตัวอย่างสุดท้ายด้านล่างนี้
  • เมื่อมีการประมวลผลอาร์กิวเมนต์ value_if_true และ value_if_false ฟังก์ชัน IF จะส่งกลับค่าตามคำสั่งเหล่านั้น
  • ถ้าอาร์กิวเมนต์ตัวใดตัวหนึ่งในฟังก์ชัน IF เป็นอาร์เรย์ ทุกองค์ประกอบของอาร์เรย์จะถูกหาค่าเมื่อมีการประมวลผลคำสั่ง IF

ตัวอย่างชุดที่ 1

Col1 Col2 Col3 Expense สูตร คำอธิบาย (ผลลัพธ์)
      50 =IF([Expense]<=100,"Within budget","Over budget") ถ้า Expense มีค่าน้อยกว่าหรือเท่ากับ 100 แล้ว สูตรจะแสดงข้อความ "Within budget" แต่ถ้ามีค่ามากกว่าจะแสดงข้อความ "Over budget" แทน (Within budget)
23 45 89 50 =IF([Expense]=100,SUM([Col1],[Col2],[Col3]),"") ถ้า Expense มีค่าเท่ากับ 100 แล้ว จะมีการบวกค่าทั้งสามค่า มิฉะนั้นจะไม่มีข้อความส่งกลับมา ("") ()

ตัวอย่างชุดที่ 2

ActualExpenses PredictedExpenses สูตร คำอธิบาย (ผลลัพธ์)
1500 900 =IF([ActualExpenses]>[PredictedExpenses],"Over Budget","OK") ตรวจสอบว่าแถวแรกมีค่าสูงเกินกว่างบประมาณหรือไม่ (Over Budget)
500 900 =IF([ActualExpenses]>[PredictedExpenses],"Over Budget","OK") ตรวจสอบว่าแถวที่สองมีค่าสูงเกินกว่างบประมาณหรือไม่ (OK)

ตัวอย่างชุดที่ 3

Score สูตร คำอธิบาย (ผลลัพธ์)
45 =IF([Score]>89,"A",IF([Score]>79,"B", IF([Score]>69,"C",IF([Score]>59,"D","F")))) กำหนดเกรดเป็นตัวอักษรให้กับคะแนนแรก (F)
90 =IF([Score]>89,"A",IF([Score]>79,"B", IF([Score]>69,"C",IF([Score]>59,"D","F")))) กำหนดเกรดเป็นตัวอักษรให้กับคะแนนที่สอง (A)
78 =IF([Score]>89,"A",IF([Score]>79,"B", IF([Score]>69,"C",IF([Score]>59,"D","F")))) กำหนดเกรดเป็นตัวอักษรให้กับคะแนนที่สาม (C)

ในตัวอย่างก่อนหน้า ประโยคคำสั่ง IF ประโยคที่สองยังเป็นอาร์กิวเมนต์ของ value_if_false ในประโยคคำสั่ง IF ประโยคแรกด้วย ในทำนองเดียวกัน ประโยคคำสั่ง IF ประโยคที่สามก็เป็นอาร์กิวเมนต์ของ value_if_false ในประโยคคำสั่ง IF ประโยคที่สองเช่นกัน ตัวอย่างเช่น ถ้า logical_test ตัวแรก ([Score]>89) เป็น TRUE จะส่งกลับค่า "A" ถ้า logical_test ตัวแรกเป็น FALSE ประโยคคำสั่ง IF ประโยคที่สองจะถูกคำนวณเพื่อหาค่า และเป็นอย่างนี้ไปเรื่อยๆ

เกรดแบบตัวอักษรที่กำหนดให้กับคะแนน (Score) ต่างๆ ใช้เกณฑ์ดังต่อไปนี้ (ใช้การสมมุติค่าจำนวนเต็มเท่านั้น)

ถ้าคะแนนเท่ากับ ให้ส่งกลับ
มากกว่า 89 A
80 ถึง 89 B
70 ถึง 79 C
60 ถึง 69 D
น้อยกว่า 60 F
 
 
นำไปใช้กับ:
SharePoint Server 2007, Windows SharePoint Services 3.0, Deployment Center 2003