CALCULATETABLE
นําไปใช้กับ: คอลัมน์จากการคํานวณตารางจากการคํานวณหน่วยวัดการคํานวณวิชวล
ประเมินนิพจน์ตารางในบริบทตัวกรองที่ปรับเปลี่ยนแล้ว
โน้ต
นอกจากนี้ยังมีฟังก์ชัน CALCULATE ซึ่งทําหน้าที่เหมือนกันทุกประการ ยกเว้นว่าจะปรับเปลี่ยนบริบทตัวกรอง นําไปใช้กับนิพจน์ที่ส่งกลับค่าสเกลา
วากยสัมพันธ์
CALCULATETABLE(<expression>[, <filter1> [, <filter2> [, …]]])
พารามิเตอร์
เทอม | นิยาม |
---|---|
expression |
นิพจน์ตารางที่จะประเมิน |
filter1, filter2,… |
(ไม่บังคับ) นิพจน์บูลีนหรือนิพจน์ตารางที่กําหนดตัวกรอง หรือฟังก์ชันตัวแก้ไขตัวกรอง |
นิพจน์ที่ใช้เป็นพารามิเตอร์แรกต้องเป็นตารางแบบจําลองหรือฟังก์ชันที่ส่งกลับตาราง
ตัวกรองสามารถเป็น:
- นิพจน์ตัวกรองบูลีน
- นิพจน์ตัวกรองตาราง
- ฟังก์ชันการปรับเปลี่ยนตัวกรอง
เมื่อมีตัวกรองหลายรายการ จะมีการประเมินโดยใช้ตัวดําเนินการเชิงตรรกะ AND ซึ่งหมายความว่าต้อง TRUE
เงื่อนไขทั้งหมดในเวลาเดียวกัน
นิพจน์ตัวกรองบูลีน
ตัวกรองนิพจน์บูลีนคือนิพจน์ที่ประเมินเป็น TRUE
หรือ FALSE
มีกฎหลายอย่างที่พวกเขาต้องปฏิบัติตาม:
- พวกเขาสามารถอ้างอิงได้เพียงคอลัมน์เดียวเท่านั้น
- โดยไม่สามารถอ้างอิงหน่วยวัดได้
- ไม่สามารถใช้ฟังก์ชัน CALCULATE แบบซ้อนกันได้
เริ่มตั้งแต่การเผยแพร่เดือนกันยายน 2021 ของ Power BI Desktop จะมีการนําไปใช้ดังต่อไปนี้:
- พวกเขาไม่สามารถใช้ฟังก์ชันที่สแกนหรือส่งกลับตารางเว้นแต่จะถูกส่งผ่านเป็นอาร์กิวเมนต์ไปยังฟังก์ชันการรวม
- สามารถ มีฟังก์ชันการรวมที่ส่งกลับค่าสเกลาได้
นิพจน์ตัวกรองตาราง
ตัวกรองนิพจน์ตารางใช้วัตถุตารางเป็นตัวกรอง ซึ่งอาจเป็นการอ้างอิงไปยังตารางแบบจําลอง แต่มีแนวโน้มว่าจะเป็นฟังก์ชันที่ส่งกลับวัตถุตาราง คุณสามารถใช้ฟังก์ชัน FILTER เพื่อใช้เงื่อนไขตัวกรองที่ซับซ้อน รวมถึงเงื่อนไขที่ไม่สามารถกําหนดโดยนิพจน์ตัวกรองบูลีนได้
ฟังก์ชันตัวแก้ไขตัวกรอง
ฟังก์ชันตัวปรับเปลี่ยนตัวกรองช่วยให้คุณทําได้มากกว่าเพียงแค่เพิ่มตัวกรอง ซึ่งช่วยให้คุณสามารถควบคุมเพิ่มเติมเมื่อแก้ไขบริบทตัวกรอง
ฟังก์ชัน | วัตถุประสงค์ |
---|---|
REMOVEFILTERS | ลบตัวกรองทั้งหมด หรือตัวกรองจากหนึ่งหรือหลายคอลัมน์ของตาราง หรือจากคอลัมน์ทั้งหมดของตารางเดียว |
ALL 1, ALLEXCEPT, ALLNOBLANKROW | เอาตัวกรองออกจากหนึ่งหรือหลายคอลัมน์ หรือจากคอลัมน์ทั้งหมดของตารางเดียว |
KEEPFILTERS | เพิ่มตัวกรองโดยไม่ต้องลบตัวกรองที่มีอยู่บนคอลัมน์เดียวกัน |
USERELATIONSHIP | มีส่วนร่วมในความสัมพันธ์ที่ไม่ได้ใช้งานระหว่างคอลัมน์ที่เกี่ยวข้อง ซึ่งในกรณีนี้ความสัมพันธ์ที่ใช้งานอยู่จะกลายเป็นไม่ใช้งานโดยอัตโนมัติ |
CROSSFILTER | ปรับเปลี่ยนทิศทางตัวกรอง (จากทั้งสองเป็นเดี่ยว หรือจากเดี่ยวเป็นทั้งสอง) หรือปิดใช้งานความสัมพันธ์ |
1 ฟังก์ชัน ALL และตัวแปรจะทํางานเป็นทั้งตัวปรับเปลี่ยนตัวกรองและเป็นฟังก์ชันที่ส่งกลับวัตถุตาราง หากเครื่องมือของคุณรองรับฟังก์ชัน REMOVEFILTERS คุณควรใช้ฟังก์ชันนี้เพื่อนําตัวกรองออก
ค่าผลลัพธ์
ตารางของค่า
หมาย เหตุ
เมื่อมีการระบุนิพจน์ตัวกรอง ฟังก์ชัน CALCULATETABLE จะปรับเปลี่ยนบริบทตัวกรองเพื่อประเมินนิพจน์ สําหรับแต่ละนิพจน์ตัวกรอง มีผลลัพธ์มาตรฐานที่เป็นไปได้สองประการเมื่อนิพจน์ตัวกรองไม่ได้ถูกครอบอยู่ในฟังก์ชัน KEEPFILTERS:
- ถ้าคอลัมน์ (หรือตาราง) ไม่ได้อยู่ในบริบทตัวกรอง ระบบจะเพิ่มตัวกรองใหม่ลงในบริบทตัวกรองเพื่อประเมินนิพจน์
- ถ้าคอลัมน์ (หรือตาราง) อยู่ในบริบทตัวกรองแล้ว ตัวกรองที่มีอยู่จะถูกเขียนทับโดยตัวกรองใหม่เพื่อประเมินนิพจน์ CALCULATETABLE
ฟังก์ชันนี้ไม่ได้รับการสนับสนุนสําหรับการใช้งานในโหมด DirectQuery เมื่อใช้ในคอลัมน์จากการคํานวณหรือกฎการรักษาความปลอดภัยระดับแถว (RLS)
ตัวอย่าง
ตัวอย่างต่อไปนี้ใช้ฟังก์ชัน CALCULATETABLE เพื่อรับผลรวมของยอดขายทางอินเทอร์เน็ตสําหรับปี 2006 ค่านี้จะใช้ในการคํานวณอัตราส่วนของยอดขายทางอินเทอร์เน็ตเมื่อเปรียบเทียบกับยอดขายทั้งหมดสําหรับปี 2006
สูตรต่อไปนี้:
= SUMX(
CALCULATETABLE(
'InternetSales_USD',
'DateTime'[CalendarYear] = 2006
),
[SalesAmount_USD]
)
ผลลัพธ์แสดงในตารางต่อไปนี้:
ป้ายชื่อแถว | SalesAmount_USD อินเทอร์เน็ต | CalculateTable 2006 Internet Sales | Internet Sales to 2006 ratio |
---|---|---|---|
2005 | $2,627,031.40 | $5,681,440.58 | 0.46 |
2006 | $5,681,440.58 | $5,681,440.58 | 1.00 |
2007 | $8,705,066.67 | $5,681,440.58 | 1.53 |
2008 | $9,041,288.80 | $5,681,440.58 | 1.59 |
ผลรวมทั้งหมด | $26,054,827.45 | $5,681,440.58 | 4.59 |
เนื้อหาที่เกี่ยวข้อง
- บริบทตัวกรอง
- ฟังก์ชัน CALCULATE (DAX)
- ฟังก์ชันตัวกรอง (DAX)