본문 바로가기
POWER BI

[Power BI/파워비아이] DAX를 이용해 날짜 테이블 만들기

by 하니in독일 2024. 9. 12.
반응형

 

 

보고서를 만들 때 사람들이 가장 보고 싶어 하는 시각화의 형태를 꼽으라면 "트렌드 차트 (Trend Chart)"라고 할 수 있습니다. 트렌드 차트는 시간의 흐름에 따라 데이터의 변화를 시각적으로 보여 줄 수 있어, 데이터의 증가, 감소 또는 일정한 패턴들을 쉽게 파악하고 분석할 수 있습니다. 이를 위해 가장 먼저 중요한 것은 날짜 테이블을 만들고, 날짜 관련한 계산식을 만들 수 있어야 한다는 것입니다. 

 

그래서, 오늘은 POWER BI를 사용해 어떻게 날짜 테이블을 만들고, 날짜 테이블을 활용할 수 있는지에 대해 배워보고자 합니다. 

 


TIP 1. 날짜 테이블 만들기

날짜 및 시간 순서가 있는 여러 테이블을 연결하고자 할 때 가장 효율적인 방법은 "마스터 날짜 테이블"을 생성해 사용하는 것입니다. 즉, 마스터 날짜 테이블과 다른 테이블 간의 관계를 연결시켜 쉽게 원하는 날짜를 한 행을 이용해 필터링 및 분석을 할 수 있게 한다는 것이지요.

 

날짜 테이블은 DAX를 이용해 쉽게 생성할 수 있습니다.

  1. 메뉴에서 "Modeling" 탭을 클릭하고, "New Table"을 선택합니다.
  2. 다음과 같은 식을 이용해 테이블을 생성합니다.
    Calendar = CALENDAR(DATE(2020,01,01),DATE(2030,12,31)
    *위의 Date function은 원하는 기간을 설정하면 됩니다 (Year, Month, Date)

이제 가장 기본적인 날짜 테이블이 매우 쉽게 완성되었습니다! 


TIP 2. 날짜 관련 유용한 계산식

이제 기본적인 날짜 테이블이 만들어졌다면, 다양한 행을 추가하거나 날짜를 이용해 다양한 계산을 할 수 있습니다.

 

1. 연도, 분기, 월, 일 추출 계산

DAX를 사용해서 만들어진 날짜 테이블을 이용해 쉽게 다음의 내용을 추출해 낼 수 있습니다. 

  • Year = year([Date]) 
  • Month = Month([Date])
  • Day = Day([Date]) 
  • Quarter = QUARTER([Date]) 

2. 회계 연도 계산

각 회사별로 회계 연도가 다른 만큼, 원하는 회계 연도를 날짜 테이블에 추가할 수 있습니다. 

  • FiscalYear = If(Month([Date])>=(원하는 달), year([Date])+1, Year([Date])) 

POWER BI에서 IF 구문을 이용하면, 조건식을 쉽게 만들 수 있습니다. 기본적인 문법은 다음과 같습니다.

IF(<조건>, <조건이 참일 경우에 반환할 값>, <조건이 거짓인 경우 반환할 값>)

그러므로 위의 식을 고려해 생각해 보자면 (회계 연도가 11월에 시작할 때),

  • FiscalYear = If(Month([Date])>=11, year([Date])+1, Year([Date])) 

만약 추출한 월의 날짜가 11월보다 크거나 같다면 (11월 혹은 12월), 현재 날짜보다 1년을 더 한 연도를, 11월보다 작다면 현재 날짜의 연도 값을 반환하는 것입니다. 

 

Reference: https://learn.microsoft.com/ko-kr/dax/if-function-dax

 

IF 함수(DAX) - DAX

자세한 정보: IF

learn.microsoft.com

 


3. 특정 월의 첫 번째 및 마지막 날 

첫 번째 날 

FirstDayofMonth = Date(year([Date]), month([Date]),1)

마지막 날

LastDayofMonth = EOMONTH([Date],0)

반응형

TIP 3. 마스터 날짜 테이블을 풍부하게!

앞서 보았던 모든 식을 추가해, 마스터 날짜 테이블을 만들 수 있습니다. 기존 테이블에 행을 추가하려고 하면, addcolumns 기능을 이용하면 쉽게 추가할 수 있습니다. 

Calendar = ADDCOLUMNS(
    CALENDAR(DATE(2020,01,01),DATE(2024,12,31)),
    "Year", YEAR([Date]),
    "Quarter", QUARTER([Date]),
    "Month",Month([Date]),
    "Day", Day([Date]),
    "Fiscal Year", If(Month([Date])>=11, year([Date])+1, Year([Date])),
    "FirstdayofMonth", Date(year([Date]),month([Date]),1),
    "LastDayofMonth",EOMONTH([Date],0))

Addcolumns: POWER BI에서 테이블에 새로운 열을 추가하는 데 사용되는 함수입니다. 형식은 다음과 같습니다.

Table = Addcolumns ( <Table>,
<Name>, <expressions>,
.....)

Reference: https://learn.microsoft.com/ko-kr/dax/addcolumns-function-dax

 

ADDCOLUMNS 함수(DAX) - DAX

자세한 정보: ADDCOLUMNS

learn.microsoft.com

 

 


 

오늘은 날짜 테이블을 직접 만들어 보고, 다양한 DAX 계산식을 이용해 필요한 날짜 행을 추가하는 방법에 대해 알아보았습니다. 아래에 POWER BI를 이용한 예시 파일을 첨부해 두었으니, 혹시 설명이 이해가 되지 않거나, 어려운 부분이 있으면 활용하셔도 좋겠습니다. 

 

PowerBI_Date_Table.pbix
0.04MB

 

 

 

 

다음 시간에는 함께 날짜 테이블을 이용해 트렌드 차트를 만들어보는 시간을 갖도록 하겠습니다! 

 

 

반응형