반응형
테이블 간의 관계를 물리적으로 연결하기도 하고 가상으로 연결하여 측정 식이나 계산 열에 활용합니다. 이러한 기능을 수행하기 위해서 Power BI DAX의 RELATED, USERELATIONSHIP, CROSSFILTER, TREATAS 함수가 사용됩니다.
물리적 관계 vs 가상 관계
- 물리적 관계는 데이터 모델에서 링크를 연결하는 것을 의미합니다. 일반적으로 1:*의 관계가 설정됩니다. 상황에 따라서 활성화 또는 비활성화 상태가 될 수 있습니다.
- 가상 관계는 RELATED, USERELATIONSHIP등의 DAX 식에 의하여 정의된 임시적인 관계를 의미합니다.
RELATED
데이터모델의 다른 테이블에서 관련 값을 가져옵니다.
= RELATED(열이름)
- 이 함수를 사용하기 위해서는 테이블 간에 관계가 있어야 합니다.
- '일 대 다'의 관계에서 '일'에 해당하는 테이블의 열을 지정합니다. (예. 'Product Lookup'[current_cost] 또는 'Customer Lookup'[home_store])
- RELATED 함수는 계산 등의 작업을 직접적으로 수행하지는 않고 연결된 테이블의 열에 접근할 수 있는 역할을 합니다.
RELATEDTABLE
지정된 필터로 수정된 컨텍스트에서 테이블 식을 평가하여 해당되는 행들만 포함된 테이블을 반환합니다.
=RELATEDTABLE(테이블이름)
- '일 대 다'의 관계에서 '다'에 해당하는 테이블을 지정합니다.
- 예 : COUNTROWS(RELATEDTABLE('Food Inventory'))
- 예 : SUMX(RELATEDTABLE('Food Inveentory'), [Quantity Sold] * [Retail Price])
- 필터 조건을 충족하는 행만 반환하기 위해 행 컨텍스트에서 필터 컨텍스트로 컨텍스트 전환을 수행합니다.
USERELATIONSHIP
DAX 식 평가에 사용할 기존 관계를 지정합니다. DAX 식에서는 끝점 역할을 하는 열을 인수로 지정합니다.
=USERELATIONSHIP(열이름1, 열이름2)
- 필터 매개 변수를 받아들이는 함수에서만 사용할 수 있습니다. (예. CALCULATE, TOTALYTD)
- 단일 달력 표에 연결된 날짜 열이 여러 개 있는 경우 USEREATIONHIP을 사용하면 모형에서 수동으로 활성화하지 않고도 비활성 관계를 강제로 사용할 수 있습니다.
CROSSFILTER
CROSSFILTER는 DAX 표현의 지속 시간 동안 사용되는 교차 필터링 방향을 지정합니다. 관계는 엔드포인트 역할을 하는 두 열의 이름을 지정하여 정의됩니다.
=CROSSFILTER(왼쪽 열이름, 오른쪽 열이름, 크로스필터 타입)
- 크로스 필터 타입 : oneway, Both, None
- 양방향 관계 대신 CROSSFILTER를 사용하여 특정 경우에만 양방향 필터링을 활성화합니다.
TREATAS
TREATAS는 테이블 식 결과를 관련 없는 테이블의 필터 열에 적용합니다.
=TREATAS(테이블 식, 열이름, 열이름1, ...)
- 테이블 식 : 매핑할 열 집합을 생성하는 테이블 표현식입니다. 테이블 표현식은 데이터 모델의 물리적 테이블을 기반으로 해야 합니다. 예. TREATAS(VALUES('Calendar'[Year_ID)...)
- 열 이름 : 열 표현식이 아닌 출력 열 목록이 옵니다. 예. 'Target Sales'[Year], 'Target Sales'[Month] 지정된 열 수는 테이블 식에 있는 열 수와 일치해야 하며 같은 순서여야 합니다.
- 가능하면 항상 물리적 관계 또는 USERELATIONSHIP을 사용하고 테이블 간에 직접 관계를 만들 수 없는 경우에만 TREATAS를 사용하는 게 좋습니다.
Power BI DAX 기초 - ALL, ALLEXCEPT, ALLSELECTED
Power BI DAX 기초 - Time Intelligence
반응형
'데이터 분석 및 업무 자동화' 카테고리의 다른 글
Power BI DAX Pattern - 누적합계 구하는 방법 (Cumulative total) (0) | 2022.04.01 |
---|---|
Power BI에서 코로나 확진자 7일 이동평균 구하는 두가지 방법 (DATESINPERIOD, VAR) (0) | 2022.04.01 |
Power BI DAX 기초 - Time Intelligence (0) | 2022.03.29 |
Power BI DAX 기초 - ALL, ALLEXCEPT, ALLSELECTED (0) | 2022.03.28 |
Power BI DAX VALUES 함수 정리 (0) | 2022.03.24 |
댓글