티스토리 뷰

날짜 관련 DAX 함수를 정복해봅시다. 날짜 함수는 아주 기본 함수는 아니지만, 중간중간 양념처럼 들어갈 수 있는 DAX 함수이기 때문에 눈이 익혀두시고, 반복연습으로 손에 익히시면 좋겠습니다.

 

[답안 파워BI 파일]

답안_datastorydavi_date_year_month_calendar_dateadd_totalytd_class.pbix
0.84MB

 

[정답 파워BI 파일]

정답_datastorydavi_date_year_month_calendar_dateadd_totalytd.pbix
0.86MB


  • <_측정값> 테이블에 '새 측정값' 기능을 이용하여 아래 문제를 풀어보세요.
  • 정답은 마우스로 텍스트 선택(긁기)하시면 보실 수 있습니다.
  • 파워BI(PowerBI)  파일은 아래에 첨부하였습니다.
  • 답안 파일로 시작하시고, 정답 파일로 답을 확인해보세요.
  • 유튜브 동영상을 통해 풀이를 함께 해보세요.

https://youtu.be/C2EuaTLT7VQ

 

[DATE, YEAR, MONTH 함수 5문제]

01. [중급] 2021년의 매출 금액을 계산하는 측정값을 만드세요.

[측정값 이름] 01특정연도매출
[활용 필드]
<판매> 테이블의 [매출금액], [판매일]
[사용 함수] CALCULATE, SUM, YEAR
정답:
01특정연도매출 = CALCULATE(SUM('판매'[매출금액]), YEAR('판매'[판매일]) = 2021)
해설:
YEAR 함수는 매출이 발생한 연도를 추출하고, CALCULATE는 특정 연도에 해당하는 매출 금액을 계산합니다.


02. [중급] 특정 날짜 이후 발생한 총 매출 금액을 계산하는 측정값을 만드세요. (기준일: 2022년 1월 1일)

[측정값 이름] 02특정날짜이후매출
[활용 필드]
<판매> 테이블의 [매출금액], [판매일]
[사용 함수] CALCULATE, SUM, FILTER, DATE
정답:
02특정날짜이후매출 = CALCULATE(SUM('판매'[매출금액]), FILTER('판매', '판매'[판매일] >= DATE(2022, 1, 1)))
해설:
DATE 함수는 2022년 1월 1일의 날짜를 생성하고, FILTER 함수로 그 날짜 이후의 데이터를 필터링한 다음, CALCULATE 함수로 해당 기간의 매출을 계산합니다.


03. [중급] 2021년도 5월에 발생한 총 대여 건수를 계산하는 측정값을 만드세요.

[측정값 이름] 03특정연도특정월대여건수
[활용 필드]
<자전거_대여이력> 테이블의 [대여건수], [대여일]
[사용 함수] CALCULATE, SUM, YEAR, MONTH
정답:
03특정연도특정월대여건수 = CALCULATE(SUM('자전거_대여이력'[대여건수]), YEAR('자전거_대여이력'[대여일]) = 2021, MONTH('자전거대여'[대여일]) = 5)
해설:
YEAR 함수와 MONTH 함수로 연도와 월을 필터링한 후, CALCULATE 함수로 해당 기간의 대여 건수를 합산합니다.


04. [중급] 2021년 4월에 발생한 고유한 대여소 수를 계산하는 측정값을 만드세요.

[측정값 이름] 04특정연도특정월고유대여소수
[활용 필드]
<자전거_대여이력> 테이블의 [대여일], <대여소현황> 테이블의 [대여소명]
[사용 함수] CALCULATE, DISTINCTCOUNT, YEAR, MONTH
정답:
04특정연도특정월고유대여소수 = CALCULATE(DISTINCTCOUNT('대여소현황'[대여소명]), YEAR('자전거_대여이력'[대여일]) = 2021, MONTH('자전거_대여이력'[대여일]) = 4)
해설:
YEARMONTH 함수로 특정 연도와 월을 필터링하고, DISTINCTCOUNT 함수로 해당 기간 동안의 고유 대여소 수를 계산합니다.


05. [중급] 특정 날짜 범위(2022년 1월 1일 ~ 2023년 12월 31일) 동안의 고유한 거래처 수를 계산하는 측정값을 만드세요.

[측정값 이름] 05특정범위거래처수
[활용 필드]
<판매> 테이블의 [거래처코드], [판매일]
[사용 함수] CALCULATE, DISTINCTCOUNT, FILTER, DATE
정답:
05특정범위거래처수 = CALCULATE(DISTINCTCOUNT('판매'[거래처코드]), FILTER('판매', '판매'[판매일] >= DATE(2022, 1, 1) && '판매'[판매일] <= DATE(2023, 12, 31)))
해설:
DATE 함수는 시작일과 종료일을 각각 2022년 1월 1일과 2023년 12월 31일로 생성하고, FILTER 함수는 그 범위 내의 데이터를 필터링한 후, DISTINCTCOUNT로 고유한 거래처 수를 계산합니다.


[CALENDAR 함수 2문제]

06. [중급] 2022년 1월 1일부터 2023년 12월 31일까지의 날짜 테이블을 생성하세요.

[측정값 이름] 06날짜테이블2022_2023
[활용 필드]
없음
[사용 함수] CALENDAR
정답:
06날짜테이블2022_2023 = CALENDAR(DATE(2022, 1, 1), DATE(2023, 12, 31))
해설:
CALENDAR 함수는 시작일 2022년 1월 1일과 종료일 2023년 12월 31일을 기준으로 날짜 테이블을 생성합니다.


07. [중급] 특정 날짜 범위(2020년 3월 15일 ~ 2024년 7월 10일) 동안의 날짜 테이블을 생성하세요.

[측정값 이름] 07날짜테이블2020_2024
[활용 필드]
없음
[사용 함수] CALENDAR
정답:
07날짜테이블_20202024 = CALENDAR(DATE(2020, 3, 15), DATE(2024, 7, 10))
해설:
CALENDAR 함수는 시작일 2020년 3월 15일과 종료일 2024년 7월 10일을 기준으로 날짜 테이블을 생성합니다.


[DATEADD 함수 5문제]

08. [중급] 1년 전의 총 매출 금액을 계산하는 측정값을 만드세요.

[측정값 이름] 08일년전매출
[활용 필드]
<판매> 테이블의 [매출금액]
<날짜> 테이블의 [날짜]
[사용 함수] CALCULATE, DATEADD, SUM
정답:
08일년전매출 = CALCULATE(SUM('판매'[매출금액]), DATEADD('날짜'[날짜].[Date], -1, YEAR))
해설:
DATEADD 함수는 날짜를 1년 전으로 이동시키고, CALCULATE 함수는 필터링된 컨텍스트에서 총 매출 금액을 계산합니다.


09. [중급] 6개월 전 대비 총 대여 건수 증감을 계산하는 측정값을 만드세요.

[측정값 이름] 09육개월대비대여건수증감
[활용 필드]
<자전거_대여이력> 테이블의 [대여건수], [대여일]
[사용 함수] CALCULATE, DATEADD, SUM
정답:
09육개월대비대여건수증감 = SUM('자전거_대여이력'[대여건수]) - CALCULATE(SUM('자전거_대여이력'[대여건수]), DATEADD('자전거_대여이력'[대여일].[Date], -6, MONTH))
해설:
DATEADD 함수는 날짜를 6개월 전으로 이동시키고, CALCULATE 함수는 그 기간 동안의 총 대여 건수를 계산합니다.


10. [초급] 전월 대비 증가한 대여 건수를 계산하는 측정값을 만드세요.

[측정값 이름] 10전월대비대여건수증가
[활용 필드]
<자전거_대여이력> 테이블의 [대여건수][대여일]
[사용 함수] CALCULATE, DATEADD, SUM
정답:
10전월대비대여건수증가 = SUM('자전거_대여이력'[대여건수]) - CALCULATE(SUM('자전거_대여이력'[대여건수]), DATEADD('자전거_대여이력'[대여일].[Date], -1, MONTH))
해설:
현재 월의 대여 건수에서 전월의 대여 건수를 뺀 값으로, 전월 대비 대여 건수의 증가를 계산합니다.


11. [중급] 전년 대비 매출 성장률을 계산하는 측정값을 만드세요.

[측정값 이름] 11전년대비매출성장률
[활용 필드]
<판매> 테이블의 [매출금액]
<날짜> 테이블의 [날짜]
[사용 함수] CALCULATE, DATEADD, SUM, DIVIDE
정답:
11전년대비매출성장률 = DIVIDE(SUM('판매'[매출금액]) - CALCULATE(SUM('판매'[매출금액]), DATEADD('날짜'[날짜].[Date], -1, YEAR)), CALCULATE(SUM('판매'[매출금액]), DATEADD('날짜'[날짜].[Date], -1, YEAR)))
해설:
현재 매출에서 1년 전 매출을 빼고, 그 값을 1년 전 매출로 나누어 전년 대비 매출 성장률을 계산합니다. DIVIDE 함수는 안전하게 나눗셈을 처리하고, DATEADD는 날짜를 1년 전으로 이동시킵니다.


12. [중급] 지난 6개월 동안의 대여 건수 증가율을 계산하는 측정값을 만드세요.

[측정값 이름] 12지난육개월대비대여증가율
[활용 필드]
<자전거_대여이력> 테이블의 [대여건수], [대여일]
[사용 함수] CALCULATE, DATEADD, SUM, DIVIDE
정답:
12지난육개월대비대여증가율 = DIVIDE(SUM('자전거_대여이력'[대여건수]) - CALCULATE(SUM('자전거_대여이력'[대여건수]), DATEADD('자전거_대여이력'[대여일].[Date], -6, MONTH)), CALCULATE(SUM('자전거_대여이력'[대여건수]), DATEADD('자전거_대여이력'[대여일].[Date], -6, MONTH)))
해설:
현재 대여 건수에서 6개월 전 대여 건수를 빼고, 이를 6개월 전 대여 건수로 나누어 증가율을 계산합니다. DATEADD 함수는 날짜를 6개월 전으로 이동시킵니다.


[TOTALYTD 함수 5문제]

13. [초급] 현재 연도의 총 매출 금액을 계산하는 측정값을 만드세요.

[측정값 이름] 13올해매출
[활용 필드]
<판매> 테이블의 [매출금액]
<날짜> 테이블의 [날짜]
[사용 함수] TOTALYTD, SUM
정답:
13올해매출 = TOTALYTD(SUM('판매'[매출금액]), '날짜'[날짜].[Date])
해설:
TOTALYTD 함수는 주어진 날짜 필드를 기준으로 현재 연도에 해당하는 총 매출 금액을 계산합니다.


14. [초급] 현재 연도의 송파점의 매출 금액을 계산하는 측정값을 만드세요.

[측정값 이름] 14올해거래처별매출
[활용 필드]
<판매> 테이블의 [매출금액]

<거래처> 테이블의 [거래처명]
<날짜> 테이블의 [날짜]
[사용 함수] TOTALYTD, CALCULATE, SUM
정답:
14올해거래처별매출 = CALCULATE(TOTALYTD(SUM('판매'[매출금액]), '날짜'[날짜].[Date] ), '거래처'[거래처명] = "송파점")
해설:
CALCULATE 함수는 "송파점" 거래처의 매출만 필터링하고, TOTALYTD 함수는 그 매출을 현재 연도에 대해 계산합니다.


15. [초급] 현재 연도의 총 매출 금액에서 특정 제품(SJAFBL11015)의 기여도를 계산하는 측정값을 만드세요.

[측정값 이름] 15올해제품매출기여도
[활용 필드]
<판매> 테이블의 [매출금액], [제품코드]
<날짜> 테이블의 [날짜]
[사용 함수] TOTALYTD, CALCULATE, SUM, DIVIDE
정답:
15올해제품매출기여도 = DIVIDE(CALCULATE(TOTALYTD(SUM('판매'[매출금액]), '날짜'[날짜].[Date] ), '판매'[제품코드] = "SJAFBL11015"), TOTALYTD(SUM('판매'[매출금액]), '날짜'[날짜].[Date] ))
해설:
CALCULATE 함수로 특정 제품의 매출을 필터링하고, DIVIDE 함수는 그 매출을 총 매출과 나누어 기여도를 계산합니다.


16. [중급] 현재 연도 동안 송파점의 매출 금액을 계산하는 측정값을 만드세요.

[측정값 이름] 16올해특정거래처매출
[활용 필드]
<판매> 테이블의 [매출금액]

<거래처> 테이블의 [거래처명]
<날짜> 테이블의 [날짜]
[사용 함수] TOTALYTD, CALCULATE, FILTER, SUM
정답:
16올해특정거래처매출 = TOTALYTD(SUM('판매'[매출금액]), '날짜'[날짜].[Date] , FILTER('거래처', '거래처'[거래처명] = "송파점"))
해설:
FILTER 함수는 "송파점" 거처의 매출만 필터링하며, TOTALYTD는 그 필터된 매출을 현재 연도에 대해 계산합니다.


17. [중급] 회계 연도기준 매출 금액을 계산하는 측정값을 만드세요. (회계 연도 종료일: 3월 31일)

[측정값 이름] 17회계연도매출
[활용 필드]
<판매> 테이블의 [매출금액]
<날짜> 테이블의 [날짜]
[사용 함수] TOTALYTD, SUM
정답:
17회계연도매출 = TOTALYTD(SUM('판매'[매출금액]), '날짜'[날짜].[Date] , "3/31")
해설:
TOTALYTD 함수의 year_end_date 인자를 "03/31"로 설정하여, 회계 연도의 종료일을 3월 31일로 지정하고 그 기준으로 매출 금액을 계산합니다.