컨텍스트 전환 수행
행 컨텍스트 내에서 측정값 또는 측정값 표현식이 평가되면 무슨 일이 일어날까요? 이 시나리오는 계산된 열 수식에서 발생할 수도 있고 반복자 함수의 식이 평가될 때도 발생할 수 있습니다.
다음 예에서는 Customer 테이블에 계산된 열을 추가하여 고객을 충성도 등급으로 분류합니다. 시나리오는 간단합니다. 고객이 창출한 수익이 $2500보다 적으면 해당 고객은 낮음으로 분류됩니다. 그렇지 않으면 높음으로 분류됩니다.
Customer Segment =
VAR CustomerRevenue = SUM(Sales[Sales Amount])
RETURN
IF(CustomerRevenue < 2500, "Low", "High")
보고서의 4페이지에 고객 세그먼트 열을 파이 차트의 범례로 추가합니다.
단 하나의 고객 세그먼트 값만 존재한다는 점에 유의하세요. 그 이유는 계산된 열 수식이 잘못된 결과를 생성하기 때문입니다. 각 고객에게 High 값이 할당되는 이유는 표현식이 필터 컨텍스트에서 평가되지 않기 때문입니다. SUM(Sales[Sales Amount])
따라서 각 고객은 판매표의 판매 금액 열 값의 합계에 따라 평가됩니다.
각 고객에 대한 SUM(Sales[Sales Amount])
표현식 평가를 강제로 실행하려면 행 컨텍스트 열 값을 필터 컨텍스트에 적용하는 컨텍스트 전환이 이루어져야 합니다. 필터 표현식을 전달하지 않고도 CALCULATE
함수를 사용하여 이러한 전환을 달성할 수 있습니다.
계산된 열 정의를 수정하여 올바른 결과가 생성되도록 합니다.
Customer Segment =
VAR CustomerRevenue = CALCULATE(SUM(Sales[Sales Amount]))
RETURN
IF(CustomerRevenue < 2500, "Low", "High")
원형 차트 시각화에서 새로 계산된 열을 범례에 추가하고 이제 두 개의 원형 세그먼트가 표시되는지 확인합니다.
이 경우, 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
)
)
)
이제 표 시각적 요소에 모든 지역의 판매 수수료 총액이 표시됩니다.