Tableau 教學-20分鐘學會計算功能(含基礎、表計算、LOD詳細級別表達式)

--

今天要介紹的是資料視覺化分析軟體Tableau的計算功能。我們可以透過計算功能,建立新欄位並應用至視覺化圖表內來執行較為複雜與深入的分析。

我會依過去的使用經驗,整理出3種計算類型,有了基礎的知識,在 Tableau的使用介面也有計算式的使用說明,相信已可解決8成的計算需求。

Tableau中有三種計算類型(我們選擇的計算類型取決於分析需求)

1.基本計算式

2.表計算

3.詳細資料級別(LOD)計算式。

首先先介紹:基本計算式

0:59 基本計算式

基本計算式有兩個主要用途

  1. 快速對資料分類
  2. 建立資料來源中缺少,但分析所需的欄位

首先呢,假設我是一位銷售經理,我想知道我管轄區域內不同商品的獲利表現,我在Tableau中將欄位”Profit”移至Columns,”Category”及”Sub-category”移至Rows,可看到Tableau自動以長條圖來呈現不同商品的利潤表現。

接著因公司設定的KPI目標,我需要找出有哪些產品的獲利超過3萬塊,此時就可利用計算式來完成我的目標。我可以利用Tableau的邏輯函數來設定一門檻值,將不同商品的獲利能力進行分類。

右鍵點擊數據窗格空白處,選取”Create Calculated Field”,將此計算式命名為”獲利門檻值”。依序輸入以下計算式。

IF SUM([Profit])>30000 THEN “高利潤”

ELSE “低利潤”

END

(解析為:如果利潤總合大於3萬則結果回拋為高利潤,反之為低利潤,END!)

接著把此計算欄位”獲利門檻值”拖到視圖中的”Color”,我們就完成資料分類了!橙色的商品類別為高利潤商品,利潤超過3萬,而利潤低於3萬的低利潤商品則以藍色呈現。

在這個例子中,我們透過邏輯函數IF與運算符號,建立新欄位快速對資料分類。而基本計算式的功能遠遠不僅於此,譬如使用數字函數ROUND將欄位做四捨五入、ZN函數處理空值等。

基本計算式另一個強大的功用是,當資料來源中缺少分析所需的資料時,也可以使用基本計算式建立新欄位。

例如,如果資料源中有“Sales” 和“Profit” ,而我們也想知道”成本”的資訊時,就可以利用基本計算式來建立一個新欄位”成本”。

首先新開一個Sheet,將欄位”Profit”移至Columns,”Category”及”Sub-category”移至Rows,右鍵點擊數據窗格空白處,選取”Create Calculated Field”,將此計算式命名為”成本”。依序輸入以下計算式:[Sales]-[Profit]

再來將”成本”欄位移至Columns。我們可以看到科技產品中的Copiers成本很低,利潤卻很高,我們藉由基本計算式取得了一個重大的發現。

了解基本計算式的使用情境後,接著介紹Tableau中的第二種計算類型 2.表計算

5:11 表計算與快速表計算

表計算的功用是對同一欄位下的資料做資料間的運算,像是當我們需要排名、累計或是移動平均時,就要用表計算。只要計算存在跨列運算,就只有表計算能實現跨列的結果。

舉例來說,新開一個sheet,將欄位”Region”移至Columns,”Order Date” 移至Rows,”Sales”移至Marks區中的”Text”。

對於這樣的4年業績表格中,如果問題是哪一年在Central區域有銷售額的最大值?我們肉眼直觀即可見,答案為2017年。

但如果想知道的是哪年的同期增長最大,(PS:同期增長=本年銷售–去年銷售),就無法以肉眼做到了,這時就需要表計算來對同一欄位下的資料做資料間的運算。

要算出同期增長我們只要滑鼠左鍵點擊Sum(Sales)的下拉式選單,選擇”Add Table Calculation”,在”Calculation Type”中我們可以看到除了”Difference From”外還有”Rank排名”、”Running Total累計”等表計算,因今天要算的是同期增長,因此我們選擇”Difference From”。

在”Compute Using”下,如果選擇Table(across),可以看到計算是依據橫穿進行計算,例如第一列第二行的計算結果24,842,就是由2015年East區域的業績減掉Central區域的業績而來,但看來這計算方式並不是我們要的。

我們繼續發揮探索的精神,選擇Table(down),此時呈現的值是依據銷售年度採直向向下計算,由本年的業績減去去年度的業績,這計算方式就是我們要的資訊! (還有若干的計算方式,可依照不同的計算需求使用,就留給大家探索囉~)

這裡小結表計算式的用途,如果我們想做移動平均、百分比差異、百分比、總額百分比、累計等,同一欄位的資料間運算時,就需要使用表計算!

快速表計算

另外在Tableau中一些常見的表計算,如與剛才範例類似的”年同比增長比率”,在Tableau中已經貼心的至於快速表計算中。

我們新開一個sheet,重覆剛才的步驟,將欄位”Region”移至Columns,”Order Date” 移至Rows,”Sales”移至Marks區中的”Text”。

接著只要左鍵點擊Sum(Sales),在Quick Table Calculation中選擇”Year over Year Growth”,就完成年同比增長的計算了!

好的,我們接著介紹今天的重頭戲,Tableau的第三種計算類型 3.詳細資料級別(LOD)計算式

8:32 詳細資料級別(LOD)計算式-基本觀念

在說明何為詳細資料級別Level of Detail,簡稱LOD前,我想先聊聊何為聚合。舉個例子,如果我現在的身分是區域經理,我底下的店員在看銷售報表時,關心的是每月自己的達成業績,但對我來說,關心的是整個區域整體的銷售額,因為我負責的區域底下還有各城市,城市還可對各行政區進行劃分,各行政區下才會具體到每個店員,因不同的人關注的重點不一樣,這時候就要對數據進行聚合

所謂的不同關注點,體現在技術上就是詳細級別Level of Detail,它代表的就是我們關注資料的詳細程度。

在Tableau的視覺化圖表中,能影響視圖詳細級別的方法有兩種

  1. 將Dimensions欄位加至Columns、Rows中
  2. 或將Dimensions欄位加至Marks標記區

將欄位加至Columns、Rows中是如何影響視圖詳細級別呢?舉例來說,新開一個sheet,並把”Sales”拉至Rows功能區,可看到tableau以聚合的方式呈現銷售額。

接著我們加入更多維度,將“Category”拖到Columns功能區。Tableau以商品類別,對銷售總額進行切割,也就是我們現在看到的不同商品類別的銷售情況。加入了維度“Category”後我們在長條圖中獲得更多的粒度和更少的聚合。換句話說,我們改變了視圖的詳細級別。

(加入新維度後,視圖發生變化)

我們也可在Marks標記區中改變視圖的詳細級別,開一個新的Sheet來說明,將 ”Sales”拉至Rows功能區,“Profit”拖到Columns功能區,呈現出來的散點圖只有一個點,是因為我們沒有對資料進行細分,換句話說,我們的粒度最低,也就是最聚合的。

只時候只要將”Order ID”拖到Detail欄中,視圖就變化出現N個點,每個點代表一個ID訂單,呈現了較高粒度的詳細級別。

前面這兩種方法的共通性是,如果拖拉其它維度的欄位到行、列欄或是Marks標記區中,整個視圖的詳細級別就會產生變化。

而LOD計算式的特色是:

1.當我們不想影響到視覺化內容展示的情況下,可藉由LOD計算式,自定義要用怎樣的維度進行計算。
2. 可以在定義Detail層級的同時,獨立於視圖中使用的維度,一切設定都體現在計算欄位的表達式中。

LOD類型有三種 — EXCLUDE、INCLUDE和FIXED,各有不同的用途,我做了一個比較圖說明如下,我接下來會各舉1個例子說明,讓大家更明瞭運作原理。

首先先介紹使用頻率最高的LOD計算式,FIXED LOD。

11:52 詳細資料級別(LOD)計算式-FIXED

FIXED LOD 此計算式使用函式內的維度計算值,而不引用視圖中的維度。這個特色讓我們明確定義計算的聚合級別,而不被視圖詳細級別影響。在此我舉一個計算新顧客留存率的例子來說明。

假設我們是一位電子商務的行銷人員,想要知道各地區每日新顧客獲取數量,知道此趨勢有助於了解組織拓展新業務的成效。當表現趨緩時,或許就需要行銷活動來增加潛在機會。

第一步,開一個新sheet並將”Order Date”拖到”Columns”,並調整成連續型”Day(Order Date)”。

接著將”Customer ID”移至Rows,並滑鼠左鍵點擊膠囊,選擇Measure 中的”Count(Distinct)不重複計數。

最後將”Region”移至Color,如此我們就得到了每日各地區的客戶數,但這樣的計算方式計算了每日新客戶的數量外也計算了舊客戶的數量。

因此第二步,重新梳理思考脈絡,整理如下:

我們需要先清楚想在此視圖表現出來的是什麼!為了得知各地區每日新顧客數量,視圖可規劃為按照天和地區計算新顧客的數量,但是否為新客戶需要利用顧客的最早訂單日期來判斷,這資訊無須引用當前視圖的維度,我們需要額外的獨立資訊,判斷是否為新客戶,此時就可用FIXED LOD來表達這個背景資料,明確定義計算的聚合級別,而不被視圖詳細級別影響。

第三步, 如前面提到的,可以利用FIXED LOD判斷客戶是否為新客戶。做法如下:右鍵點擊數據窗格空白處,選取”Create Calculated Field”,將此計算式命名為”新或舊客戶”,依序輸入以下計算式。

{FIXED [Customer ID]: MIN([Order Date])}

(利用FIXED LOD不使用視圖中的維度,僅使用函式內的”Customer ID”維度,算出每個客戶的首次購賣日期)

接著我們再利用IIF函式來對客戶進行分類,步驟如下:

IIF([Order Date]={FIXED [Customer ID]: MIN([Order Date])},”新客戶”,”舊客戶“)

(如果訂購日期為首次購買日期,欄位標籤為新客戶,反之則為舊客戶)

第四步,將需要參考的額外背景資訊代入視圖中, 滑鼠拖放”新或舊客戶”欄位至Filters中,選擇”新客戶”。

為了一目了然線條圖的增長趨勢,左鍵點擊CNTD(Customer ID)下拉式選單,在 Quick Table Calculation中選擇”Running Total”累計,如此就得到了各地區每日新顧客獲取數量的趨勢圖。

並可從中可看到各地區在2016年開始新客戶的增長開始趨緩。

接下來介紹LOD下一個應用, INCLUDE LOD計算式。

16:55 詳細資料級別(LOD)計算式-INCLUDE

首先我們先看一下本教學使用的範例資料源EXCEL檔,我擷取部分畫面後製表如下,以第一筆訂單CA-2017–152156為例,購買者的客戶編號為CG-12520,他購買了兩樣商品,資料以兩列的型式儲存。這樣的儲存方式當我們今天想要知道各個地區每筆訂單平均的購買金額時,若直接將”Sales” 做平均,Tableau會加總每一列的值後,除以列數。但正確的算法應為先各別加總各地區每筆訂單的銷售金額後,在除以訂單數。

在此情境下,我們可以藉由INCLUDE LOD 計算式來幫助我們算出正確的平均值,INCLUDE LOD 這個計算式使用指定的維度以及視圖中的維度來計算值。

首先我們新開一個sheet將”Region”拖到”Columns”,接著右鍵點擊數據窗格空白處,選取”Create Calculated Field”,將此計算式命名為”每筆訂單銷售額”,依序輸入以下計算式。

{INCLUDE [Order ID]: SUM([Sales])}

(使用INCLUDE函式,參考函數內指定的維度[Order ID],也引用視圖中的Region維度,來計算銷售額)

為什麼使用INCLUDE LOD計算式的原因有兩個
1.可以讓我們不用將Order ID這個欄位拖到視圖當中,而影響視圖的詳細程度。

2.如使用INCLUDE LOD計算式,我們將以函數內指定的維度以及視圖中的任何維度來計算值。

解讀整句函式即為

  1. 找出每筆訂單的訂單金額
  2. 引用視圖中的Region維度計算出,每個地區內每筆訂單的總銷售金額,但卻又不影響視圖的詳細程度。

要得到平均訂單金額,我們只要將此計算式拉至”Rows”,再將計算方式改為Avg即可。

接下來介紹最後一個LOD計算式

20:03 詳細資料級別(LOD)計算式-EXCLUDE

如果我們希望視圖能以月為單位,除了展示按地區計算的總銷售額外,也展示總銷售額。 在此情境下我們可以使用EXCLUDE LOD,將視圖中的維度減去EXCLUDE LOD內的維度來計算值。

首先新開一個sheet將”Order Date”拖到”Rows”,並調整成離散”Month(Order Date)”。

接著將” Region”、 ”Sales”移至Columns,並在Marks標記區中調整圖表為”Bar”。我們已完成第一個部份,按月及地區計算的總銷售額。

接著因為在視圖中,地區已被置於“Columns”上,但我們又想知道不受地區影響的總銷售額, 這時就可以使用EXCLUDE LOD將視圖中的Region維度排除來計算值。

做法如下:右鍵點擊數據窗格空白處,選取”Create Calculated Field”,將此計算式命名為”總銷售額(不受區域影響)”,依序輸入以下計算式。

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

(使用EXCLUDE函式,將函數內指定的維度[Region],從視圖中維度排除,來計算銷售額)

將此計算式加到”Color”,滑鼠移至任一長條圖中,我們除了看到總銷售額外,也可以看到按地區計算的總銷售額。

22:19 結論

我認為Tableau迷人之處在於,它的整體介面營造出探索式分析的情境,你可以簡單直覺的拖拉欄位到視圖中就可以有精美的圖表,你也可以選擇使用計算式來做更為複雜與精細的分析。

對我來說,計算式是手中最靈活的工具,可以建立新欄位來快速對資料分類,而”年同比增長”之類常見的計算需求,也可利用快速表計算達成目的,LOD計算式可以讓我們在不想影響到視覺化內容展示的情況下,自定義任意的維度進行計算。

--

--

Tableau 資料視覺化與商業分析筆記

“20%的時間花在資料處理,80%的時間用於分析” 持續分享Tableau教學,希望能讓大家淺顯易懂為何我開始使用Tableau做視覺化資料分析的原因,進而也開始使用Tableau,增加工作效率。FB: https://www.facebook.com/tableaunote