목차
개요
ALL, ALLSELECTED 함수는 입력 파라미터로 테이블 이름, 열 이름 모두 가능합니다. 그리고 ALL 함수에 열 이름이 사용될 경우에 대해서 아래 포스트 내용을 참고하세요.
이번 포스트는 ALLSELECTED에 열 이름이 사용될 때, 어떤 결과를 보여주고 어떤 목적으로 사용하는지 설명합니다.
이전 포스트 링크:
Power BI DAX 기초 - ALL 열 기준 비율 구하는 방법
목차 개요 아래 포스트를 통해 DAX 함수 ALL, ALLSELECTED를 활용해서 테이블 전체 필터 정보를 없애는 방법을 다루었습니다. 이번 포스트에서는 ALL 함수 입력으로 특정 열이 주어졌을 때, 어떤
brightsomuch.tistory.com
ALLSELECTED 함수 입력 파라미터로 테이블 이름을 사용할 때, 어떤 의미를 갖는지 아래를 참고하세요.
- Power BI DAX 기초 - ALLSELECTED 선택 기준 비율 구하는 방법
Power BI DAX 기초 - ALLSELECTED 선택 기준 비율 구하는 방법
목차 개요 측정값은 필터 컨텍스트에 의해 계산되기 때문에, 필터가 어떻게 영향을 주는지 이해가 중요합니다. 이전 글에서는 DAX ALL 함수를 활용해서 모든 필터 정보를 제거할 수 있었습니다
brightsomuch.tistory.com
예제에 사용된 데이터 및 기본 측정값
연습을 위한 간단한 테이블 입니다. 주문 날짜 별 제품의 색깔, 수량, 가격을 포함하고 있습니다.
Amount 합을 구하는 기본적인 측정값입니다.
Sum of Amount =
SUM ( SHOP[Amount] )
SUMX of Amount =
SUMX ( SHOP, [Sum of Amount] )
ALLSELECTED - 테이블 이름. 복습
SUMX 함수 입력으로 테이블을 제공할 때, ALL 함수와 ALLSELECTED 함수를 이용해서 아래와 같이 측정값을 정의합니다.
SUMX of Amount ALL =
SUMX ( ALL ( SHOP ), [Sum of Amount] )
SUMX of Amount ALLSELECTED =
SUMX ( ALLSELECTED ( SHOP ), [Sum of Amount] )
SUMX 함수에서 모든 필터가 제거된 테이블 SHOP을 이용하지만, ALLSELECTED 함수는 외부 필터의 정보를 그대로 유지하기 때문에 다른 결과를 보여줍니다.
즉, ALLSELECTED는 슬라이서에 의해 선택된 것으로 테이블을 만들게 됩니다.
아래 예제를 보면 [SUMX of Amount ALLSELECTED]는[Sum of Amount]의 합과 동일하다는 것을 알 수 있습니다. 또한 SHOP 테이블에 필터 컨텍스트가 남아있지 않기 때문에 [SUMX of Amopunt ALLSELECTED]은 Product 정보에 상관없이 동일한 값이 됩니다.
예제 1)
예제 2)
이처럼 외부 필터에서 선택한 것을 기준으로 비율을 구하려고 할 때는 ALL이 아니라 ALLSELCTED를 사용하게 됩니다.
ALLSELECTED - 열 이름. 동작 원리
ALLSELECTED 함수 레퍼런스 문서를 참고하면, 아래와 같이 정의되어 있습니다.
다른 모든 컨텍스트 필터 또는 명시적 필터를 유지하면서 현재 쿼리의 열 및 행에서 컨텍스트 필터를 제거합니다.
ALLSELECTED 함수는 행 및 열 필터 이외의 명시적 필터와 컨텍스트를 유지하면서 쿼리의 모든 행과 열을 나타내는 컨텍스트를 가져옵니다. 이 함수는 쿼리에서 시각적 합계를 가져오는 데 사용할 수 있습니다.
내용이 복잡하게 기술되어 있지만, 간략하게는 외부 필터 (슬라이서나 명시적 필터)는 유지한 채, 측정값 계산에서 시각적 개체의 컨텍스트 필터는 무시한다는 의미입니다.
ALLSELECTED - 테이블 이름과 열 이름 비교
ALLSELECTED 함수 파라미터 입력으로 열 이름을 사용하는 측정값을 아래처럼 정의합니다.
SUMX of Amount ALLSELECTED Product
SUMX of Amount ALLSELECTED Product =
SUMX ( ALLSELECTED ( SHOP[Product] ), [Sum of Amount] )
필터 컨텍스트 Product 경우
ALLSELECTED 입력 파라미터 열 이름과 필터 컨텍스트와 동일한 경우입니다.
필터가 제거되는 곳이 같기 때문에 ALLSELECTED에 테이블 이름을 사용하나 열 이름을 사용하나 차이가 없습니다.
SUMX of Amount ALL
- 모든 필터 및 필터 컨텍스트 제거
테이블 전체에서 필터 정보를 삭제했기 때문에, 모든 항목의 Amount 합 170이 됩니다.
SUMX of Amount ALL Product
- Product 관련 필터 및 필터 컨텍스트 제거
- Color 필터 영향은 변함없음
슬라이서 Color의 영향으로 Color = BLUE, GREEN에 해당하는 모든 항목의 Amount 합 110이 됩니다.
(Product A, B , C 모두 포함합니다)
SUMX of Amount ALLSELECTED
- Product, Color 관련 필터는 유지
- 모든 필터 컨텍스트 제거
모든 외부 필터의 영향을 유지하기 때문에, Color = BLUE, GREEN 뿐 아니라 Product = A, C에 해당하는 모든 항목의 Amount 합 50이 됩니다.
SUMX of Amount ALLSELECTED Product
- Product 관련 필터는 유지
- Product 관련 필터 컨텍스트 제거
- Color 관련 필터 영향 변함없음
Product 및 Color 관련 필터에 영향을 받기 때문에, Color = BLUE, GREEN 뿐 아니라 Product = A, C에 해당하는 모든 항목의 Amount 합 50이 됩니다.
필터 컨텍스트 Color 경우
ALLSELECTED 입력 파라미터 열 이름과 필터 컨텍스트와 다른 경우입니다.
SUMX of Amount ALL Product
- Product 관련 필터 및 필터 컨텍스트 제거
- Color 필터 및 필터 컨텍스트 영향은 변함없음
슬라이서 Color의 영향으로 Color = BLUE, GREEN에 해당하는 모든 항목에서 Color 별 Amount 합을 계산합니다.
SUMX of Amount ALLSELECTED
- Product, Color 관련 필터는 유지
- 모든 필터 컨텍스트 제거
모든 외부 필터의 영향을 유지하기 때문에, Color = BLUE, GREEN 뿐 아니라 Product = A, C에 해당하는 모든 항목의 Amount 합 50이 됩니다.
SUMX of Amount ALLSELECTED Product
- Product 관련 필터는 유지
- Color 관련 필터 및 필터 컨텍스트 영향 변함없음
Product 외부 필터의 영향을 유지하기 때문에, Color = BLUE, GREEN 뿐 아니라 Product = A, C에 해당하는 모든 항목에서 Color 별로 합을 계산합니다.
ALLSELECTED - 열 이름. 활용
필터 컨텍스트 제거한 후 비율 계산
ALLSELECTED 함수 파라미터에 테이블 이름이 아니라 열 이름을 쓰는 가장 큰 이유는 필터 컨텍스트를 제거할 열을 선택할 수 있다는 점입니다.
아래와 같이 측정값을 정의하고 그 차이를 설명할게요.
ALL Product Ratio =
DIVIDE ( [Sum of Amount], [SUMX of Amount ALL Product] )
ALLSELECTED Product Ratio =
DIVIDE ( [Sum of Amount], [SUMX of Amount ALLSELECTED Product] )
ALL Product Ratio =
DIVIDE ( [Sum of Amount], [SUMX of Amount ALL Product] )
ALL Product Ratio
(1) 15 / 75 = 20.0%
GREEN을 갖는 모든 Product에서 Product = A가 차지하는 비율
ALLSELECTED Product Ratio
(2) 15 / 35 = 42.9%
GREEN을 갖는 Product A와 C에서 Product = A가 차지하는 비율
ALLSELECTED Ratio
(2) 15 / 50 = 30.0%
외부 필터에 의해 결정된 모든 항목에서 Product = A과 Color = GREEN을 동시에 만족하는 비율
마치며
ALLSELECTED 함수에 테이블 이름과 열 이름이 쓰였을 때의 차이를 설명했는데요, 실제 적용하려면 많이 헷갈립니다.
ALL, ALLSELECTED 함수는 필터 정보가 제거된 테이블을 반환하기 때문에, 다른 함수의 입력으로 자주 사용됩니다.
그래서 기본적인 개념을 정확히 이해하는 것이 중요한데요, 직접 산수를 해 가면서 연습하면 도움이 되는 것 같습니다.
'Power BI' 카테고리의 다른 글
Power BI DAX 기초 - FILTER 함수 행 컨텍스트 이해 (0) | 2024.07.13 |
---|---|
Power BI DAX 기초 - CALCULATE 필터 식 활용 방법 (0) | 2024.07.10 |
Power BI DAX 기초 - ALL 열 기준 비율 구하는 방법 (1) | 2024.07.08 |
Power BI DAX 기초 - ALLSELECTED 선택 기준 비율 구하는 방법 (1) | 2024.07.01 |
Power BI DAX 기초 - ALL 전체에서 비율 구하는 방법 (0) | 2024.07.01 |