ฟังก์ชัน IIf

สิ่งสำคัญ:  บทความนี้เป็นการแปลด้วยเครื่อง โปรดดู ข้อจำกัดความรับผิดชอบ โปรดดูบทความฉบับภาษาอังกฤษ ที่นี่ เพื่อใช้อ้างอิง

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

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

ดูตัวอย่าง

ไวยากรณ์

IIf ( expr , truepart , falsepart )

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

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

คำอธิบาย

expr

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

truepart

(ต้องระบุ) ค่าหรือนิพจน์ที่ถูกส่งกลับ ถ้า expr เป็น จริง

falsepart

(ต้องระบุ) ค่าหรือนิพจน์ที่ถูกส่งกลับ ถ้า expr เป็น เท็จ


ข้อสังเกต

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

ตัวอย่าง

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

=IIf([ประเทศภูมิภาค]="อิตาลี", "ภาษาอิตาลี", "ภาษาอื่น")

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

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

=IIf([ประเทศภูมิภาค]="อิตาลี", "ภาษาอิตาลี", IIf([ประเทศภูมิภาค]="ฝรั่งเศส", "ภาษาฝรั่งเศส", IIf([ประเทศภูมิภาค]="เยอรมนี", "ภาษาเยอรมัน", "ภาษาอื่น")))

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

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

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

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

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

ใช้ IIf ในคิวรี   

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

ภาษา: IIf([ประเทศภูมิภาค]="อิตาลี", "ภาษาอิตาลี", "ภาษาอื่น")

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

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการสร้างแบบสอบถามและเขตข้อมูลจากการคำนวณ ดูบทความสร้างแบบสอบถามอย่างง่ายที่เลือก

ใช้ IIf ในโค้ด VBA   

หมายเหตุ: ตัวอย่างที่ติดตามสาธิตการใช้ฟังก์ชันนี้ใน Visual Basic for Applications (VBA) มอดูล สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการทำงานกับ VBA เลือกอ้างอิงสำหรับนักพัฒนา ในรายการดรอปดาวน์ถัดจากค้นหา และใส่เงื่อนไขอย่าง น้อยหนึ่งในกล่องค้นหา

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

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

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

นิพจน์

ผลลัพธ์

=IIf([รหัสสนามบิน]="ORD","Chicago",IIf([รหัสสนามบิน]="ATL","Atlanta",IIf([รหัสสนามบิน]="SEA","Seattle","อื่นๆ")))

ถ้า [รหัสสนามบิน] คือ "ORD" จะส่งกลับ "Chicago" ไม่เช่นนั้น ถ้า [รหัสสนามบิน] คือ "ATL" จะส่งกลับ "Atlanta" ไม่เช่นนั้น ถ้า [รหัสสนามบิน] คือ "SEA" จะส่งกลับ "Seattle" ไม่เช่นนั้น ให้ส่งกลับ "อื่นๆ"

=IIf([วันจัดส่ง]<Date(),"จัดส่งแล้ว",IIf([วันจัดส่ง]=Date(),"จัดส่งวันนี้","ยังไม่จัดส่ง"))

ถ้า [วันจัดส่ง] อยู่ก่อนหน้าวันที่ของวันนี้ จะส่งกลับ "จัดส่งแล้ว" ไม่เช่นนั้น ถ้า [วันจัดส่ง] เท่ากับวันที่ของวันนี้ จะส่งกลับ "จัดส่งวันนี้" ไม่เช่นนั้น ให้ส่งกลับ "ยังไม่จัดส่ง"

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

ถ้า [วันที่ซื้อ] อยู่ก่อนหน้าวันที่ 1/1/2551 จะส่งกลับ "เก่า" ไม่เช่นนั้น จะส่งกลับ "ใหม่"

=IIf(Eval([โวลต์] Between 12 And 15 And [แอมแปร์] Between 0.25 And 0.3),"มาตรฐาน","นอกเหนือการเทียบมาตรฐาน")

ถ้า [โวลต์] อยู่ระหว่าง 12 และ 15 และ [แอมแปร์] อยู่ระหว่าง 0.25 และ 0.3 จะส่งกลับ "มาตรฐาน" ไม่เช่นนั้น จะส่งกลับ "นอกเหนือการเทียบมาตรฐาน"

=IIf(Eval([ประเทศภูมิภาค] In ("แคนาดา","สหรัฐอเมริกา","เม็กซิโก")),"อเมริกาเหนือ","อื่นๆ")

ถ้า [ประเทศภูมิภาค] คือ "แคนาดา", "สหรัฐอเมริกา" หรือ "แม็กซิโก" จะส่งกลับ "อเมริกาเหนือ" ไม่เช่นนั้น ให้ส่งกลับ "อื่นๆ"

=IIf([ค่าเฉลี่ย]>=90,"A",IIf([ค่าเฉลี่ย]>=80,"B",IIf([ค่าเฉลี่ย]>=70,"C",IIf([ค่าเฉลี่ย]>=60,"D","F"))))

ถ้า [ค่าเฉลี่ย] คือ 90 หรือสูงกว่า จะส่งกลับ "A" ไม่เช่นนั้น ถ้า [ค่าเฉลี่ย] คือ 80 หรือสูงกว่า จะส่งกลับ "B" ไม่เช่นนั้น ถ้า [ค่าเฉลี่ย] คือ 70 หรือสูงกว่า จะส่งกลับ "C" ไม่เช่นนั้น ถ้า [ค่าเฉลี่ย] คือ 60 หรือสูงกว่า จะส่งกลับ "D" ไม่เช่นนั้น จะส่งกลับ "F"

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

หมายเหตุ: ข้อจำกัดความรับผิดชอบของการแปลด้วยเครื่อง: บทความนี้มีการแปลด้วยระบบคอมพิวเตอร์โดยไม่มีการดำเนินการโดยบุคคล Microsoft จัดให้มีการแปลด้วยเครื่องนี้เพื่อช่วยให้ผู้ใช้ที่ไม่ได้พูดภาษาอังกฤษสามารถใช้ประโยชน์จากเนื้อหาเกี่ยวกับผลิตภัณฑ์ บริการและเทคโนโลยีของ Microsoft เนื่องจากบทความมีการแปลด้วยเครื่อง อาจมีข้อผิดพลาดด้านคำศัพท์ ไวยากรณ์หรือรูปประโยค

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

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

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

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

×