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월의 값은 반영되지 않습니다.
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에서 코로나 확진자 7일 이동평균 구하는 두가지 방법 (DATESINPERIOD, VAR) (0) | 2022.04.01 |
---|---|
Power BI DAX 기초 - RELATED, USERELATIONSHIP, CROSSFILTER, TREATAS (0) | 2022.03.30 |
Power BI DAX 기초 - ALL, ALLEXCEPT, ALLSELECTED (0) | 2022.03.28 |
Power BI DAX VALUES 함수 정리 (0) | 2022.03.24 |
Power BI 필터 컨텍스트와 행 컨텍스트 살펴보기 (0) | 2022.03.22 |
댓글