본문 바로가기
데이터 분석 및 업무 자동화

Power BI DAX 기초 - Time Intelligence

by 공부머리 2022. 3. 29.
반응형

Power BI DAX 중 Time intelligence에 대해서 정리해보려고 합니다. 타임 인텔리전스는 기간을 커스터마이징하여 비교하거나 계산이 가능하게 합니다. 이것을 이용하여 현재까지 실적 계산, 기간 shift, running total 등을 쉽게 계산할 수 있습니다.

 

Performance to Date

현재까지의 성능을 계산하는데 일반적으로 사용되는 함수입니다. DATESYTD, DATESQTD, DATESMTD 등이 해당됩니다.

YTD란 Year To Date의 약자로서 연초부터 기준시점까지의 누적 값인 연초 누계를 의미합니다. DATESQTD, DATESMTD는 연 대신에 분기, 월을 대입하여 이해하면 되겠죠?

 

Performance To Date 기능은 일반적으로 아래와 같이 CALCULATE와 조합된 구문으로 사용됩니다. CALCULATE 함수의 modifier로 적용하면 되겠습니다.

 

Performance To Date(YTD) =
CALCULATE ( Measure, DATESYTD ( Calendar[Date] ) )

Performance To Date(QTD) =
CALCULATE ( Measure, DATESQTD ( Calendar[Date] ) )

Performance To Date(MTD) =
CALCULATE ( Measure, DATESMTD ( Calendar[Date] ) )

 

Time Period Shift

특정 기간 간의 성능을 비교하는 데 일반적으로 사용되는 기능입니다.

 

DATEADD

DATEADD 함수를 이용하면 현재 날짜에서 지정된 간격 수 만큼 앞으로 또는 뒤로 이동하는 날짜 열이 포함된 테이블을 얻을 수 있습니다. 보통 CALCULATE와의 조합으로 아래와 같은 구문으로 사용됩니다. -1 대신에 원하는 기간을 지정하고, MONTH대신에 DAY, QUARTER, YEAR 등으로 대체할 수 있습니다.

Previous Period =
CALCULATE ( Measure, DATEADD ( Calendar[Date], -1, MONTH ) )

 

PARALLELPERIOD

지정된 간격을 기준으로 지정된 날짜를 앞뒤로 이동하여 병렬 기간에서 날짜 열을 반환합니다.

PARALLELPERIOD = PARALLELPERIOD(Date, NumberOfIntervals, Interval)
  • Date의 자리에는 날짜를 포함하는 열 또는 날짜를 포함하는 하나의 열 테이블 이름이 옵니다. (예. Calendar [Transaction_Date) )
  • NumberOfIntervals 자리에는 간격의 수를 의미하는 양수 또는 음수 값이 입력됩니다. (예. 1, 2, 3, -1, -2, -3)
  • Interval의 자리에는 간격의 단위가 옵니다. (예. Month, Quarter, Year)
  • 간격의 전체 기간을 계산합니다. 이부분이 DATEADD와 다릅니다. 예를 들어 동일한 연도의 7월 5일부터 7월 11일까지의 날짜를 선택한 다음, 1달 이후로 이동하려는 경우 PARALLELPERIOD 함수는 다음 달의 모든 날짜인 8월 1일 ~ 8월 31일을 반환하지만 DATEADD는 8월 5일부터 8월 11일까지의 날짜만 반환합니다. 
  • 부분 주기가 있는 경우 총 행의 값이 예상 총계를 반영하지 않을 수 있습니다.

 

아래 그림으로 예를 들어서 추가 설명하겠습니다.

1. 1분기 전 값을 반환하는 측정값을 만들었습니다.

2. 전 분기의 값이 반환되는 것을 확인 할 수 있습니다.

3. 2018년 4분기와 2019년 Q1의 합이 결과로 나옵니다.

4. 2019년 4월의 값은 반영되지 않습니다.

PARALLELPERIOD
PARALLELPERIOD 예제

 

PREVIOUSYEAR

dates열의 첫 번째 날짜를 기준으로 이전 분기의 모든 날짜 열이 포함된 테이블을 반환합니다.  예를 들어 첫 번째 날짜가 2017년 5월 9일이라면 2017년의 1월부터 3월까지의 모든 날짜 열이 포함된 테이블을 반환합니다.

PREVIOUSQUARTER ( dates )

 

SAMEPERIODLASTYEAR

SAMEPERIODLASTYEAR는 DATEADD와 YEAR의 DAX 식과 동일한 결과가 반환됩니다.

SAMEPERIODLASTYEAR ( dates )

 

Running Total

실행 총계 또는 이동 평균을 계산하는 데 일반적으로 사용되는 함수입니다.

 

DATESINPERIOD

Running total은 DATESINPERIOD를 사용하여 구하며, 이동평균은 이 값을 간격의 개수로 나눠주면 구할 수 있습니다.

Running Total =
CALCULATE (
    Measure,
    DATESINPERIOD ( Calendar[Date], MAX ( Calendar[Date] ), -10, DAY )
)

 

Power BI 시간 인텔리전스 사용을 위한 날짜 테이블 만들기 (CALENDAR, CALENDARAUTO)

 

Power BI 시간 인텔리전스 사용을 위한 날짜 테이블 만들기 (CALENDAR, CALENDARAUTO)

시간 인텔리전스는 Power BI DAX에서 매우 중요하고 강력한 기능입니다. 시간 인텔리전스 중에서 가장 기본이면서 출발점이 되는 CALENDAR와 CALENDARAUTO를 사용한 날짜 테이블 만들기에 대해서 살펴보

shareluck.tistory.com

 

반응형

댓글