Intersect()

노드 탐색 방법 두 개 이상의 교집합의 결과인 노드를 참조하려는 경우 Intersect() 탐색 방법을 사용합니다.

이에 대해서는 아래에 예시되어 있습니다.



Q3이 현재 노드인 이 이미지에서는 AllPrevious()와 Parent() 탐색 방법의 교집합을 보여줍니다. 두 방법 모두에 의해 발견된 노드는 Q1-Q3, 2019입니다.

현재 노드가 몇 분기인지에 상관없이, 교집합의 결과는 Q1로 시작하여 현재 노드인 분기로 끝나는 기간입니다. 따라서 Intersect() 방법의 일반적인 사용 사례는 Year to Date 계산입니다(아래 예 참조).

주: 예의 표현식에서는 메모리 내 데이터가 사용되는 것으로 간주합니다.

Year to Date(YTD) 계산의 예

막대 그래프에는 2016년부터 2018년까지의 분기별 판매 합계가 표시됩니다.



각 연도의 누적 합계에 관심이 있다고 가정하겠습니다. AllPrevious() 탐색 방법을 사용하는 경우 이전 월 전부의 합을 계산하게 됩니다. 하지만 Q1 2017에는 합계를 전부 다시 시작하고 이전 연도인 2016년의 분기 합을 무시하고자 합니다.



예를 들어 누적 합 Q3 2017은 976(317+307+352)여야 합니다. 이 세 개의 막대만 참조하려면 Intersect() 방법이 편리합니다. AllPrevious() 방법은 Q1-Q4 2016 및 Q1-Q3 2017을 합계에 포함하며 Parent() 방법은 2017년의 4개 분기를 모두 포함합니다. 이러한 두 탐색 모드의 교집합은 정확하게 원하는 막대를 반환합니다.

Intersect()가 두 방법을 결합하는 아래의 표현식을 적용하고 결과를 보겠습니다(예: Q3 2017).



데이터가 둘 이상의 축으로 분할될 때 Intersect() 사용 예

여러 축을 사용하여 데이터를 슬라이스할 때마다 데이터는 점점 더 작은 슬라이스로 분할되어 더 많은 수의 표식으로 표현됩니다. 표현식을 적용하면 가장 작은 데이터 슬라이스에 적용됩니다. 위의 예에서 데이터는 범주 축으로만 분할됩니다. 하지만 예를 들어 색상 축으로도 분할하는 경우는 어떻게 될까요? 예를 들어 살펴보겠습니다.

아래 막대 그래프에는 타이타닉호 재난의 생존 통계가 표시됩니다. 데이터는 범주 축으로만 분할됩니다.



다음 이미지의 예에서는 이 정보를 절대 숫자가 아닌 백분율로 표시할 수 있습니다. All() 항목도 참조하십시오.

색상 축은 아래처럼 'survived'로 설정하여, 생존한 사람을 나타내는 막대를 구분하고자 한다고 가정하겠습니다.



하지만 이렇게 하면 백분율이 바뀌는 것을 알 수 있습니다. 네 막대 모두가 아니라 빨간색과 파란색 막대가 100%까지 합산됩니다. 표현식은 데이터가 색상 축에 의해 더 작은 슬라이스로 분할된다는 것을 고려하지 않기 때문에 이런 상황이 발생합니다. ...OVER (All([Axis.X]))... 부분은 범주 축의 슬라이싱을 무시하지만, 색상 기준 축의 슬라이싱은 무시하지 않습니다.

하지만 아래처럼 Intersect() 방법을 사용하여 색상을 유지하고 모든 막대를 100%까지 합산할 수 있습니다.



표현식의 All([Axis.X]) 및 All([Axis.Color]) 부분은 이러한 축 각각의 슬라이싱을 무시해야 한다는 것을 암시합니다. 그런 다음 Intersect() 방법이 이러한 부분을 결합합니다. 결과적으로 각 막대의 값이 모든 막대의 합으로 나눠집니다.