ใช้ฟังก์ชันตัวแก้ไขตัวกรอง
CALCULATE
เมื่อใช้ฟังก์ชัน คุณสามารถส่งผ่านฟังก์ชันการแก้ไขตัวกรองซึ่งช่วยให้คุณสามารถดําเนินการได้มากกว่าการเพิ่มตัวกรองเพียงอย่างเดียว
นำตัวกรองออก
REMOVEFILTERS
ใช้ฟังก์ชัน DAX เป็นCALCULATE
นิพจน์ตัวกรองเพื่อนําตัวกรองออกจากบริบทตัวกรอง ซึ่งสามารถนำตัวกรองออกจากหนึ่งหรือหลายคอลัมน์หรือจากคอลัมน์ทั้งหมดของตารางเดียวได้
หมายเหตุ
ฟังก์ชัน REMOVEFILTERS
เป็นแบบใหม่ ใน DAX เวอร์ชันก่อนหน้า คุณได้นําตัวกรองออกโดยใช้ ALL
ฟังก์ชัน DAX หรือตัวแปรรวมทั้ง ALLEXCEPT
และ ALLNOBLANKROW
ฟังก์ชัน DAX ฟังก์ชันเหล่านี้ทำงานเป็นตัวแก้ไขการกรองและเป็นฟังก์ชันที่ส่งกลับวัตถุตารางของค่าที่แตกต่างกัน ฟังก์ชันเหล่านี้จะถูกกล่าวถึงในขณะนี้เนื่องจากคุณมีแนวโน้มที่จะค้นหาตัวอย่างเอกสารและสูตรที่นำตัวกรองออกโดยใช้ฟังก์ชันเหล่านี้
ในตัวอย่างต่อไปนี้ คุณจะเพิ่มหน่วยวัดใหม่ลงในตาราง ยอดขาย ที่ประเมินหน่วยวัด รายได้ แต่ไม่สามารถนําตัวกรองออกจากตาราง พื้นที่ยอดขาย ได้ จัดรูปแบบหน่วยวัดเป็นสกุลเงินด้วยตำแหน่งทศนิยมสองจุด
Revenue Total Region = CALCULATE([Revenue], REMOVEFILTERS('Sales Territory'))
ในตอนนี้ ให้เพิ่มหน่วยวัดภูมิภาคของรายได้ทั้งหมดไปยังภาพเมทริกซ์ที่พบบนหน้า 2 ของรายงาน ภาพเมทริกซ์จะจัดกลุ่มตามสามคอลัมน์จากตารางพื้นที่ยอดขายในแถว: กลุ่ม, ประเทศ, และภูมิภาค
โปรดสังเกตว่าแต่ละค่าภูมิภาคของรายได้ทั้งหมดจะเหมือนกัน ซึ่งเป็นค่าของรายได้ทั้งหมด
ในขณะที่ผลลัพธ์นี้ลำพังไม่มีประโยชน์ เมื่อใช้เป็นตัวหารในอัตราส่วนจะคำนวณเปอร์เซ็นต์ของผลรวมทั้งหมด ดังนั้นตอนนี้คุณจะเขียนทับหน่วยวัดภูมิภาคของรายได้ทั้งหมดที่มีคำจำกัดความดังต่อไปนี้ (ข้อกําหนดใหม่นี้เปลี่ยนชื่อหน่วยวัดและประกาศตัวแปรสองตัว ตรวจสอบให้แน่ใจว่าได้จัดรูปแบบหน่วยวัดเป็นเปอร์เซ็นต์ด้วยสองตําแหน่งทศนิยม)
Revenue % Total Region =
VAR CurrentRegionRevenue = [Revenue]
VAR TotalRegionRevenue =
CALCULATE(
[Revenue],
REMOVEFILTERS('Sales Territory')
)
RETURN
DIVIDE(
CurrentRegionRevenue,
TotalRegionRevenue
)
ตรวจสอบว่าภาพเมทริกซ์ในขณะนี้แสดงค่า% รายได้ทั้งหมดของภูมิภาค
ตอนนี้คุณจะสร้างหน่วยวัดอื่นได้ แต่ครั้งนี้คุณจะคำนวณอัตราส่วนของรายได้สำหรับภูมิภาคที่หารด้วยรายได้ของประเทศ
ก่อนที่คุณจะทำงานนี้ให้เสร็จสมบูรณ์ใ ห้สังเกตว่าค่า% รายได้ทั้งหมดของภูมิภาค สำหรับภูมิภาคตะวันตกเฉียงใต้คือ 22.95 เปอร์เซ็นต์ ตรวจสอบบริบทตัวกรองสำหรับเซลล์นี้ สลับไปยังมุมมองข้อมูล จากนั้นในบานหน้าต่างเขตข้อมูล ให้เลือกตารางพื้นที่ยอดขาย
ใช้ตัวกรองคอลัมน์ต่อไปนี้:
- กลุ่ม - อเมริกาเหนือ
- ประเทศ - สหรัฐอเมริกา
- ภูมิภาค - ตะวันตกเฉียงใต้
โปรดสังเกตว่าตัวกรองจะลดตารางให้เป็นแถวเดียวเท่านั้น ในตอนนี้ ในขณะที่คิดเกี่ยวกับวัตถุประสงค์ใหม่ของคุณในการสร้างอัตราส่วนของรายได้ของภูมิภาคในรายได้ของประเทศ ให้ล้างตัวกรองจากคอลัมน์ภูมิภาค
โปรดสังเกตว่ามีห้าแถวในขณะนี้ โดยแต่ละแถวอยู่ในประเทศสหรัฐอเมริกา ดังนั้นเมื่อคุณล้างตัวกรองคอลัมน์ของภูมิภาคในขณะที่รักษาตัวกรองบนคอลัมน์ประเทศและกลุ่มคุณจะมีบริบทตัวกรองใหม่ที่อยู่สำหรับประเทศของภูมิภาค
ในข้อกำหนดหน่วยวัดต่อไปนี้ ให้สังเกตว่าคุณสามารถล้างหรือนำตัวกรองออกจากคอลัมน์ได้อย่างไร ในตรรกะของ DAX เป็นการเปลี่ยนแปลงที่มีขนาดเล็กและละเอียดอ่อนที่เกิดขึ้นกับหน่วยวัด % รายได้ทั้งหมดของภูมิภาค ฟังก์ชันจะREMOVEFILTERS
นําตัวกรองออกจากคอลัมน์ภูมิภาคแทนที่จะเป็นคอลัมน์ทั้งหมดของตารางพื้นที่ยอดขาย
Revenue % Total Country =
VAR CurrentRegionRevenue = [Revenue]
VAR TotalCountryRevenue =
CALCULATE(
[Revenue],
REMOVEFILTERS('Sales Territory'[Region])
)
RETURN
DIVIDE(
CurrentRegionRevenue,
TotalCountryRevenue
)
เพิ่มหน่วยวัด % รายได้ทั้งหมดของประเทศ ลงในตาราง ยอดขาย จากนั้นจัดรูปแบบเป็นเปอร์เซ็นต์โดยมีทศนิยมสองตําแหน่ง เพิ่มหน่วยวัดใหม่ไปยังภาพเมทริกซ์
โปรดสังเกตว่าค่าทั้งหมดยกเว้นค่าเหล่านั้นสำหรับภูมิภาคของสหรัฐอเมริกาคือ 100 เปอร์เซ็นต์ เหตุผลก็เพราะว่าที่บริษัท Adventure Works สหรัฐอเมริกามีภูมิภาคในขณะที่ประเทศอื่นๆ ไม่มี
หมายเหตุ
แบบจำลองตารางไม่รองรับลำดับชั้นที่ไม่สมบูรณ์ซึ่งเป็นลำดับชั้นที่มีความลึกตัวแปร ดังนั้น จึงเป็นแนวทางการออกแบบทั่วไปในการทำซ้ำค่าพาเรนต์ (หรือตระกูลอื่นๆ ) ที่ระดับล่างของลำดับชั้น ตัวอย่างเช่น ออสเตรเลียไม่มีภูมิภาค ดังนั้นค่าประเทศ/ภูมิภาคจึงซ้ํากันเป็นชื่อภูมิภาค การจัดเก็บค่าที่มีความหมายแทน BLANK จะดีกว่าเสมอ
ตัวอย่างต่อไปคือหน่วยวัดสุดท้ายที่คุณจะสร้าง เพิ่มหน่วยวัด % รายได้ทั้งหมดของกลุ่มจากนั้นจัดรูปแบบเป็นเปอร์เซ็นต์โดยมีทศนิยมสองตำแหน่ง จากนั้นเพิ่มหน่วยวัดใหม่ลงในภาพเมทริกซ์
Revenue % Total Group =
VAR CurrentRegionRevenue = [Revenue]
VAR TotalGroupRevenue =
CALCULATE(
[Revenue],
REMOVEFILTERS(
'Sales Territory'[Region],
'Sales Territory'[Country]
)
)
RETURN
DIVIDE(
CurrentRegionRevenue,
TotalGroupRevenue
)
เมื่อคุณลบตัวกรองออกจากคอลัมน์ ภูมิภาค และ ประเทศ ในตาราง พื้นที่ยอดขาย หน่วยวัดจะคํานวณรายได้ของภูมิภาคเป็นอัตราส่วนของรายได้ของกลุ่ม
รักษาตัวกรอง
คุณสามารถใช้ KEEPFILTERS
ฟังก์ชัน DAX เป็นนิพจน์ตัวกรองใน CALCULATE
ฟังก์ชันเพื่อรักษาตัวกรองได้
หากต้องการดูวิธีการทำงานนี้ให้สำเร็จ ให้สลับไปที่หน้า 1 ของรายงาน จากนั้นแก้ไขข้อกําหนดหน่วยวัด รายได้สีแดง เพื่อใช้ KEEPFILTERS
ฟังก์ชัน
Revenue Red =
CALCULATE(
[Revenue],
KEEPFILTERS('Product'[Color] = "Red")
)
ในภาพตาราง โปรดสังเกตว่ามีค่ารายได้สีแดงอยู่เท่านั้น เหตุผลคือเนื่องจากนิพจน์ตัวกรองบูลีนรักษาตัวกรองที่มีอยู่บนคอลัมน์สีในตารางผลิตภัณฑ์ เหตุผลที่ทำให้สีอื่นนอกเหนือจากสีแดงเป็นค่าว่างเนื่องจากบริบทตัวกรองและนิพจน์ตัวกรองจะถูกรวมสำหรับตัวกรองทั้งสองนี้ สีดําและสีแดงตัดกันและเนื่องจากทั้งสองไม่สามารถ TRUE
ในเวลาเดียวกันได้ นิพจน์จะถูกกรองโดยไม่มีแถวผลิตภัณฑ์ อาจเป็นไปได้ว่าตัวกรองสีแดงทั้งสองตัวสามารถ TRUE
อยู่ในเวลาเดียวกันได้ ซึ่งจะอธิบายว่าทําไมมีการแสดงค่า รายได้สีแดง หนึ่งค่า
ใช้ความสัมพันธ์ที่ไม่ได้ทำงานอยู่
ความสัมพันธ์แบบจําลองที่ไม่ได้ใช้งานสามารถเผยแพร่เฉพาะตัวกรองเมื่อมีการ USERELATIONSHIP
ส่งผ่านฟังก์ชัน DAX เป็นนิพจน์ตัวกรองไปยัง CALCULATE
ฟังก์ชันเท่านั้น เมื่อคุณใช้ฟังก์ชันนี้เพื่อมีส่วนร่วมในความสัมพันธ์ที่ไม่ได้ใช้งาน
ตรวจทานตัวอย่างของข้อกำหนดหน่วยวัดที่ใช้ความสัมพันธ์ที่ไม่ได้ทำงานเพื่อคำนวณหน่วยวัดรายได้ตามวันที่จัดส่ง:
Revenue Shipped =
CALCULATE (
[Revenue],
USERELATIONSHIP('Date'[DateKey], Sales[ShipDateKey])
)
ปรับเปลี่ยนลักษณะการทำงานของความสัมพันธ์
คุณสามารถปรับเปลี่ยนลักษณะการทํางานของความสัมพันธ์แบบจําลองได้เมื่อมีการประเมินนิพจน์โดยผ่าน CROSSFILTER
ฟังก์ชัน DAX เป็นนิพจน์ตัวกรองไปยัง CALCULATE
ฟังก์ชัน นี่คือความสามารถขั้นสูง
ฟังก์ชัน CROSSFILTER
สามารถปรับเปลี่ยนทิศทางตัวกรอง (จากทั้งสองเป็นเดี่ยวหรือจากเดี่ยวเป็นทั้งสอง) และแม้แต่ปิดใช้งานความสัมพันธ์