[STARTERS 4๊ธฐ TIL] #36์ผ์ฐจ(23.03.28)


๐Ÿ“š ์˜ค๋Š˜์˜  ํ•™์Šต

์‹ฌํ™” ๊ทธ๋ž˜ํ”„ ๋งŒ๋“ค๊ธฐ
Gauge Chart

โ‘  ํ‘œํ˜„ํ•˜๊ณ  ์‹ถ์€ ๋น„์œจ ์ง€ํ‘œ ๋งŒ๋“ค๊ธฐ - [sales(%)]

SUM([Sales])/WINDOW_SUM(SUM([Sales]))

โ‘ก ๋น„์œจ์„ ์ด์šฉํ•ด ๋ฒ”์œ„ ์ž๋ฅด๊ธฐ

IF [sales(%)]>0.5 THEN [sales(%)]-0.5 ELSE 0 END   #slice 1
IF [sales(%)]>0.5 THEN 1-[sales(%)] ELSE 0 END     #slice 2
1                                                  #slice 3
IF [sales(%)]<0.5 THEN [sales(%)] ELSE 0.5 END     #slice 4
IF [sales(%)]<0.5 THEN 0.5-[sales(%)] ELSE 0 END   #slice 5

โ‘ข ์ด์ค‘ ์ถ•์„ ์ด์šฉํ•œ ๋„๋„› ์ฐจํŠธ ๋งŒ๋“ค๊ธฐ

โ‘ฃ ๋‚ ์งœ ํ•„ํ„ฐ ์ƒ์„ฑ

  ๋ฐ์ดํ„ฐ๋ฅผ ๋…„/์›”/์ผ ๋ณ„ ์„ธ์„ธํ•˜๊ฒŒ ๊ตฌ๋ณ„ํ•˜๊ธฐ ์œ„ํ•จ

   โ“ ๋‚ ์งœํ˜• ๋งค๊ฐœ๋ณ€์ˆ˜ ๋งŒ๋“ค๊ธฐ - [date]

   โ“‘ ๊ณ„์‚ฐ๋œ ํ•„๋“œ๋กœ ๋งค๊ฐœ๋ณ€์ˆ˜ ์—ฐ๊ฒฐํ•˜๊ธฐ - [๋‚ ์งœ ํ•„ํ„ฐ]

DATETRUNC('year',[Order Date]) = DATETRUNC('year',[date])
AND
DATETRUNC('month',[Order Date]) = DATETRUNC('month',[date])

โ‘ค Gauge Chart ๊ทธ๋ฆฌ๊ธฐ

   โ“ Category ํ•„๋“œ ์ถ”๊ฐ€, ๋‚ ์งœ ํ•„ํ„ฐ ์„ค์ •

   โ“‘ ๊ณ„์‚ฐ๋œ ํ•„๋“œ slice 1~5๋ฅผ ๊ฐ๋„์— ์ถ”๊ฐ€

โ‘ฅ Gauge Chart ์ƒ‰์ƒ ์„ค์ •

   โ“ 1, 4๋ฒˆ → ๊ฐ™์€ ์ƒ‰์œผ๋กœ ์น ํ•ด ๋น„์œจ ํ‘œํ˜„

   โ“‘ 2, 5๋ฒˆ → ํšŒ์ƒ‰์œผ๋กœ ์น ํ•ด ๋น„์–ด์žˆ๋Š” ๊ฐ’ ํ‘œํ˜„

   โ“’ 3๋ฒˆ ํฐ์ƒ‰์œผ๋กœ ์น ํ•ด ๋ณด์ด์ง€ ์•Š๋Š” ๊ฐ’ ํ‘œํ˜„

โ‘ฆ ์‘์šฉ ์„ค์ • 

   โ“ % ๋ฒ”์œ„ ๋ณ„๋กœ ์ƒ‰์ƒ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฒ”์œ„ ๊ตฌ๋ถ„์— ๋Œ€ํ•œ ๊ณ„์‚ฐ๋œ ํ•„๋“œ ์ƒ์„ฑ - [sales_๋ฒ”์œ„]

IF [sales(%)] < 0.2 THEN "20% ๋ฏธ๋งŒ"
ELSEIF  [sales(%)]>=0.2 AND [sales(%)]<0.4 THEN "20~40% ๋ฏธ๋งŒ"
ELSEIF  [sales(%)]>=0.4 THEN "40% ์ด์ƒ"
END

   โ“‘ [sales_๋ฒ”์œ„]๋ฅผ ์„ธ๋ถ€์ •๋ณด - ์ƒ‰์ƒ์œผ๋กœ ์„ค์ •ํ•˜์—ฌ slice ๋ฐ % ๋ฒ”์œ„์— ๋”ฐ๋ผ ์ƒ‰์ƒ์„ ์ง€์ •

 

Jitter Bar Chart

โ‘  ์—ด๊ณผ ํ–‰์— ๋Œ€ํ•œ ํ•„๋“œ ๋งŒ๋“ค๊ธฐ - [row], [col]

random()			    #row
random() * [fix_region_sum_sales]   #col

โ‘ก Reion์œผ๋กœ ๊ณ ์ •๋œ Sales ๊ฐ’ ํ‘œํ˜„

   โ“ ๊ณ„์‚ฐ๋œ ํ•„๋“œ ๋งŒ๋“ค๊ธฐ - [fix_region_sum_sales]

{ FIXED [Region]:SUM([Sales])}

   โ“‘ ์—ด ์„ ๋ฐ˜์— ์˜ฌ๋ ค๋‘” ๋’ค, [๋ถˆ์—ฐ์†ํ˜•]์œผ๋กœ ๋ณ€ํ™˜

   โ“’ Product Name์„ ์„ธ๋ถ€ ์‚ฌํ•ญ์œผ๋กœ ์„ค์ •, Category ๋ณ„ ์ƒ‰์ƒ ์ง€์ •

 

Waffle Chart

โ‘  ๊ตฌ๊ฐ„์ฐจ์› ์ƒ์„ฑ - [path]

IIF([Ship Mode] = 'First Class', 1, 100)

โ‘ก ๋งค๊ฐœ๋ณ€์ˆ˜ ๋งŒ๋“ค๊ธฐ

 

โ‘ข ์—ด๊ณผ ํ–‰์— ๋Œ€ํ•œ ํ•„๋“œ ๋งŒ๋“ค๊ธฐ

[index]%[@columns]     #Columns
INT([index]/[@columns]) #Rows

โ‘ฃ ๊ทธ๋ž˜ํ”„๋กœ ๋‚˜ํƒ€๋‚ผ ์ธก์ •๊ฐ’์— ๋Œ€ํ•œ ํ•„๋“œ ๋งŒ๋“ค๊ธฐ

WINDOW_SUM(SUM([Sales]))  #TC_sales
WINDOW_SUM(SUM([Sales]))  #TC_total sales
[TC_sales]/[TC_total sales]  #TC_percentage

โ‘ค ์ƒ‰์ƒ ์„ค์ •์„ ์œ„ํ•œ ํ•„๋“œ ๋งŒ๋“ค๊ธฐ

IF [index]/WINDOW_MAX([index])<[TC_percentage] THEN WINDOW_MAX(MAX([Region]))
ELSE'grey'
END

 

Order of Operation in Tableau


๐Ÿ’ป ์˜ค๋Š˜์˜  ๊ณผ์ œ

๊ฐœ์ธ ์ˆ™์ œ
์‹ฌํ™” ๊ทธ๋ž˜ํ”„

๋Œ€์‹œ๋ณด๋“œ 1๊ฐœ์— 3๊ฐœ์˜ ์‹œํŠธ. ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ํ•ด๋‹น ์ฐจํŠธ์—๋งŒ ์ ์šฉ ๊ฐ€๋Šฅํ•˜๊ฒŒ ์„ค์ •.

์‹œํŠธ 1 : ๊ฒŒ์ด์ง€ ์ฐจํŠธ - ์นดํ…Œ๊ณ ๋ฆฌ ๋ง๊ณ  ๋‹ค๋ฅธ ์ฐจ์› ๋งค๊ฐœ๋ณ€์ˆ˜ ๋“ฑ๋ก

์‹œํŠธ 2 : ์™€ํ”Œ ์ฐจํŠธ first class ๋Œ€์ฒดํ•˜์—ฌ์„œ ๋งค๊ฐœ๋ณ€์ˆ˜ ๋“ฑ๋ก   (๊ตฌ๊ฐ„ ์ฐจ์›์ด ์–ด๋–ป๊ฒŒ ์ ์šฉ๋˜๋Š”์ง€ ์ดํ•ดํ•˜๊ธฐ)

์‹œํŠธ 3 : Jitter bar chart - ๋งค๊ฐœ๋ณ€์ˆ˜ ๋“ฑ๋ก sum/avg ๋ณ€ํ™˜

ํƒœ๋ธ”๋กœ ์ž๊ฒฉ์ฆ

์ž๊ฒฉ์ฆ test2 1-20๊นŒ์ง€ ํ’€๊ณ  ์ ์ˆ˜ ๋งค๊ฒจ์„œ, ํ‹€๋ฆฐ ๋ฌธ์ œ ๋Œ€์‹œ๋ณด๋“œ ๋’ท์žฅ์— ํ…์ŠคํŠธ๋กœ ์‚ฝ์ž