KEEPFILTERS
นําไปใช้กับ: คอลัมน์จากการคํานวณตารางจากการคํานวณ
หน่วยวัด
การคํานวณวิชวล
ปรับเปลี่ยนวิธีการใช้ตัวกรองขณะประเมินฟังก์ชัน CALCULATE หรือ CALCULATETABLE
วากยสัมพันธ์
KEEPFILTERS(<expression>)
พารามิเตอร์
เทอม | นิยาม |
---|---|
expression |
นิพจน์ใด ๆ |
ค่าผลลัพธ์
ตารางของค่า
หมาย เหตุ
คุณใช้ KEEPFILTERS ภายในบริบท CALCULATE และฟังก์ชัน CALCULATETABLE เพื่อแทนที่ลักษณะการทํางานมาตรฐานของฟังก์ชันเหล่านั้น
ตามค่าเริ่มต้น อาร์กิวเมนต์ตัวกรองในฟังก์ชันเช่น CALCULATE จะถูกใช้เป็นบริบทสําหรับการประเมินนิพจน์ และเป็นอาร์กิวเมนต์ตัวกรองดังกล่าวสําหรับ CALCULATE แทนที่ตัวกรองที่มีอยู่ทั้งหมดในคอลัมน์เดียวกัน บริบทใหม่ที่ได้รับผลกระทบจากอาร์กิวเมนต์ตัวกรองสําหรับ CALCULATE จะมีผลต่อตัวกรองที่มีอยู่บนคอลัมน์ที่ระบุเป็นส่วนหนึ่งของอาร์กิวเมนต์ตัวกรองเท่านั้น ตัวกรองบนคอลัมน์อื่นนอกเหนือจากที่กล่าวถึงในอาร์กิวเมนต์ของ CALCULATE หรือฟังก์ชันที่เกี่ยวข้องอื่น ๆ จะยังคงมีผลและไม่เปลี่ยนแปลง
ฟังก์ชัน KEEPFILTERS ช่วยให้คุณสามารถปรับเปลี่ยนลักษณะการทํางานนี้ได้ เมื่อคุณใช้ KEEPFILTERSตัวกรองที่มีอยู่ในบริบทปัจจุบันจะถูกเปรียบเทียบกับคอลัมน์ในอาร์กิวเมนต์ตัวกรอง และจุดตัดของอาร์กิวเมนต์เหล่านั้นจะถูกใช้เป็นบริบทสําหรับการประเมินนิพจน์ ผลสุทธิที่เกิดขึ้นในหนึ่งคอลัมน์ใด ๆ คือ ใช้อาร์กิวเมนต์ทั้งสองชุด: ทั้งอาร์กิวเมนต์ตัวกรองที่ใช้ใน CALCULATE และตัวกรองในอาร์กิวเมนต์ของฟังก์ชัน KEEPFILTER กล่าวอีกนัยหนึ่ง ในขณะที่ CALCULATE ตัวกรองจะแทนที่บริบทปัจจุบัน KEEPFILTERS เพิ่มตัวกรองไปยังบริบทปัจจุบัน
ฟังก์ชันนี้ไม่ได้รับการสนับสนุนสําหรับการใช้งานในโหมด DirectQuery เมื่อใช้ในคอลัมน์จากการคํานวณหรือกฎการรักษาความปลอดภัยระดับแถว (RLS)
ตัวอย่าง
ตัวอย่างต่อไปนี้จะนําคุณผ่านสถานการณ์ทั่วไปบางอย่างที่สาธิตการใช้ฟังก์ชัน KEEPFILTERS เป็นส่วนหนึ่งของสูตร CALCULATE หรือ CALCULATETABLE
นิพจน์สามรายการแรกรับข้อมูลอย่างง่ายที่จะใช้สําหรับการเปรียบเทียบ:
ยอดขายอินเทอร์เน็ตสําหรับรัฐวอชิงตัน
ยอดขายอินเทอร์เน็ตสําหรับรัฐวอชิงตันและโอเรกอน (รวมทั้งสองรัฐ)
ยอดขายอินเทอร์เน็ตสําหรับรัฐวอชิงตันและจังหวัดของบริติชโคลัมเบีย (รวมทั้งสองภูมิภาค)
นิพจน์ที่สี่คํานวณยอดขายอินเทอร์เน็ตสําหรับรัฐวอชิงตันและโอเรกอน ในขณะที่ใช้ตัวกรองสําหรับรัฐวอชิงตันและบริติชโคลัมเบีย
นิพจน์ถัดไปคํานวณยอดขายอินเทอร์เน็ตสําหรับรัฐวอชิงตันและโอเรกอน แต่ใช้ KEEPFILTERSตัวกรองสําหรับวอชิงตันและบริติชโคลัมเบียเป็นส่วนหนึ่งของบริบทก่อนหน้า
EVALUATE ROW(
"$$ in WA"
, CALCULATE('Internet Sales'[Internet Total Sales]
, 'Geography'[State Province Code]="WA"
)
, "$$ in WA and OR"
, CALCULATE('Internet Sales'[Internet Total Sales]
, 'Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="OR"
)
, "$$ in WA and BC"
, CALCULATE('Internet Sales'[Internet Total Sales]
, 'Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="BC"
)
, "$$ in WA and OR ??"
, CALCULATE(
CALCULATE('Internet Sales'[Internet Total Sales]
,'Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="OR"
)
, 'Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="BC"
)
, "$$ in WA !!"
, CALCULATE(
CALCULATE('Internet Sales'[Internet Total Sales]
, KEEPFILTERS('Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="OR"
)
)
, 'Geography'[State Province Code]="WA"
|| 'Geography'[State Province Code]="BC"
)
)
เมื่อนิพจน์นี้ได้รับการประเมินจากฐานข้อมูลตัวอย่าง AdventureWorks DW จะได้รับผลลัพธ์ต่อไปนี้
คอลัมน์ | ค่า |
---|---|
[$$ in WA] |
$ 2,467,248.34 |
[$$ in WA and OR] |
$ 3,638,239.88 |
[$$ in WA and BC] |
$ 4,422,588.44 |
[$$ in WA and OR ??] |
$ 3,638,239.88 |
[$$ in WA !!] |
$ 2,467,248.34 |
โน้ต
ผลลัพธ์ข้างต้นได้รับการจัดรูปแบบไปยังตาราง แทนที่จะเป็นแถวเดียวเพื่อวัตถุประสงค์ด้านการศึกษา
ก่อนอื่น ให้ตรวจสอบนิพจน์ [$$ in WA and OR ??]
คุณอาจสงสัยว่าสูตรนี้จะแสดงค่าสําหรับยอดขายในรัฐวอชิงตันและโอเรกอนได้อย่างไร เนื่องจากนิพจน์ CALCULATE ด้านนอกมีตัวกรองสําหรับรัฐวอชิงตันและบริติชโคลัมเบีย คําตอบคือลักษณะการทํางานเริ่มต้นของ CALCULATE แทนที่ตัวกรองภายนอกใน 'ภูมิศาสตร์' [State Province Code] และแทนที่อาร์กิวเมนต์ตัวกรองของตนเองเนื่องจากตัวกรองนําไปใช้กับคอลัมน์เดียวกัน
ถัดไป ให้ตรวจสอบนิพจน์ [$$ in WA !!]
คุณอาจสงสัยว่าสูตรนี้จะแสดงค่าสําหรับยอดขายในรัฐวอชิงตันและไม่รวมรัฐอื่นใดได้อย่างไร เนื่องจากตัวกรองอาร์กิวเมนต์รวมถึงรัฐโอเรกอนและนิพจน์ CALCULATE ด้านนอกมีตัวกรองในรัฐวอชิงตันและบริติชโคลัมเบีย คําตอบคือ KEEPFILTERS ปรับเปลี่ยนลักษณะการทํางานเริ่มต้นของ CALCULATE และเพิ่มตัวกรองเพิ่มเติม เนื่องจากมีการใช้จุดแยกของตัวกรอง ขณะนี้ตัวกรองภายนอก 'Geography'[State Province Code]="WA" || 'Geography'[State Province Code]="BC")
จะถูกเพิ่มลงในอาร์กิวเมนต์ตัวกรอง 'Geography'[State Province Code]="WA" || 'Geography'[State Province Code]="OR"
เนื่องจากตัวกรองทั้งสองนําไปใช้กับคอลัมน์เดียวกัน ตัวกรองผลลัพธ์ 'Geography'[State Province Code]="WA"
คือตัวกรองที่ถูกนําไปใช้เมื่อประเมินนิพจน์
เนื้อหาที่เกี่ยวข้อง
ฟังก์ชันตัวกรอง CALCULATE ฟังก์ชันCALCULATETABLE ฟังก์ชัน