매출 보고서를 작성할 때 기간별로 누적매출금액을 집계하는 경우가 많아요.
여기서는 DAX의 시간 인텔리전스 함수를 활용하여 기간 누적 합계를 작성해 보도록 하죠.
시간 인텔리전스에서 자주 사용하는 DATESYTD와 TOTALYTD를 사용할 것입니다.
DATESYTD : 해당하는 연도의 첫번째 날짜(1월1일)부터 마지막 날짜(12월 31일) 사이의 모든 날짜를 테이블형태로 반환합니다. 즉 하나의 값으로 나오는 것이 아니라 여러 값을 가지고 있는 배열이라고 볼 수 있습니다.
마지막 날짜는 선택사항으로 지정하지 않을 경우 작성하지 않아도 되고, 마지막 날짜가 없으면 해당 연도의 마지막 날짜로 집계합니다.
* 참고: 파란색 표기는 여러분의 테이블명과 열명, 측정값이름을 사용합니다.
DATESYTD( <dates> , <year_end_date> )
DATESYTD( 날짜테이블의 날짜열, 마지막날짜 )
TOTALYTD : 연도에 해당하는 값을 계산할 수 있습니다.
필터정의와 마지막 날짜는 선택사항입니다.
TOTALYTD( <expression>, <dates> [,<filter>] [,<year_end_date>] )
TOTALYTD( 집계수식 또는 측정값, 날짜열, 필터정의, 마지막 날짜)
먼저 단순한 매출금액의 합계 측정값은 이렇게 작성할 수 있습니다.
매출액 = SUM( 'Sales'[SalesAmount] )
DATESYTD를 사용한 연간누적매출액 측정값은 아래와 같이 작성하면 됩니다.
연간누적매출액 (기본) =
CALCULATE(
[매출액],
DATESYTD('Calendar'[Date])
)
연간누적매출액 =
TOTALYTD(
[매출액],
'Calendar'[Date]
)
이 경우에 한가지 단점은 미래의 날짜에도 마지막 연도의 누적매출액이 모두 표시된다는 점입니다.
이를 피하고 싶다면 IF함수를 추가해서 표시되지 않도록 할 수 있습니다.
먼저, 매출이 있는 과거의 날짜는 True로 반환하고 매출이 없는 미래의 날짜는 False로 반환하는 측정값을 만들어 둡니다.
DATEVALUE_YN =
VAR LastDate =
CALCULATE(
MAX('Sales'[OrderDate]),
REMOVEFILTERS()
)
VAR FirstDate =
MIN('Calendar'[Date])
VAR YN =
FirstDate <= LastDate
RETURN
YN
그리고 매출이 있는 과거의 날짜에만 값이 표시되도록 IF함수를 추가합니다.
연간누적매출액 (2) =
IF(
[DATEVALUE_YN],
TOTALYTD(
[매출액],
'Calendar'[Date]
)
)
DAX의 모든 시간 인텔리전스 함수는 아래 Power BI 공식 문서 사이트에서 확인해 보실 수 있습니다.
https://learn.microsoft.com/ko-kr/dax/time-intelligence-functions-dax
'Power BI > Power BI 정복하기' 카테고리의 다른 글
DAX함수 이동연간매출 측정값 (2) | 2023.12.15 |
---|---|
DAX함수 전년대비실적 측정값 만들기 (0) | 2023.12.14 |
쿼리편집 - 시간 계산 (0) | 2019.08.23 |
DAX함수 연도값 계산하기 (2) | 2019.08.01 |
[Tip] Power BI에서 Dynamics 365 옵션셋 라벨표기하는 방법 (0) | 2019.04.05 |