Power BI DAX 함수 중 ALLSELECTED에 대해서 정리하겠습니다. ALLSELECTED 함수를 한 줄로 정리하면 ”필터 컨텍스트에 표시되는 모든 값을 반환한다”라고 할 수 있습니다.
ALLSELECTED 구문 3가지
ALLSELECTED 함수 안에는 열이름, 테이블, 입력 없음의 세 가지 인수가 올 수 있습니다.
= ALLSELECTED ( <columnName1>, <columnName2>... )
= ALLSELECTED ( <table> )
= ALLSELECTED ( )
ALLSELECTED 사용 용례
- CALCULATE와 함께 현재 필터 컨텍스트를 수정 및 덮어씁니다.
- 필터 컨텍스트의 모든 표시 값을 표시하는 표로 사용합니다.
그러면 각각의 사용 용례에 대해서 예제를 통해 자세히 살펴보겠습니다.
CALCULATE와 함께 현재 필터 컨텍스트 수정 예제 1 (단일 열)
아래 두가지 측정식을 만들어서 테이블에 넣어 보겠습니다.
먼저 Sales의 합계를 구하는 측정식입니다.
Total Sales = SUM(Sales[SalesAmount])
ALLSELECTED가 CALCULATE와 함께 필터 컨텍스트를 수정하는 측정식입니다. 필터컨텍스트에 의해서 선택된 모든 Category에 대하여 Total Sales를 반환합니다.
AllSel on Category Column =
CALCULATE(
[Total Sales],
ALLSELECTED(Products[Category])
- Total Sales열은 슬라이서와 표에서 필터링된 Category의 필터 컨텍스트를 반영한 Total Sales 값을 반환합니다.
- ‘AllSel on Category Column’ 열은 선택된 Accessories와 Clothing Category의 범위 내에서 Total Sales를 구하여 반환합니다.
CALCULATE와 함께 현재 필터 컨텍스트 수정 예제 2 (복수 열)
복수 열의 필터 컨텍스트가 적용되었을 경우는 어떻게 동작할까요?
Products [Category]와 Products [Color]를 인수로 하여 ALLSELECTED 함수를 적용한 측정식 하나를 추가해보겠습니다.
AllSel on Category & Color Column =
CALCULATE(
[Total Sales],
ALLSELECTED(Products[Category], Products[Color])
)
- ‘AllSel on Category Column’열은 선택된 Category에 대해서 필터링을 적용하지 않지만 Color에 대해서는 필터링을 적용합니다.
- ‘AllSel on Category & Color Column’열은 선택된 Category와 Color 모두에 대해서 필터링을 적용하지 않습니다.
CALCULATE와 함께 현재 필터 컨텍스트 수정 예제 3 (테이블을 ALLSELECTED의 인수로 설정)
테이블을 ALLSELECTED의 인수로 적용되었을 경우는 어떻게 동작할까요?
아래와 같은 측정식을 만듭니다.
AllSel on Products Table =
CALCULATE(
[Total Sales],
ALLSELECTED(Products)
)
결과를 이해하기 위해서는 데이터 모델이 어떻게 연결되었는지 참고해야 합니다. Products 테이블은 Sales로 필터 방향이 흐르지만 Date까지는 흐르지 않습니다.
- Total Sales 열은 모든 필터 컨텍스트를 적용한 결괏값을 반환합니다.
- AllSel on Products Table은 Products 테이블에 속한 Category와 Color에 대해서는 ALLSELECTED 함수를 적용하고 Calendar 테이블에 속한 Year에 대해서는 필터 컨텍스트를 적용한 값을 반환합니다.
CALCULATE와 함께 현재 필터 컨텍스트 수정 예제 4 (ALLSELECTED의 인수를 미 설정 시)
ALLSELECTED의 인수를 지정하지 않은 경우는 어떻게 동작할까요?
ALLSELECTED에 인수를 지정하지 않은 측정식을 하나 만듭니다.
AllSel Blank =
CALCULATE(
[Total Sales],
ALLSELECTED()
)
- ALLSELECTED에 인수를 지정하지 않은 경우 모든 필터컨텍스트에 필터링을 적용하지 않은 결괏값이 반환됩니다.
필터 컨텍스트의 모든 표시 값을 표시하는 표로 사용하는 예제 5
ALLSELECTED를 테이블로 반환하는 측정식을 만듭니다.
AllSelected SUMX =
SUMX(
ALLSELECTED(Products[Category]),
[Total Sales]
)
- ‘AllSelected SUMX’ 열은 선택된 Category의 모든 행을 필터링한 테이블식을 기준으로 Total Sales의 합을 구한 값이 반환됩니다.
정리 소감
ALLSELECTED의 기본 개념을 이해하고 단수열, 복수열, 인수 미설정시 등의 다양한 경우에서 활용방법에 대해서 알아보는 유용한 시간이었습니다. Sub Total 기준으로 비율을 구하는 경우에도 추가 응용할 수 있겠습니다.
'데이터 분석 및 업무 자동화' 카테고리의 다른 글
Power BI DAX 연중 기간 다양한 SAMEPERIODLASTYEAR 적용 방법 (0) | 2022.05.04 |
---|---|
Power BI DAX Patterns 백분위수 계산 (Percentile Calculation) (0) | 2022.04.29 |
Power BI DAX Patterns 불연속적 날짜에서 전 시점 대비 증감률 구하기 (FILTER, SELECTEDVALUE) (0) | 2022.04.27 |
Power BI DAX 최대값 최소값 및 해당 시점 찾는 방법 (MAX, MIN, CALCULATE, FILTER) (0) | 2022.04.23 |
Power BI DAX TOPN 함수 사용하여 시군구별 대장 아파트 가격 비교 하기 (0) | 2022.04.22 |
댓글