1. 程式人生 > >從零開始Tableau | 9.計算欄位

從零開始Tableau | 9.計算欄位

 

計算欄位讓tableau的分析具有很強的靈活性。本節記錄要點:

  • 運算子
  • 建立計算欄位
  • 主要函式

運算子

運算子是一個符號,可以對對數字、字串、日期等進行數學或邏輯操作,要使用計算欄位和函式,必須先了解tableau支援的運算子以及每個運算子的運算邏輯和運算順序。

常規運算子

圖:常規運算子
圖:常規運算子

 

邏輯運算子

圖:邏輯運算子
圖:邏輯運算子

 

運算子優先順序

tableau中的運算子在進行運算時,彼此間存在優先順序,如下圖所示,第一行具有最高優先順序,最後一行的優先順序最低。

同一行中的運算子具有相同優先順序。在兩個運算子具有相同優先順序的情況下,則在公式中從左向右進行計算。

可以根據需要使用括號,括號中的運算子優先於括號外的運算子進行計算,從最內部的括號開始向外計算。

圖:運算子優先順序
圖:運算子優先順序

 

建立計算欄位

計算欄位是使用函式和運算子構造公式,對資料來源欄位(包括維度、度量、引數等)進行重新定義的欄位。它是原始資料來源中沒有,由使用者創建出來的新欄位。

這裡使用”超市“資料的”客戶排序表“,該表將所有客戶銷售額按照從高到低的順序進行了視覺化,現在需要將客戶按照”利潤“大小分為”高利潤客戶“和”低利潤客戶“兩類,並在檢視中用顏色進行區分,就要用到計算欄位。

具體分為兩步:第一步是建立”客戶利潤型別“計算欄位;第二步是將建立的計算欄位視覺化。

圖:客戶銷售額排序
圖:客戶銷售額排序

 

Step01 在“資料”視窗的任意欄位上,通過滑鼠右鍵建立計算欄位。

圖:建立計算欄位示例
圖:建立計算欄位示例

 

Step02 進入“計算欄位”編輯介面。

  • ① 命名區,可以對計算欄位進行命名。這裡命名為“客戶利潤型別”。
  • ② 公式編輯區,在這裡可以根據分析需要,對計算欄位的公式進行編輯。
  • ③ 函式區,可以搜尋和選用tableau自帶的各種函式,以滿足計算欄位的公式編輯需要。
  • ④ 註釋區,對選中的函式進行描述,並給出具體事例,以幫助使用者更好的理解和應用函式。
圖:計算欄位編輯介面
圖:計算欄位編輯介面

 

Step03 編輯計算欄位公式。初始需求是以客戶的利潤為基礎,選定一個臨界值,將高於臨界值的稱為“高利潤客戶”,低於臨界值的稱為“低利潤客戶”。因此,這裡選用“IF”函式,以15000元作為臨界值,判斷客戶利潤是高還是低,並據此對客戶進行分類。

圖:計算欄位公式編輯示例
圖:計算欄位公式編輯示例

 

Step04 將建立的“客戶利潤型別”計算欄位拖動到“標記卡”的“顏色”,在”客戶排序表“上實現“客戶利潤型別”的視覺化。

圖:"客戶利潤型別"視覺化示例
圖:"客戶利潤型別"視覺化示例

 

主要功能函式

計算欄位主要依賴各種型別的函式,tableau中的函式分為數字函式、字串函式、日期函式等十餘種類型。

圖:tableau主要函式型別
圖:tableau主要函式型別

 

數字函式

數字函式主要用於數值計算,這些函式只接受數字作為引數。下面列舉了部分常用的數字函式。

圖:常用數字函式
圖:常用數字函式

 

實操:ABS()函式

以“利潤”欄位為例,使用ABS函式建立名為“ABS利潤”的計算欄位,圖中可以看到,由於ABS函式是返回絕對值,因此部分產品的利潤變為了正值。

圖:ABS函式示例
圖:ABS函式示例

 

字串函式

字串函式主要用於字串的操作。下面列舉了部分常用的字串函式。

圖:常用字串函式
圖:常用字串函式

 

實操:Contains()函式

以“產品名稱”欄位為例,使用Contains函式查詢產品名稱中包含“標籤”的產品。使用Contains()函式建立名為“Contains標籤”的計算欄位,圖中可以看到,新的計算欄位返回兩個值,產品名稱包含“標籤”的為“真”,不包含的為“偽”。

圖:Contains函式示例
圖:Contains函式示例

 

聚合函式

聚合函式通常用於對一組值執行計算。下面列舉了部分常用的聚合函式。

圖:常用聚合函式
圖:常用聚合函式

 

實操:COUNTD()函式

以“產品名稱”欄位為例,用COUNTD函式建立名為“產品數量”的計算欄位,統計各個地區分別銷售了多少種產品。

圖:COUNTD函式示例
圖:COUNTD函式示例

 

邏輯函式

邏輯函式通常用於執行邏輯測試。下面列舉了部分常用的邏輯函式。

圖:部分常用邏輯函式
圖:部分常用邏輯函式

 

實操:IF()函式

以“銷售額”欄位為例,用IF函式建立名為“銷售額區間”的計算欄位,統計訂單記錄中,各個銷售額區間的訂單記錄數量分別有多少。

圖:IF函式示例
圖:IF函式示例

 

日期函式

日期函式常用語涉及日期的計算。下面列舉了部分常用的日期函式。

圖:部分常用日期函式
圖:部分常用日期函式

 

實操:DATEDIFF()函式

以“訂單日期”和“發貨日期”欄位為例,用DATEDIFF函式建立“訂單響應時間”的計算欄位,反映每個客戶每年的訂單中。最大響應時間分別是多少。具體分為三步:

Step01 建立“訂單響應時間”計算欄位。

圖:"訂單響應時間"計算欄位示例
圖:"訂單響應時間"計算欄位示例

 

Step02 建立客戶訂單響應時間檢視。

圖:訂單響應時間檢視示例
圖:訂單響應時間檢視示例

 

Step03 調整“訂單響應時間”計算欄位的聚合方式。tableau預設的聚合方式是“總和”,在這裡表示的是每個客戶訂單響應的總時間,如果要反映每個客戶訂單的最大響應時間,則需要將聚合方式更改為“最大值”。

圖:更改聚合方式示例
圖:更改聚合方式示例

 

Step04 根據需要,選用合適的圖形對最大訂單響應時間進行視覺化,這裡用二維表進行展現。

圖:最大訂單響應時間示例
圖:最大訂單響應時間示例

 

函式是tableau中非常強大的工具,其種類豐富,數量眾多,可以很好滿足日常分析需要。這裡僅列舉了幾個簡單函式,目的是熟悉計算欄位的操作,初步掌握函式在計算欄位中的使用方式。雖然接觸tableau的時間不長,但我也深刻感受到了函式的強大能力,不過,我覺得對函式的學習還是要建立在實踐基礎上,針對工作或學習中遇到的某個分析需求,再去查詢和深入研究選擇哪個函式、哪種方式來解決問題,這樣學習函式的效率會更高,過程不枯燥,效果會更好。