IF
นําไปใช้กับ: คอลัมน์จากการคํานวณตารางจากการคํานวณหน่วยวัดการคํานวณวิชวล
ตรวจสอบเงื่อนไข และแสดงค่าหนึ่งเมื่อ TRUE
มิฉะนั้นจะส่งกลับค่าที่สอง
วากยสัมพันธ์
IF(<logical_test>, <value_if_true>[, <value_if_false>])
พารามิเตอร์
เทอม | นิยาม |
---|---|
logical_test |
ค่าหรือนิพจน์ใด ๆ ที่สามารถประเมินเป็น TRUE หรือ FALSE ได้ |
value_if_true |
ค่าที่แสดงถ้าการทดสอบเชิงตรรกะ TRUE |
value_if_false |
(ไม่บังคับ) ค่าที่แสดงถ้าการทดสอบเชิงตรรกะ FALSE ถ้าเว้นไว้ BLANK จะถูกส่งกลับ |
ค่าผลลัพธ์
value_if_true
, value_if_false
, หรือ BLANK
อย่างใดอย่างหนึ่ง
หมาย เหตุ
ฟังก์ชัน IF สามารถส่งกลับชนิดข้อมูลแบบตัวแปรได้หาก
value_if_true
และvalue_if_false
มีชนิดข้อมูลที่แตกต่างกัน แต่ฟังก์ชันจะพยายามส่งคืนชนิดข้อมูลเดียวหากทั้งvalue_if_true
และvalue_if_false
เป็นชนิดข้อมูลตัวเลข ในกรณีต่อมา ฟังก์ชัน IF จะแปลงชนิดข้อมูลโดยปริยายเป็นค่าที่รองรับทั้งสองค่าตัวอย่างเช่น สูตร
IF(<condition>, TRUE(), 0)
จะแสดงTRUE
หรือ 0 แต่สูตรIF(<condition>, 1.0, 0)
จะแสดงเฉพาะค่าทศนิยมแม้ว่าvalue_if_false
จะเป็นชนิดข้อมูลจํานวนเต็มก็ตาม หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการแปลงชนิดข้อมูลโดยนัย โปรดดู ชนิดข้อมูลหากต้องการดําเนินการนิพจน์สาขาโดยไม่คํานึงถึงนิพจน์เงื่อนไข ให้ใช้ IF.EAGER แทน
ตัว อย่าง เช่น
ข้อกําหนดคอลัมน์จากการคํานวณของตาราง Product ต่อไปนี้ใช้ฟังก์ชัน IF ในวิธีที่แตกต่างกันในการจัดประเภทแต่ละผลิตภัณฑ์ตามราคาของรายการ
ตัวอย่างแรกทดสอบว่าค่าคอลัมน์ List Price น้อยกว่า 500 หรือไม่ เมื่อเงื่อนไขนี้เป็นจริง ค่า Low จะถูกส่งกลับ เนื่องจากไม่มีค่า value_if_false
จึงส่งกลับ BLANK
ตัวอย่างในบทความนี้สามารถใช้ได้กับตัวอย่าง Adventure Works DW 2020 Power BI Desktop แบบจําลอง หากต้องการรับแบบจําลอง โปรดดู DAX แบบจําลองตัวอย่าง
Price Group =
IF(
'Product'[List Price] < 500,
"Low"
)
ตัวอย่างที่สองใช้การทดสอบเดียวกัน แต่คราวนี้มีค่า value_if_false
ดังนั้นสูตรจะจัดประเภทแต่ละผลิตภัณฑ์เป็น Low
หรือ High
Price Group =
IF(
'Product'[List Price] < 500,
"Low",
"High"
)
ตัวอย่างที่สามใช้การทดสอบเดียวกัน แต่คราวนี้จะเป็นการซ้อนกันฟังก์ชัน IF เพื่อดําเนินการทดสอบเพิ่มเติม ดังนั้น สูตร จะจัดประเภทแต่ละผลิตภัณฑ์เป็น Low
, Medium
หรือ High
Price Group =
IF(
'Product'[List Price] < 500,
"Low",
IF(
'Product'[List Price] < 1500,
"Medium",
"High"
)
)
ปลาย
เมื่อคุณต้องการซ้อนฟังก์ชัน IF หลายฟังก์ชัน ฟังก์ชัน SWITCH อาจเป็นตัวเลือกที่ดีกว่า ฟังก์ชันนี้มีวิธีการที่สวยงามมากกว่าในการเขียนนิพจน์ที่ส่งกลับค่าที่เป็นไปได้มากกว่าสองค่า