본문 바로가기

POWER BI

[파워 BI] 관계함수(RELATED, RELATEDTABLE, USERELATIONSHIP, CROSSFILTER, TREATAS)

관계관련 함수

 

관계는 Physical 과 Virtual 두가지 타입으로 나뉜다.

 

<Physical>

데이터 모델에서 실제로 볼 수 있으며 실선 또는 점선으로 표시된다.

활성 및 비활성 관계 모두 DAX 함수(RELATED, RELATEDTABLE, USERELATIONSHIOP)를 통해 액세스 가능

 

<Virtual>

Dax 함수(TREATAS) 사용하여 생성가능하다. 

Physical relationship 없거나 직접적으로 생성할 수 없을 때 사용한다.

 

RELATED

 

  • RELATED(컬럼이름)
  • 관계가 설정되어 있는 테이블의 값을 가져올 수 있음
  • 관계에서 "다"의 테이블에서 "일"의 열에 있는 값을 가져 옴

 

RELATEDTABLE
  • RELATEDTABLE(테이블이름)
  • 관계에서 "일"의 테이블에서 "다"의 열에 있는 값을 가져 옴
USERELATIONSHIP

 

  • 비활성관계의 값을 필터링 하는 함수, 비활성관계를 일시적으로 활성화
  • USERELATIONSHIP(컬럼1, 컬럼2), 컬럼1, 2의 순서는 상관 없음
  • 필터를 인수로 사용하는 함수에서만 사용이 가능하다(CALCULATE, CALCULATETABLE, CLOSINGBALANCEMONTH, CLOSINGBALANCEQUARTER, CLOSINGBALANCEYEAR, OPENINGBALANCEMONTH, OPENINGBALANCEQUARTER, OPENINGBALANCEYEAR, TOTALMTD, TOTALQTD, TOTALYTD 등)
  • EX= CALCULATE(SUM(InternetSales[SalesAmount]), USERELATIONSHIP(InternetSales[ShippingDate], DateTime[Date]))
CROSSFILTER
  • 교차필터링 방향을 지정하는 함수
  • CROSSFILTER(컬럼1, 컬럼2, 방향)
  • 방향은 None, Both, OneWay_LeftFiltersRight, OneWay_RightFiltersLeft 설정 가능

 

TREATAS
  • 관계가 없는 테이블과 가상관계를 만들어 주는 함수
  • TREATAS(식, 컬럼이름, ...)

 

<변수를 선언하여 만들어준 테이블에 관계 설정하기>

존재하는 유일한 상점 아이디만 나타남 

<TRETAS 사용 가능 예제>

<합집합한 테이블을 TRETAS로 관계설정하기>

위의 DAX 식을 아래 SUMMARIZE를 활용하면 더욱 읽기 쉽운 형식으로 변경 가능 함

DIVIDE 함수 사용하여 목표에 대한 백분율 생성하기

Union demo 테이블을 Store lD 가 있는 테이블과 연결시키면 Store ID 별로 테이블을 시각화 가능