필터 기능은 테이블의 특정 조건에 만족하는 행들만 걸러내는 역할을 합니다. 반면에 ALL, ALLEXCEPT, ALLSELECTED는 필터 기능을 무시하여 테이블의 행들을 반환합니다. 세 가지 DAX함수는 어떤 차이가 있는지 정리해보겠습니다.
ALL
필터를 무시하고 테이블의 모든행 또는 열의 모든 값을 반환하는 함수입니다.
ALL( <테이블이름> or <열이름>, <열이름1>,... )
- 테이블 필터이자 CALCULATE modifier입니다.
- 초기 필터 컨텍스트를 제거합니다.
- 테이블식은 입력 매개변수로 올 수 없습니다. 즉, 물리적인 테이블만 매개변수로 입력받습니다.
- 열식도 입력 매개변수로 올 수 없습니다. 즉, 기본 열을 입력으로 받습니다.
- ALL(테이블)은 전체 값 대비 집계 값의 비율을 계산하는 측정값을 만들 때 주로 사용됩니다.
- ALL(열 이름)은 특정 열에서 필터 컨텍스트를 유지하고 다른 모든 컨텍스트 필터를 유지하고자 할 때 사용됩니다.
ALLEXCEPT
테이블에서 지정된 열을 제외한 다른 모든 열들의 필터를 무시하고 테이블을 반환하는 함수입니다.
ALLEXCEPT( <테이블이름> or <열이름>, <열이름1>,... )
- 테이블식은 입력 매개변수로 받을 수 없습니다. 존재하는 물리적 테이블만 입력받을 수 있습니다.
- 열 이름은 테이블 내에서 지정이 됩니다. 필터를 유지하고자 하는 열 이름을 입력합니다. 1:M의 관계에서 1에 해당하는 테이블의 열도 지정할 수 있습니다.
- 테이블을 반환하기 위해서 사용되지 않고 CALCULATE의 modifier를 위해 주로 사용됩니다.
예제
1. CALCULATE의 modifier로써 ALLEXCEPT 함수가 사용되었습니다. 'Calendar'[Transcation_Date]와 'Store Lookup'[sales_outlet_id]열은 필터가 유지되고 'Sales by Store'의 다른 모든 열은 필터가 제거됩니다.
2. 위 측정값 DAX 식은 store ID와 Date에 대해서는 필터가 유지되고 다른 요소에 대해서는 필터가 제거됩니다. store ID는 필터가 적용되어 다른 값이 나왔고 같은 store ID내의 카테고리별로는 모두 같은 값을 가지고 있는 것을 확인할 수 있습니다.
ALLSELECTED
테이블에서 지정된 열만 필터를 제거하고 다른 모든 열들은 필터를 유지한 테이블이 반환됩니다.
ALLSELECTED( <테이블이름> or <열이름>, <열이름1>,... )
- 필터를 제거의 대상이 되는 테이블 이름을 지정합니다.
- 필터를 제거하고자 하는 열 이름을 지정합니다. 여러 개의 열을 지정할 수 있습니다.
- 시각화 개체에서 보이는 열의 필터를 제거하기 때문에 시각화 내에서 보이는 값 합계 등을 구할 때 쓰입니다.
예제
1. customer sales 측정값이 선택된 필터 조건의 모든 값으로 변경되는 DAX 식입니다. CALCULATE의 modifier로 ALLSELECTED가 적용된 것을 볼 수 있습니다.
2. 슬라이서의 Beverages, Food, Merchandise를 선택합니다.
3. 선택된 값을 기준으로 모든 customer sales값이 결과로 반환된 것을 확인할 수 있습니다. 선택된 값의 합계를 구하여 선택된 값에 대한 sales 비율을 구할 수 있습니다.
파워비아이 DAX 함수, TABLE과 FILTER를 알아보자
'데이터 분석 및 업무 자동화' 카테고리의 다른 글
Power BI DAX 기초 - RELATED, USERELATIONSHIP, CROSSFILTER, TREATAS (0) | 2022.03.30 |
---|---|
Power BI DAX 기초 - Time Intelligence (0) | 2022.03.29 |
Power BI DAX VALUES 함수 정리 (0) | 2022.03.24 |
Power BI 필터 컨텍스트와 행 컨텍스트 살펴보기 (0) | 2022.03.22 |
KB 부동산 월간 시계열 매매종합 시트 파이썬 판다스 불러오기 (0) | 2022.03.21 |
댓글