인프런 커뮤니티 질문&답변

김영준님의 프로필 이미지

작성한 질문수

기초부터 실무까지 Tableau 시각화

섹션 3 캘린더 시각화 질문 있습니다.

해결된 질문

작성

·

372

0

동영상 부분의 내용 따라서 평일 수식 넣었는데,

일요일 [기준일자] 1 작동 잘됩니다.

토요일 [기준일자] 7 작동 안됩니다.

예를 들면 토요일 3, 10, 17, 24, 31 이 평일 3, 10, 17, 24, 31과 동일하게 숫자가 표시되는데 수식 관련 도움좀 주실 수 있나요?

 

답변 1

0

정준영님의 프로필 이미지
정준영
지식공유자

제가 첨부해서 드렸던 데이터는 2022년 12월 1일부터 12월 31일까지의 태블로에서 캘린더를 제작 할 수 있는 샘플 데이터를 첨부하였습니다. 이때 기준일자를 활용해서 주말과 휴일이라는 새로운 차원을 생성할 수 있는데요. 먼저 주말의 경우에는 DATEPART 함수를 이용하여 생성할 수 있습니다.

DATEPART('weekday', [기준일자])를 입력하면 2022년 12월 1일부터 12월 31일까지 각 각의 기준일자가 무슨 요일인지 숫자로 나타나게 됩니다. 이때, 1부터 7까지 일, 월, 화, 수, 목, 금, 토 순서로 정의됩니다. 따라서 DATEPART('weekday', [기준일자])가 1 또는 7일 경우에 일요일과 토요일을 선택할 수 있게 됩니다.

주말일 경우 날짜 만을 불러오기 위해서 다음과 같은 식을 적용하면 아래의 데이터 보기와 같이 주말일 경우에만 3, 4 10, 11, 17, 18, 24, 25가 나타나는 것을 확인할 수 있습니다.

IF DATEPART('weekday', [기준일자])= 1 OR DATEPART('weekday', [기준일자])= 7

THEN DATEPART('day', [기준일자])

END

반면 평일인 경우에 날짜를 불러오기 위해서는 위에 주말 계산식의 조건문에서 두 조건이 아닌 경우에 날짜를 불러오면 됩니다. 이때 NOT 함수를 사용하면 긴 문장을 만들 필요가 없죠. 따라서 다음과 같은 식을 사용하면 아래 그림과 같이 평일일 경우에만 1, 2, 5, 6, 7, 8, 9, 12, 13, 14, 15, 16, 19, 20 , 21, 22, 23, 26, 27, 28, 29, 30이 나타나고 나머지는 NULL로 표현되는 것을 알 수 있습니다.

IF NOT(DATEPART('weekday', [기준일자])= 1 OR DATEPART('weekday', [기준일자])= 7)

THEN DATEPART('day', [기준일자])

END

image

여기까지 따라오셨다면 마크 패널에 생성된 측정값인 주말과 평일을 드래그하면 달력이 완성됩니다.

김영준님의 프로필 이미지
김영준
질문자

넵 도와주셔서 정말 감사합니다!