컨텍스트 전환 수행

완료됨

측정값 또는 측정값 식이 행 컨텍스트 내에서 평가되면 어떻게 되나요? 이 시나리오는 계산 열 수식에서 발생하거나 반복기 함수의 식이 평가될 때 발생할 수 있습니다.

다음 예제에서는 Customer 테이블에 계산 열을 추가하여 고객을 충성도 클래스로 분류합니다. 시나리오는 간단합니다. 고객에서 발생한 수익이 $2500 미만이면 고객은 Low로 분류되고, 그렇지 않으면 High로 분류됩니다.

Customer Segment =
VAR CustomerRevenue = SUM(Sales[Sales Amount])
RETURN
    IF(CustomerRevenue < 2500, "Low", "High")

보고서의 Page 4에서 Customer Segment 열을 원형 차트의 범례로 추가합니다.

이미지는 Revenue by Customer Segment라는 원형 차트 시각적 개체를 보여 줍니다. 세그먼트가 하나만 있습니다. 데이터의 100%를 나타내는 High.

Customer Segment 값이 하나만 존재합니다. 그 이유는 계산 열 수식이 잘못된 결과를 생성하기 때문입니다. 식 SUM(Sales[Sales Amount])는 필터 컨텍스트에서 평가되지 않기 때문에 각 고객에게 High 값이 할당됩니다. 따라서 각 고객은 Sales 테이블의 모든 Sales Amount 열 값의 합계를 기준으로 평가됩니다.

각 고객에 대해 SUM(Sales[Sales Amount]) 식을 강제로 평가하려면 행 컨텍스트 열 값을 필터 컨텍스트에 적용하는 컨텍스트 전환이 발생해야 합니다. 필터 식을 전달하지 않고 CALCULATE 함수를 사용하여 이 전환을 수행할 수 있습니다.

올바른 결과를 생성하도록 계산 열 정의를 수정합니다.

Customer Segment =
VAR CustomerRevenue = CALCULATE(SUM(Sales[Sales Amount]))
RETURN
    IF(CustomerRevenue < 2500, "Low", "High")

파이 차트 비주얼에서 계산된 새 열을 범례 웰에 추가하고 이제 두 개의 파이 세그먼트가 표시되는지 확인합니다.

이미지는 Revenue by Customer Segment라는 원형 차트 시각적 개체를 보여 줍니다. High 및 Low라는 두 세그먼트가 있습니다. High는 데이터의 76%를 나타내고, Low는 24%를 나타냅니다.

이 경우 CALCULATE 함수는 행 컨텍스트 값을 컨텍스트 전환이라는 필터로 적용합니다. 정확히 얘기하자면 테이블에 고유한 열이 있는 경우 프로세스가 이와 같이 작동하지 않습니다. 테이블에 고유 열이 있는 경우에는 해당 열에 대한 필터를 적용하여 전환을 수행하면 됩니다. 이 경우 Power BI는 CustomerKey 열을 기준으로 행 컨텍스트의 값을 필터링합니다.

행 컨텍스트에서 평가되는 식에서 측정값을 참조하는 경우 컨텍스트 전환이 자동입니다. 따라서 CALCULATE 함수에 측정값 참조를 전달할 필요가 없습니다.

Revenue 측정값을 참조하는 계산 열 정의를 수정하고 계속 올바른 결과를 생성하는지 확인합니다.

Customer Segment = 
VAR CustomerRevenue = [Revenue]
RETURN
    IF(CustomerRevenue < 2500, "Low", "High")

이제 Sales Commission 측정값 수식을 완성할 수 있습니다. 합계를 생성하려면 반복기 함수를 사용하여 필터 컨텍스트의 모든 지역을 반복해야 합니다. 반복기 함수 식은 CALCULATE 함수를 사용하여 행 컨텍스트를 필터 컨텍스트로 전환해야 합니다. 단일 국가를 기준으로 필터링되는 것이 알려져 있으므로(필터 컨텍스트의 지역을 반복하고 특정 지역은 한 국가에만 속하기 때문) Sales Territory 테이블의 단일 Country 열 값이 필터 컨텍스트에 있는지 더 이상 테스트하지 않아도 됩니다.

보고서의 Page 3으로 전환한 다음, SUMX 반복기 함수를 사용하도록 Sales Commission 측정값 정의를 수정합니다.

Sales Commission =
SUMX(
    VALUES('Sales Territory'[Region]),
    CALCULATE(
        [Revenue]
        * IF(
            VALUES('Sales Territory'[Country]) = "United States",
            0.15,
            0.1
        )
    )
)

이제 테이블 시각적 개체는 모든 지역에 대한 판매 커미션 합계를 표시합니다.

이미지는 다음 세 개의 열이 있는 테이블 시각적 개체를 보여 줍니다. Region, Revenue 및 Sales Commission. 10개 지역 행과 합계가 표시되어 있습니다. 이제 총 판매 커미션에 합계가 포함됩니다.