태블로 필사 스터디 1주차에 발제하셨던 필사 자료를 나도 직접 해보고 기록하면 좋을 것 같아 작성하게 되었다. 전반적인 디자인까지 집중하기보다, 어떠한 방향으로 흘러가는지 꼼꼼히 공부하는 것이 좋을 것 같아 디자인적으로는 미흡하다. 그리고, 필사했던 데이터 원본의 연도 그대로를 가져왔는데 측정값이 달랐다. (여러번 해봤는데도 달랐지만, 다양한 그래프를 접해본다는 것에 의의를 두기 때문에 신경쓰지 않고 넘어가기로 했다.)
💡
첫 번째 대시보드 : Slope Chart
원본 필사
본인 필사
매개변수 : Selected Metric 만들기
계산된 필드 : Selected Metric- Value 만들기
CASE [Selected Metric]
WHEN 'Sales' THEN SUM([Sales])
WHEN 'Profit' THEN SUM([Profit])
WHEN 'Avg. Profit Ratio' THEN [Profit Ratio]
END
행과 열을 다음과 같이 배치하기
다음과 같이 필터 적용하기
계산된필드 : Selected Metric: 2020 만들기
{FIXED [Sub-Category]:
SUM(IF YEAR([Order Date])=2020 THEN (CASE [Selected Metric]
WHEN 'Sales' THEN [Sales]
WHEN 'Profit' THEN [Profit]
WHEN 'Avg. Profit Ratio' THEN [Profit]
END) END)
/
(SUM(IF YEAR([Order Date])=2020 THEN (CASE [Selected Metric]
WHEN 'Avg. Profit Ratio' THEN Sales
ELSE 0
END) END ) +
MIN(IF YEAR([Order Date])=2020 THEN (CASE [Selected Metric]
WHEN 'Avg. Profit Ratio' THEN 0
ELSE 1
END) END ))
}
계산된 필드 : Slope Chart: Color 만들기
IF RANK_UNIQUE(MIN([Selected Metric: Growth]))=1 THEN 'Biggest Growth'
ELSEIF RANK_UNIQUE(MIN(-[Selected Metric: Growth]))=1 AND MIN([Selected Metric: Growth])<0 THEN 'Biggest Decline'
ELSE 'Grey'
END
첫 번째 ‘Selected Metric- Value’ 마크에 다음과 같이 적용하기
계산된 필드 : Selected Metric: 2021 만들기
{FIXED [Sub-Category]:
SUM(IF YEAR([Order Date])=2021 THEN (CASE [Selected Metric]
WHEN 'Sales' THEN [Sales]
WHEN 'Profit' THEN [Profit]
WHEN 'Avg. Profit Ratio' THEN [Profit]
END) END)
/
(SUM(IF YEAR([Order Date])=2021 THEN (CASE [Selected Metric]
WHEN 'Avg. Profit Ratio' THEN Sales
ELSE 0
END) END ) +
MIN(IF YEAR([Order Date])=2021 THEN (CASE [Selected Metric]
WHEN 'Avg. Profit Ratio' THEN 0
ELSE 1
END) END ))
}
계산된 필드 : Selected Metric: Growth 만들기
([Selected Metric: 2021]-[Selected Metric: 2020])
두 번째 ‘Selected Metric- Value’ 마크에 다음과 같이 적용하기
열 ‘Order Date’를 원본 필사와 동일하게 2020, 2021년만 선택해주기
머리글 표시 해제, 열에 대한 필드 레이블 숨기기
평균 라인 만들기
‘Selected Metric’ 매개변수를 만듦.
Sales
Profit
Avg.Profit Ratio
"CASE [Selected Metric]"
: "Selected Metric" 필드의 값을 기준으로 나눔.
"WHEN 'Sales' THEN SUM([Sales])" : "Selected Metric"이 'Sales'일 경우, 'Sales' 열의 합계를 반환.
"WHEN 'Profit' THEN SUM([Profit])" : "Selected Metric"이 'Profit'일 경우, 'Profit' 열의 합계를 반환.
"WHEN 'Avg. Profit Ratio' THEN [Profit Ratio]" : "Selected Metric"이 'Avg. Profit Ratio'일 경우, 'Profit Ratio' 열의 값을 반환.
기준 날짜 → 특수 → Null이 아닌 날짜
Order Date
Ship Date
일반 → 모두 사용
City
Segment
Category
Sub-Category
Region
State/Province
FIXED [Sub-Category] : 이 코드의 결과를 [Sub-Category] 필드로 분류. 즉, [Sub-Category]의 각 값을 기준으로 계산 결과를 그룹화.
SUM(IF YEAR([Order Date])=2020 THEN ...) : [Order Date] 필드에서 연도가 2020인 경우에 대한 계산을 수행.
CASE [Selected Metric] ... END : [Selected Metric] 필드의 값에 따라 다른 계산을 수행하는 CASE 문. 'Sales'인 경우 [Sales] 값을 사용하고, 'Profit'인 경우 [Profit] 값을 사용하며, 'Avg. Profit Ratio'인 경우 [Profit] 값을 사용.
분모 부분은 연도가 2020이고 [Selected Metric]이 'Avg. Profit Ratio'인 경우 [Sales] 값을 사용하고, 그렇지 않은 경우 0을 사용. 이 부분은 [Selected Metric]이 'Avg. Profit Ratio'인 경우에만 유효한 값을 분모로 사용.
분자 부분은 분모와 유사하지만 [Selected Metric]이 'Avg. Profit Ratio'인 경우 0 대신 1을 사용. 이 부분은 [Selected Metric]이 'Avg. Profit Ratio'인 경우에만 유효한 값을 분자로 사용.
RANK_UNIQUE(MIN([Selected Metric: Growth]))=1 : “Selected Metric: Growth" 필드의 최소값을 찾고, 그 값이 고유한 최상위 순위(랭크 1)에 있는지 확인.
RANK_UNIQUE(MIN(-[Selected Metric: Growth]))=1 : Selected Metric: Growth" 필드의 최소값을 찾고, 그 값에 음수를 곱하여 가장 작은 값(즉, 가장 큰 감소율)을 찾은 다음, 이 값이 고유한 최상위 순위(랭크 1)에 있는지 확인.
FIXED [Sub-Category] : 이 코드의 결과를 [Sub-Category] 필드로 분류. 즉, [Sub-Category]의 각 값을 기준으로 계산 결과를 그룹화.
SUM(IF YEAR([Order Date])=2021 THEN ...) : [Order Date] 필드에서 연도가 2021인 경우에 대한 계산을 수행.
CASE [Selected Metric] ... END : [Selected Metric] 필드의 값에 따라 다른 계산을 수행하는 CASE 문. 'Sales'인 경우 [Sales] 값을 사용하고, 'Profit'인 경우 [Profit] 값을 사용하며, 'Avg. Profit Ratio'인 경우 [Profit] 값을 사용.
분모 부분은 연도가 2021이고 [Selected Metric]이 'Avg. Profit Ratio'인 경우 [Sales] 값을 사용하고, 그렇지 않은 경우 0을 사용. 이 부분은 [Selected Metric]이 'Avg. Profit Ratio'인 경우에만 유효한 값을 분모로 사용.
분자 부분은 분모와 유사하지만 [Selected Metric]이 'Avg. Profit Ratio'인 경우 0 대신 1을 사용. 이 부분은 [Selected Metric]이 'Avg. Profit Ratio'인 경우에만 유효한 값을 분자로 사용.