ข้ามไปที่เนื้อหาหลัก
การสนับสนุน
ลงชื่อเข้าใช้

ฟังก์ชัน IIf

ส่งกลับหนึ่งในสองส่วน โดยขึ้นอยู่กับการประเมินของ นิพจน์

คุณสามารถใช้ IIf ที่ใดก็ได้ที่คุณสามารถใช้นิพจน์ได้ คุณใช้ IIf เพื่อระบุว่านิพจน์อื่นเป็นจริงหรือเท็จ ถ้านิพจน์เป็นจริง IIf จะ ส่งกลับค่าหนึ่งค่า ถ้าเป็นเท็จ IIf จะส่งกลับอีกรายการหนึ่ง คุณระบุค่า ที่ IIf ส่งกลับ

ดูตัวอย่าง

ไวยากรณ์

IIf ( expr , truepart , falsepart )

ไวยากรณ์ ของฟังก์ชัน IIf มีอาร์กิวเมนต์ดังนี้

อาร์กิวเมนต์

คำอธิบาย

expr

จำเป็น นิพจน์ที่คุณต้องการประเมิน

truepart

จำเป็น ค่าหรือนิพจน์ที่ส่งกลับ ถ้า exprเป็นTrue

falsepart

จำเป็น ค่าหรือนิพจน์ที่ส่งกลับ ถ้า exprเป็นFalse


ข้อสังเกต

IIf ประเมินทั้ง truepart และ falsepartเสมอ แม้ว่าจะส่งกลับเพียงหนึ่งในนั้น ด้วยเหตุนี้ คุณควรตรวจสอบเพื่อดูเอฟเฟ็กต์ข้างเคียงที่ลบไม่ได้ ตัวอย่างเช่น ถ้าการประเมินผลลัพธ์falsepartในการหารด้วยข้อผิดพลาดศูนย์ ข้อผิดพลาดจะเกิดขึ้นแม้ว่าexprเป็นจริง

ตัวอย่าง

ใช้ IIf บนฟอร์มหรือรายงาน    สมมติว่าคุณมีตารางลูกค้าที่มีเขตข้อมูลชื่อ CountryRegion ในฟอร์ม คุณต้องการระบุว่าภาษาอิตาลีเป็นภาษาแรกของที่ติดต่อหรือไม่ คุณสามารถเพิ่มตัวควบคุมและใช้ IIf ในคุณสมบัติ แหล่ง ตัวควบคุม ได้ ดังนี้

=IIf([CountryRegion]="Italy", "Italian", "Some other language")

เมื่อคุณเปิดฟอร์มในมุมมองฟอร์ม ตัวควบคุมจะแสดง "อิตาลี" เมื่อใดก็ตามที่ค่าภูมิภาคประเทศเป็นอิตาลี และ "บางภาษาอื่น" เมื่อใดก็ตามที่ภูมิภาคประเทศเป็นค่าอื่น

ใช้ IIf ในนิพจน์ที่ซับซ้อน    คุณสามารถใช้นิพจน์ใดก็ได้ในส่วนใดก็ได้ของข้อความIIf คุณยังสามารถ "ซ้อน" นิพจน์ IIf ซึ่งอนุญาตให้คุณประเมินชุดของนิพจน์ที่ขึ้นต่อกันได้ เมื่อต้องการใช้ตัวอย่างก่อนหน้าต่อไป คุณอาจต้องการทดสอบค่า CountryRegion หลายค่า แล้วแสดงภาษาที่เหมาะสมโดยขึ้นอยู่กับค่าที่มีอยู่:

=IIf([CountryRegion]="Italy", "Italian", IIf([CountryRegion]="France", "French", IIf([CountryRegion]="Germany", "German", "Some other language")))

ข้อความ "บางภาษาอื่น" คือ อาร์กิวเมนต์ falsepart ของฟังก์ชัน IIf ที่ด้านในสุด เนื่องจากแต่ละฟังก์ชัน IIf ที่ซ้อนกันเป็นอาร์กิวเมนต์ falsepart ของฟังก์ชัน IIf ที่มีฟังก์ชันนี้ ข้อความ "บางภาษาอื่น" จะถูกส่งกลับถ้าอาร์กิวเมนต์ expr ทั้งหมดของฟังก์ชัน IIf ทั้งหมดประเมินเป็น False เท่านั้น

ตัวอย่างเช่น สมมติว่าคุณอยู่ที่ไลบรารี ฐานข้อมูลไลบรารีมีตารางที่ชื่อว่า เช็คเอาท์ ที่มีเขตข้อมูลที่ชื่อว่า วันครบกําหนด ซึ่งมีวันที่ที่หนังสือเล่มใดเล่มหนึ่งครบกําหนด คุณสามารถสร้างฟอร์มที่ระบุสถานะของรายการเช็คเอาท์ในตัวควบคุมได้โดยใช้ฟังก์ชันIIfในคุณสมบัติ แหล่งตัวควบคุม ของตัวควบคุมนั้น ดังนี้

=IIf([วันครบกําหนด]<Date(),"เกินกําหนด",IIf([วันครบกําหนด]=Date(),"วันครบกําหนดวันนี้","ยังไม่ครบกําหนด"))

เมื่อคุณเปิดฟอร์มในมุมมองฟอร์ม ตัวควบคุมจะแสดง "เกินกําหนด" ถ้าค่าของวันครบกําหนดน้อยกว่าวันที่ปัจจุบัน "ครบกําหนดวันนี้" ถ้าเป็นวันที่ปัจจุบัน และ "ยังไม่ครบกําหนด" มิฉะนั้น

หมายเหตุ: เมื่อต้องการใช้ตัวเดินการเชิงตรรกะ เช่น "And" หรือ "Or" ในอาร์กิวเมนต์exprของฟังก์ชันIIfคุณต้องใส่นิพจน์แบบตรรกะในฟังก์ชัน Eval ดูตารางตัวอย่างที่ตามมา

ใช้ IIf ในคิวรี    

ฟังก์ชัน IIf มักจะถูกใช้ในการสร้างเขตข้อมูลที่คํานวณแล้วในคิวรี ไวยากรณ์เหมือนกัน โดยมีข้อยกเว้นว่าในคิวรี คุณจะต้องใส่นามแฝงของเขตข้อมูลและเครื่องหมายจุดคู่ (:) แทนเครื่องหมายเท่ากับ (=) เมื่อต้องการใช้ตัวอย่างก่อนหน้า คุณต้องพิมพ์ดังต่อไปนี้ในแถว เขตข้อมูล ของตารางออกแบบคิวรี:

ภาษา: IIf([CountryRegion]="Italy", "Italian", "Some other language")

ในกรณีนี้ "ภาษา:" คือนามแฝงของเขตข้อมูล

For more information about creating queries and calculated fields, see the article Create a simple select query.

ใช้ IIf ในโค้ด VBA    

หมายเหตุ: ตัวอย่างที่ตามมาจะสาธิตการใช้ฟังก์ชันนี้ในโมดูล Visual Basic for Applications (VBA) For more information about working with VBA, select Developer Reference in the drop-down list next to Search and enter one or more terms in the search box.

ตัวอย่างนี้ใช้ฟังก์ชัน IIf เพื่อประเมินพารามิเตอร์ TestMe ของกระบวนงาน CheckIt และส่งกลับค่าเป็น "Large" ถ้าจํานวนมากกว่า 1000 ถ้าไม่ใช่ จะส่งกลับเป็นตัวอักษร "Small"

Function CheckIt (TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small")
End Function

ตัวอย่างเพิ่มเติม

นิพจน์

ผลลัพธ์

=IIf([AirportCode]="ORD","Chicago",IIf([AirportCode]="ATL","Seattle",IIf([AirportCode]="SEA","Seattle","Other")))

ถ้า [รหัสสนามบิน] เป็น "ORD" ให้ส่งกลับ "Chicago" มิฉะนั้นถ้า [รหัสสนามบิน] เป็น "ATL" ให้ส่งกลับ "แอตแลนต้า" มิฉะนั้นถ้า [รหัสสนามบิน] เป็น "SEA" ให้ส่งกลับ "Seattle" มิฉะนั้น ให้ส่งกลับ "อื่นๆ"

=IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped"))

ถ้า [วันที่จัดส่ง] ก่อนวันที่ของวันนี้ ให้ส่งกลับ "จัดส่งแล้ว" มิฉะนั้น ถ้า [ShipDate] เท่ากับวันที่ของวันนี้ ให้ส่งกลับ "จัดส่งวันนี้" มิฉะนั้น ให้ส่งกลับ "ไม่เป็นผู้สนับสนุน"

=IIf([วันที่สั่งซื้อ]<#1/1/2008#,"เก่า","ใหม่")

ถ้า [วันที่ซื้อ] ก่อนวันที่ 1/1/2008 ให้ส่งคืน "เก่า" มิฉะนั้น ให้ส่งกลับ "ใหม่"

=IIf(Eval([Volts] ระหว่าง 12 และ 15 และ [Amps] ระหว่าง 0.25 และ 0.3),"ตกลง","ออกจากการปรับเทียบ")

ถ้า [Volts] อยู่ระหว่าง 12 และ 15 และ [Amps] อยู่ระหว่าง 0.25 และ 0.3 ให้ส่งกลับ "OK" มิฉะนั้น ให้ส่งกลับ "ออกจากการปรับเทียบ"

=IIf(Eval([CountryRegion] In ("Canada","USA","Mexico")),"อเมริกาเหนือ","Other")

ถ้า [CountryRegion] เป็น "แคนาดา", "USA" หรือ "Mexico" ให้แสดง "อเมริกาเหนือ" มิฉะนั้น ให้ส่งกลับ "อื่นๆ"

=IIf([Average]>=90,"A",IIf([Average]>=80,"B",IIf([Average]>=70,"C",IIf([Average]>=60,"D","F"))))

ถ้า [Average] เป็น 90 หรือมากกว่า ให้ส่งกลับ "A" มิฉะนั้น ถ้า [Average] เป็น 80 หรือมากกว่า ให้ส่งกลับ "B" มิฉะนั้น ถ้า [Average] เป็น 70 หรือมากกว่า ให้ส่งกลับ "C" มิฉะนั้น ถ้า [Average] เป็น 60 หรือมากกว่า ให้ส่งกลับ "D" มิฉะนั้น ให้ส่งกลับ "F"

หมายเหตุ: ถ้าคุณใช้ฟังก์ชัน IIf เพื่อสร้างเขตข้อมูลที่คํานวณในคิวรี ให้แทนที่เครื่องหมายเท่ากับ (=) ด้วยนามแฝงของเขตข้อมูลและเครื่องหมายจุดคู่ (:) ตัวอย่างเช่น สถานะ : IIf([วันที่จัดส่ง]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped"))

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่

ขยายทักษะ Office ของคุณ
สำรวจการฝึกอบรม
รับฟีเจอร์ใหม่ก่อนใคร
เข้าร่วม Office Insider

ข้อมูลนี้เป็นประโยชน์หรือไม่

ขอบคุณสำหรับคำติชมของคุณ!

ขอขอบคุณสำหรับคำติชมของคุณ! เราคิดว่าอาจเป็นประโยชน์ที่จะให้คุณได้ติดต่อกับหนึ่งในตัวแทนฝ่ายสนับสนุน Office ของเรา

×