ใช้การเปลี่ยนบริบท

เสร็จสมบูรณ์เมื่อ

เกิดอะไรขึ้นเมื่อประเมินนิพจน์หน่วยวัดหรือหน่วยวัดภายในบริบทแถว? สถานการณ์นี้อาจเกิดขึ้นในสูตรคอลัมน์ที่คำนวณได้ หรือเมื่อมีการประเมินนิพจน์ในฟังก์ชันตัวคำนวณ

ในตัวอย่างต่อไปนี้ คุณจะเพิ่มคอลัมน์ที่คำนวณได้ในตาราง ลูกค้าเพื่อจัดประเภทลูกค้าเป็นประเภทของลูกค้าสมาชิก สถานการณ์จำแนกง่ายคือ เมื่อรายได้ที่ผลิตโดยลูกค้าน้อยกว่า $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
        )
    )
)

ขณะนี้ภาพตารางแสดงยอดรวมค่าส่งเสริมการขายให้แก่การขายสำกรับทุกภูมิภาค