ใช้ SELECTEDVALUE แทน VALUES
ในฐานะผู้สร้างแบบจําลองข้อมูล บางครั้งคุณอาจจําเป็นต้องเขียนนิพจน์ DAX ที่ทดสอบว่ามีการกรองคอลัมน์ตามค่าเฉพาะหรือไม่
ในเวอร์ชันก่อนหน้าของ DAXข้อกําหนดนี้สามารถทําได้อย่างปลอดภัยโดยใช้รูปแบบที่เกี่ยวข้องกับฟังก์ชัน DAX สามแบบ IF, HASONEVALUE และ VALUES ข้อกําหนดหน่วยวัดต่อไปนี้แสดงถึงตัวอย่าง ซึ่งคํานวณค่าภาษีขาย แต่เฉพาะสําหรับยอดขายที่ทํากับลูกค้าชาวออสเตรเลียเท่านั้น
Australian Sales Tax =
IF(
HASONEVALUE(Customer[Country-Region]),
IF(
VALUES(Customer[Country-Region]) = "Australia",
[Sales] * 0.10
)
)
ในตัวอย่าง ฟังก์ชัน HASONEVALUE ส่งกลับ TRUE เฉพาะเมื่อเห็นค่าเดียวของคอลัมน์ Country-Region ในบริบทตัวกรองปัจจุบัน เมื่อ TRUEแล้ว ฟังก์ชัน VALUES จะถูกเปรียบเทียบกับข้อความตัวอักษร "Australia" เมื่อฟังก์ชัน VALUES ส่งกลับ TRUEหน่วยวัด Sales จะถูกคูณด้วย 0.10 (แสดง 10%) ถ้าฟังก์ชัน HASONEVALUE ส่งกลับ FALSEเนื่องจากมีค่ามากกว่าหนึ่งค่ากรองคอลัมน์ ฟังก์ชัน IF แรกจะส่งกลับ BLANK
การใช้ HASONEVALUE เป็นเทคนิคการป้องกัน ซึ่งจําเป็นเนื่องจากเป็นไปได้ว่าค่าหลายค่าจะกรองคอลัมน์ ประเทศ-ภูมิภาค
การแนะนํา
ขอแนะนําให้คุณใช้ฟังก์ชัน SELECTEDVALUE ซึ่งจะทําให้ได้ผลลัพธ์เดียวกันกับรูปแบบที่อธิบายไว้ในบทความนี้ แต่มีประสิทธิภาพและสวยงามยิ่งขึ้น
การใช้ฟังก์ชัน SELECTEDVALUE ข้อกําหนดหน่วยวัดตัวอย่างจะถูกเขียนใหม่ในขณะนี้
Australian Sales Tax =
IF(
SELECTEDVALUE(Customer[Country-Region]) = "Australia",
[Sales] * 0.10
)
ปลาย
คุณสามารถส่งผ่าน ผลลัพธ์สํารอง ค่าลงในฟังก์ชัน SELECTEDVALUE ได้ ค่าผลลัพธ์สํารองจะถูกส่งกลับเมื่อไม่มีตัวกรองหรือตัวกรองหลายรายการถูกนําไปใช้กับคอลัมน์
เนื้อหาที่เกี่ยวข้อง
- เส้นทางการเรียนรู้: ใช้ DAX ใน Power BI Desktop
- คำ ถาม ลองถาม ชุมชน Power BI
- คำ แนะ นำ ร่วมสร้างแนวคิดเพื่อปรับปรุง Power BI