brunch

You can make anything
by writing

C.S.Lewis

by Cheon Aug 15. 2017

[DATE 함수] DATEDIFF

태블로의 날짜 함수 중 “DATEDIFF” 함수에 대해서 알아보자.




1. DATEDIFF 함수는 무엇인가?




DATEDIFF 함수는 두 날짜 사이의 차이를 반환하는 함수이다.



DATEDIFF(날짜_부분, 시작_날짜, 끝_날짜, [주_시작])



날짜_부분: 어떤 날짜의 부분을 말한다. 예를 들어, ‘year’, ‘month’ 등을 말한다.


시작_날짜: 시작하는 날짜를 말한다.


끝_날짜: 끝나는 날짜를 말한다.


[주_시작]: 한 주의 시작요일을 말한다.



끝_날짜에서 시작_날짜를 뺀다. 두 날짜의 차이는 날짜_부분의 날짜 단위로 표현된다.


만약, [주_시작]을 생략하면, 주 시작일이 데이터 원본에 대해 구성된 시작일에 의해 결정된다.




예를 들어보자.


Q1. 주문 후, 선적까지 몇 일 걸렸는지 알고 싶다면?



DATEDIFF('day', [Order Date], [Ship Date])



여기서 날짜_부분은 ‘day’, 시작_날짜는 [Order Date], 끝_날짜는 [Ship Date]가 된다.






Q2. 월요일이 시작 주 일때, 2017년 8월 10일에서 2017년 8월 15일 사이는 몇 주 차이가 나는가?



DATEDIFF('week', #10-08-2017#, #15-08-2017#, 'monday’)






Q3. 일요일이 시작 주 일때, 2017년 8월 13일에서 2017년 8월 15일 사이는 몇 주 차이가 나는가?



DATEDIFF('week', #13-08-2017#, #15-08-2017#, ‘sunday’)




달력을 보면, 2017년 8월 10일, 13일, 15일은 각각 목요일, 일요일, 화요일이다.


첫번째 계산된 필드는 10일과 15일 사이, 즉 목요일과 그 다음주 화요일 사이의 ‘주’ 차이를 구하는데, 주 시작일이 월요일이기 때문에 값이 ‘1’이 나온다. 첫째주 월~일요일 사이에 10일(목요일)이 있고, 둘째주 월~일요일 사이에 15일(화요일)이 있기 때문이다.



두번째 계산된 필드는 13일과 15일 사이, 즉 일요일과 화요일 사이의 ‘주’ 차이를 구하는데, 주 시작일이 일요일이기 때문에 값이 ‘0’이 나온다. 첫째주 일~월요일 사이에 13일(일요일)과 15일(화요일)이 같은 주에 있기 때문이다.





참고로, DATEDIFF 함수에서 “날짜_부분”은 태블로에서 사용하는 “날짜_부분” 중에서 사용할 수 있다.

(아래 “date_part”가 “날짜_부분”이다.)








2. DATEDIFF 함수는 언제 사용할 수 있을까?




Superstore 데이터를 사용하여,


각 제품의 모든 주문에 대하여, 주문 후, 선적까지 걸린 일수를 알아보자.



STEP1. 계산된 필드에서 다음과 같이 수식을 작성하자.



위 수식의 뜻은 주문일과 선적일 사이의 날짜의 차이를 ‘일’로 계산하는 것이다.





STEP2. [Product Name]과 [Order Date]를 행으로 드래그하자.






STEP3. [연도(Order Date)]를 클릭하고, [기타] - [사용자 지정]을 클릭하자.






STEP4. [연도/월/일]을 선택하고, [확인]을 클릭하자.




그러면, 아래와 같이 “YMD(Order Date)”가 된다.





STEP5. [Ship Date]를 행으로 드래그하고, [Order Date]와 같이 “YMD” 형태로 바꾼다.






STEP6. 위에서 만든 수식(“주문 후, 선적일까지 걸린 일수”)을 마크의 [텍스트]로 드래그하자.



그러면, 위와 같이 각 제품(Product Name)들이 몇번 주문 되었는지와 각 주문당 선적일까지 걸린 일수를 알 수 있다.







[전자책 출간] 태블로 차트 모음집


▶ 태블로를 이용한 다양한 차트 만들기


▶ 태블로를 이용한 비즈니스용 차트 만들기
매거진의 이전글 [DATE 함수] DATEADD
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari