ใช้การเปลี่ยนบริบท
เกิดอะไรขึ้นเมื่อประเมินนิพจน์หน่วยวัดหรือหน่วยวัดภายในบริบทแถว? สถานการณ์นี้อาจเกิดขึ้นในสูตรคอลัมน์ที่คำนวณได้ หรือเมื่อมีการประเมินนิพจน์ในฟังก์ชันตัวคำนวณ
ในตัวอย่างต่อไปนี้ คุณจะเพิ่มคอลัมน์ที่คำนวณได้ในตาราง ลูกค้าเพื่อจัดประเภทลูกค้าเป็นประเภทของลูกค้าสมาชิก สถานการณ์จำแนกง่ายคือ เมื่อรายได้ที่ผลิตโดยลูกค้าน้อยกว่า $2500 ลูกค้าจะถูกจัดประเภทเป็นต่ 20 มิฉะนั้นลูกค้าจะถูกจัดประเภทเป็น สูง
Customer Segment =
VAR CustomerRevenue = SUM(Sales[Sales Amount])
RETURN
IF(CustomerRevenue < 2500, "Low", "High")
บนหน้า 4 ของรายงาน ให้เพิ่มคอลัมน์ เซ็กเมนต์ ลูกค้าเป็นสัญลักษณ์ของแผนภูมิวงกลม
โปรดสังเกตว่ามีค่าเซ็กเมนต์ ลูกค้า เพียงค่าเดียว เหตุผลเนื่องจากสูตรคอลัมน์ที่คำนวณได้สร้างผลลัพธ์ที่ไม่ถูกต้อง: SUM(Sales[Sales Amount]) ลูกค้าแต่ละคนได้รับการมอบหมายค่าสูงเนื่องจากไม่มีการประเมินนิพจน์ในบริบทตัวกรอง ด้วยเหตุนี้ ลูกค้าแต่ละคนจะถูกประเมินจากผลรวมของค่า คอลัมน์ ยอดขายทุกค่า ในตาราง การขาย
เมื่อต้องการบังคับให้การประเมินนิพจน์ SUM(Sales[Sales Amount]) ของลูกค้า แต่ละคน การเปลี่ยนบริบทต้องขึ้นที่ใช้ค่าคอลัมน์บริบทแถวเพื่อกรองบริบท คุณสามารถบรรลุผลการแปลงนี้โดยใช้ CALCULATE ฟังก์ชันโดยไม่ผ่านนิพจน์ตัวกรองข้อมูล
ปรับเปลี่ยนตัวคำนิยามคอลัมน์ที่คำนวณได้ เพื่อให้ผลลัพธ์ที่ได้ถูกต้อง
Customer Segment =
VAR CustomerRevenue = CALCULATE(SUM(Sales[Sales Amount]))
RETURN
IF(CustomerRevenue < 2500, "Low", "High")
ในแผนภูมิวงกลม ให้เพิ่มคอลัมน์ที่คำนวณได้ใหม่ลงใน Legend ด้วย ให้ตรวจสอบว่าขณะนี้แสดงเซ็กเมนต์วงกลมสองเซ็กเมนต์แล้ว
ในกรณีนี้ ฟังก์ชันจะใช้ CALCULATE ค่าบริบทแถวเป็นตัวกรองข้อมูล ซึ่งเรียกอีก อย่างว่าการเปลี่ยนบริบท การต้องถูกต้อง กระบวนการไม่ควรใช้วิธีนั้นเมื่อคอลัมน์เฉพาะอยู่ในตาราง เมื่อคอลัมน์เฉพาะอยู่ในตาราง คุณเพียงต้องใช้ตัวกรองข้อมูลในคอลัมน์นั้นเพื่อให้การเปลี่ยนเกิดขึ้นเท่านั้น ในกรณีนี้ ให้ Power BI ใช้ตัวกรองข้อมูลในคอลัมน์ CustomerKey ของค่าในบริบทแถว
ถ้าคุณอ้างอิงหน่วยวัดในนิพจน์ที่ประเมินในบริบทแถว การเปลี่ยนบริบทจะอัตโนมัติ ดังนั้น คุณจึงไม่ต้องผ่านการอ้างอิงหน่วยวัดไปยัง CALCULATE ฟังก์ชัน
ปรับเปลี่ยนตัวคำนิยามคอลัมน์ที่คำนวณได้ ซึ่งอ้างอิง ตัวชี้วัดรายได้ และสังเกตว่าการคำนวณนั้นจะยังคงมีผลลัพธ์ที่ถูกต้องต่อไป
Customer Segment =
VAR CustomerRevenue = [Revenue]
RETURN
IF(CustomerRevenue < 2500, "Low", "High")
ขณะนี้คุณสามารถกรอกสูตรการวัดค่า ส่งเสริมการขายให้แก่ ส่งเสริมการขายให้แก่บริษัทให้สมบูรณ์ได้ หากต้องการผลิตจำนวนรวม คุณจึงต้องใช้ฟังก์ชันตัวสร้างกำไรเพื่อให้มีหนี้สินต่อทุกภูมิภาคในบริบทตัวกรองข้อมูล นิพจน์ฟังก์ชันตัวสร้างใหม่ต้องใช้ฟังก์ชัน CALCULATE นี้เพื่อเปลี่ยนบริบทแถวเป็นบริบทตัวกรองข้อมูล โปรดสังเกตว่าคุณไม่ต้องทดสอบอีกต่อไปว่า ค่าคอลัมน์ประเทศ เดียวในตาราง เขตการขาย อยู่ในบริบทตัวกรองข้อมูล เนื่องจากทราบกันว่าการกรองข้อมูลตามประเทศหนึ่งๆ (เนื่องจากจะเกิดซ้สัมพันธ์กับภูมิภาคในบริบทตัวกรองข้อมูลและภูมิภาคเป็นของประเทศเดียว)
สลับไปยัง หน้า 3 ของรายงาน แล้วปรับเปลี่ยนนิยามหน่วยวัด ของค่าส่งเสริมการขาย ให้แก่การขาย SUMX เพื่อใช้ฟังก์ชันตัวสร้างใหม่:
Sales Commission =
SUMX(
VALUES('Sales Territory'[Region]),
CALCULATE(
[Revenue]
* IF(
VALUES('Sales Territory'[Country]) = "United States",
0.15,
0.1
)
)
)
ขณะนี้ภาพตารางแสดงยอดรวมค่าส่งเสริมการขายให้แก่การขายสำกรับทุกภูมิภาค