กิจกรรม
เข้าร่วมกับเราที่ FabCon Vegas
31 มี.ค. 23 - 2 เม.ย. 23
เหตุการณ์ที่นําโดยชุมชนของ Microsoft Fabric, Power BI, SQL และ AI 31 มีนาคมถึงวันที่ 2 เมษายน 2025
ลงทะเบียนวันนี้เบราว์เซอร์นี้ไม่ได้รับการสนับสนุนอีกต่อไป
อัปเกรดเป็น Microsoft Edge เพื่อใช้ประโยชน์จากคุณลักษณะล่าสุด เช่น การอัปเดตความปลอดภัยและการสนับสนุนด้านเทคนิค
นําไปใช้กับ: คอลัมน์จากการคํานวณตารางจากการคํานวณMeasureการคํานวณวิชวล
ประเมินนิพจน์ในบริบท filter ที่ปรับเปลี่ยนแล้ว
หมายเหตุ
นอกจากนี้ยังมีฟังก์ชัน CALCULATETABLE ซึ่งทําหน้าที่เหมือนกันทุกประการ except จะปรับเปลี่ยนบริบท filter ที่ใช้กับนิพจน์ที่ส่งกลับวัตถุตาราง
CALCULATE(<expression>[, <filter1> [, <filter2> [, …]]])
เทอม | นิยาม |
---|---|
expression |
นิพจน์ที่จะประเมิน |
filter1, filter2,… |
(ไม่บังคับ) นิพจน์บูลีน or นิพจน์ตารางที่กําหนด filtersorfilter ฟังก์ชันตัวปรับเปลี่ยน |
โดยหลักแล้ว นิพจน์ที่ใช้เป็นพารามิเตอร์ first จะเหมือนกับ measure
Filters อาจเป็น:
เมื่อ มี filtersหลาย filtersตัวดําเนินการดังกล่าวสามารถประเมินได้โดยใช้ ตัวดําเนินการเชิงตรรกะ &&
ANDซึ่งหมายความว่า เงื่อนไข all จะต้อง TRUE
or โดยตัวดําเนินการเชิงตรรกะ OR (||
) ซึ่งหมายความว่าเงื่อนไขอย่างใดอย่างหนึ่งสามารถ trueได้
นิพจน์บูลีน filter เป็นนิพจน์ที่ประเมินเป็น TRUE
orFALSE
มีกฎหลายอย่างที่พวกเขาต้องปฏิบัติตาม:
ตั้งแต่การเผยแพร่เดือนกันยายน 2021 Power BI Desktop จะมีการนําไปใช้ดังนี้:
Total sales on the last selected date =
CALCULATE (
SUM ( Sales[Sales Amount] ),
'Sales'[OrderDateKey] = MAX ( 'Sales'[OrderDateKey] )
)
นิพจน์ตาราง filter นําวัตถุตารางมาใช้เป็น filter ซึ่งอาจเป็นการอ้างอิงไปยังตารางแบบจําลอง แต่มีแนวโน้มว่าจะเป็นฟังก์ชันที่ส่งกลับวัตถุตาราง คุณสามารถใช้ฟังก์ชัน FILTER เพื่อใช้เงื่อนไข filter ที่ซับซ้อน รวมถึงเงื่อนไขที่ไม่สามารถกําหนดโดยนิพจน์ filter บูลีนได้
ฟังก์ชันตัวปรับเปลี่ยน Filter ช่วยให้คุณทําได้มากกว่าเพียงแค่เพิ่ม filters ซึ่งจะช่วยให้คุณสามารถควบคุมเพิ่มเติมเมื่อปรับเปลี่ยนบริบท filter
ฟังก์ชัน | วัตถุประสงค์ |
---|---|
REMOVEFILTERS | เอา allfiltersออก orfilters จากตารางหนึ่ง or คอลัมน์ or ออกจากคอลัมน์ all ของตารางเดียว |
ALL 1, ALLEXCEPT, ALLNOBLANKROW | เอา filters ออกจากหนึ่ง or คอลัมน์เพิ่มเติม or จากคอลัมน์ all ของตารางเดียว |
KEEPFILTERS | เพิ่ม filter โดยไม่ต้องเอา filters ที่มีอยู่ออกจากคอลัมน์เดียวกัน |
USERELATIONSHIP | มีส่วนร่วมในความสัมพันธ์ที่ไม่ได้ใช้งานระหว่าง related คอลัมน์ ซึ่งในกรณีนี้ความสัมพันธ์ที่ใช้งานอยู่จะกลายเป็นไม่ใช้งานโดยอัตโนมัติ |
CROSSFILTER | ปรับเปลี่ยนทิศทาง filter (จากทั้งสองเป็นเดี่ยว or จากเดี่ยวเป็นทั้งสอง) or ปิดใช้งานความสัมพันธ์ |
1 ฟังก์ชัน ALLand ตัวแปรทํางานเป็นตัวปรับเปลี่ยน filterand เป็นฟังก์ชันที่ส่งกลับวัตถุตาราง If เครื่องมือของคุณได้รับการสนับสนุนฟังก์ชัน REMOVEFILTERS คุณควรใช้ฟังก์ชันนี้เพื่อลบ filtersออก
value ที่เป็นผลลัพธ์ของนิพจน์
เมื่อมีการระบุนิพจน์ filter ฟังก์ชัน CALCULATE จะปรับเปลี่ยนบริบท filter เพื่อ evaluate นิพจน์ สําหรับแต่ละนิพจน์ filter มีผลลัพธ์มาตรฐานที่เป็นไปได้สองประการเมื่อนิพจน์ filter ถูก not ตัดคําในฟังก์ชัน KEEPFILTERS:
ฟังก์ชัน CALCULATE ที่ใช้ โดยไม่มี filters บรรลุข้อกําหนดเฉพาะ ซึ่งจะเปลี่ยนบริบทแถวเป็นบริบท filter ซึ่งจําเป็นต้องมีเมื่อนิพจน์ (not แบบจําลอง measure) ที่สรุปข้อมูลแบบจําลองจําเป็นต้องได้รับการประเมินในบริบทแถว สถานการณ์นี้สามารถเกิดขึ้นได้ในสูตรคอลัมน์จากการคํานวณ or เมื่อมีการประเมินนิพจน์ในฟังก์ชันตัวทําซ้ํา โปรดทราบว่าเมื่อมีการใช้ measure แบบจําลองในบริบทแถว การเปลี่ยนบริบทจะเป็นไปโดยอัตโนมัติ
ฟังก์ชันนี้ not ได้รับการสนับสนุนสําหรับการใช้งานในโหมด DirectQuery เมื่อใช้ในคอลัมน์จากการคํานวณ or กฎการรักษาความปลอดภัยระดับแถว (RLS)
ตาราง Sales ต่อไปนี้ measure ข้อกําหนดสร้างผลลัพธ์รายได้ แต่สําหรับผลิตภัณฑ์ที่มีสีน้ําเงินเท่านั้น
ตัวอย่างในบทความนี้สามารถใช้ได้กับแบบจําลอง sample Adventure Works DW 2020 Power BI Desktop หากต้องการรับแบบจําลอง โปรดดู DAXsample แบบจําลอง
Blue Revenue =
CALCULATE(
SUM(Sales[Sales Amount]),
'Product'[Color] = "Blue"
)
ประเภท | ปริมาณยอดขาย | สีน้ําเงิน รายได้ |
---|---|---|
อุปกรณ์ เสริม | $1,272,057.89 | $165,406.62 |
จักรยาน | $94,620,526.21 | $8,374,313.88 |
เสื้อผ้า | $2,117,613.45 | $259,488.37 |
คอม โพ เนนต์ | $11,799,076.66 | $803,642.10 |
ผลรวม |
$109,809,274.20 | $9,602,850.97 |
ฟังก์ชัน CALCULATE ประเมิน sum ของตาราง Salesคอลัมน์ Sales Amount ในบริบท filter ที่ปรับเปลี่ยนแล้ว filter ใหม่จะถูกเพิ่มลงในตาราง Productคอลัมน์สีorfilter จะเขียนทับ filter ที่นําไปใช้กับคอลัมน์อยู่แล้ว
ตาราง measureSales ต่อไปนี้สร้างอัตราส่วนของยอดขายต่อยอดขายสําหรับช่องทางการขาย all
ช่อง | ปริมาณยอดขาย | รายได้ % ช่องทางทั้งหมด |
---|---|---|
อินเทอร์เน็ต | $29,358,677.22 | 26.74% |
ตัว แทน จำหน่าย | $80,450,596.98 | 73.26% |
ผลรวม |
$109,809,274.20 | 100.00% |
Revenue % Total Channel =
DIVIDE(
SUM(Sales[Sales Amount]),
CALCULATE(
SUM(Sales[Sales Amount]),
REMOVEFILTERS('Sales Order'[Channel])
)
)
ฟังก์ชัน DIVIDE หารนิพจน์ที่รวมผลรวมของตาราง SalesSales Amount คอลัมน์ value (ในบริบท filter) โดยใช้นิพจน์เดียวกันในบริบท filter ที่ปรับเปลี่ยนแล้ว เป็นฟังก์ชัน CALCULATE ที่ปรับเปลี่ยนบริบท filter โดยใช้ฟังก์ชัน REMOVEFILTERS ซึ่งเป็นฟังก์ชันตัวแก้ไข filter ซึ่งจะลบ
ข้อกําหนดคอลัมน์จากการคํานวณของตาราง ของลูกค้า
Customer Segment =
IF(
CALCULATE(SUM(Sales[Sales Amount]), ALLEXCEPT(Customer, Customer[CustomerKey])) < 2500,
"Low",
"High"
)
ในตัวอย่างนี้ บริบทแถวจะถูกแปลงเป็นบริบท filter ซึ่งเรียกว่า การเปลี่ยนบริบท ฟังก์ชัน
บริบท
กิจกรรม
เข้าร่วมกับเราที่ FabCon Vegas
31 มี.ค. 23 - 2 เม.ย. 23
เหตุการณ์ที่นําโดยชุมชนของ Microsoft Fabric, Power BI, SQL และ AI 31 มีนาคมถึงวันที่ 2 เมษายน 2025
ลงทะเบียนวันนี้