작성자: 17기 강민채
#WOW2022 | Week 30 | Dynamic Dates in a Heatmap
‘project hours worked’ 데이터
Bar chart
행: employee name → 정렬 → 필드/내림차순/Minutes
필터: Project → A만 선택 → 워크시트에 적용 → 이 데이터 원본을 사용하는 모든 항목
열: Minutes
💡 Number of Hours: floor(SUM([Minutes])/60)
*floor: 숫자 내림해서 표현
💡 Number of Minutes: round( ((sum([Minutes])/60) - [Number of Hours]) *60 )
💡 formatted Time: STR([Number of Hours])+"h "+STR([Number of Minutes])
→ 생성 후 formatted Time만 ‘레이블’에 넣어주기
💡 Default End Date: {MAX({MAX([Date])})}
→ 안에 있는 max: 가장 최근 날짜 반환하는 역할
→ 밖에 있는 max: 매개 변수 생성 위한 역할
💡 Default Start Date: {max(DATE(DATEADD('day',-14,[Default End Date])))}
→ 데이터 유형 ‘날짜’로 변경
(2) 매개 변수 생성
💡Date Range End
데이터 유형: 날짜
표시 형식:자세한 날짜
통합 문서가 열릴 때의 값: Default End Date
💡Date Range Start
데이터 유형: 날짜
표시 형식:자세한 날짜
통합 문서가 열릴 때의 값: Dafault Start Date
→ 매개 변수 표시
(3) Date Filter
💡 Date Filter:
[Date]>=[Date Range Start]
and
[Date]<=[Date Range End]
→ filter에 넣기 / ‘참’
→ ‘이 데이터 원본을 사용하는 모든 항목’
→ 필터 내의 두 항목 모두 ‘컨텍스트에 추가’ > 여러 개의 필터가 동시에 작용하도록
Heatmap
sheet 2 !
💡 No of days selected: DATEDIFF('day',{min([Date Range Start])}, {min([Date Range End])})
(1) Default
💡 Date_Day Trunc:
if [No of days selected]<=28 then
DATETRUNC('day',[Date])
elseif [No of days selected]>28 and [No of days selected]<=90 then DATETRUNC('week',[Date])
else DATETRUNC('month',[Date])
END
→ 해당 변수 표현 형식 ‘날짜’로 변경
→ 열에 가져다 두고, ‘정확한 날짜’로 변경
→ 날짜 아무거나 우클릭 > 서식 > [눈금] > 날짜 > 사용자지정 > ddd → ‘Date_Day Trunc’를 불연속형으로 변경
💡 Date Level
데이터 유형: 실수(float)
허용 가능한 값: 목록
목록 생성 (1:Default, 2:Day, 3:Week, 4: Month)
💡 sheet_Date_Level
date(CASE [Date Level]
when 1 then [Date_Day Trunc]
when 2 then (DATETRUNC('day',[Date]))
when 3 then (DATETRUNC('week', [Date]))
else (DATETRUNC('month',[Date]))
END)
→ 열에 있는 Date_Day Trunc 위에 덮어 쓰기
→ ‘정확한 날짜’
→ 불연속형
→ 매개변수 3개 모두 ‘매개 변수 표시’
💡 Datename_Day Trunc
if [No of days selected]<=28 then
upper(left(DATENAME('weekday',([sheet_Date_Level])),3))
elseif [No of days selected]>28 and [No of days selected]<=90 then
'w/c'+str(DATEPART('day',[sheet_Date_Level]))+'-'+upper(left(DATENAME('month',(DATETRUNC('week',[sheet_Date_Level]))),3))
else upper(left(DATENAME('month',([sheet_Date_Level])),3))
END
💡 Date Header
str(CASE [Date Level]
when 1 then [Datename_Day Trunc]
when 2 then upper(left(DATENAME('weekday',[sheet_Date_Level]),3))
when 3 then 'w/c'+str(DATEPART('day',[sheet_Date_Level]))+'-'+upper(left(DATENAME('month',(DATETRUNC('week',[sheet_Date_Level]))),3))
else upper(LEFT(DATENAME('month',DATETRUNC('month',[sheet_Date_Level])),3))
END)
Dashboard
댓글 영역