【Tableau 計算】用人話講講的「表計算」

blank

【Tableau 計算】用人話講講的「表計算」

關鍵詞:【表計算】

文章首發在知乎專欄:Tableau精進之路

學習表計算一直有個長久以來困擾我的問題。 很多教程拿著交叉表,翻來覆去的講這個計算類型,那個計算方向。 為什麼就是不講講剛計算好的 表計算結果 怎麼用在 可視化 上?

所有的文章都好像預設了,我們能在交叉表裡面搞清楚各種表計算的使用方式,然後就一定能在可視化中使用了。

我怕我有記憶偏差我還是再次掃了一遍官網,知乎,百度到的各種表計算的文章。 文章要麼是在扣細節,翻來覆去的在說各種計算方式,要麼就是在一個複雜的案例裡面用了一個表計算。

作為一個實用主義之上的人,看見這種教程我真想一個個都撕了。 只說原理,然後就不管怎麼用了,要麼就是剛學完1+1,然後就要造原子彈了,這和九年義務的應試教育有啥區別呢?

一、表計算在幹什麼

表計算是對聚合後資料的 二次運算

那麼為什麼要進行二次運算?

遇到一個新工具,我個人認為合理的認知過程是先想清楚你為什麼這個工具會產生,而不是非要死扣這個工具的工作原理和使用方式。

如果Tableau沒有表計算功能,我們的Tableau只能對基礎數據做好匯總,然後畫圖。 Tableau只是一個呈現工具罷了。

blank

但是,我們對匯總好的數據還是有分析的訴求。 例如對匯總數據做個排名,算一下匯總數據各自的佔比,根據時間的變化趨勢等等。 所以也就有了如下的二次計算的各種類型:

  • 差異計算
  • 移動計算
  • 百分比計算
  • 排名計算
  • 匯總計算

參照官方的說明文件 表計算類型

blank

所以,這也就引出了表計算函數不能非聚合的數據進行運算。

你瞭解到一個工具產生的真正目的,才能從內心的接受它。

二、表計算的兩個步驟

想清楚了 表計算 到底是用來幹什麼的,我們也就很好理解 表計算 的兩個步驟了。

  • 第一步: 確定計算類型 。 也就是我們想要用什麼方式來分析聚合后的結果。
  • 第二步: 確定計算依據 。 也就是我們要在哪個匯總粒度,對匯總數據進行分析。

1 確定計算類型

確定計算類型的方式一共有三種

  1. 使用快速表計算選擇
  2. 在編輯表計算中選擇
  3. 生成計算欄位時直接使用表計算函數
blank

三種使用 表計算 的方式,暫時都只是確定了計算類型,都還需要還要在 編輯表計算 中設定計算依據。

2 確定計算依據

blank

為了具象化聚合後數據,Andy也做出一個 交叉表 ,使用了三個維度欄位放到 行功能區列功能區 ,一個度量欄位拖入 文字標記卡,從功能表欄依次點擊 分析 - 合計 - (顯示行合計,顯示列合計,添加所有小計)。

可以看到這個實際上和Excel的數據透視表真的沒有啥本質區別,我們把這個表叫做 「交叉表」,這也是官方在介紹表計算中使用的說法,大部分教程確實也都會在講解過程中打開一個 「交叉表」

其實 表計算 的難點就在於計算依據的確定。 所以下文就是本篇的重點了。

理解計算依據的核心就是:如果不是畫表格,就 不要嘗試 使用表格的方式理解 表計算

blank

第一條:先別用快速的設置表計算依據的方式,一定要使用 編輯表計算 來設定計算依據

blank

第二條:對於通過位置來設定計算依據的方式都會對應有一種使用 特定維度 進行設置的方式。 如果不是做表格,就不要用位置來描述的計算依據了,只使用 特定維度

其實寫下這條,很希望你能一個一個試一下,特定維度 這種設置方式,是如何和使用表定位的方式進行對應的。

第三條:理解 特定維度

按照安迪總結的人話版的,使用特定維度來確定表計算方式。 大概是如下的樣子。

blank

感覺說的也不太清楚,那麼在詳細的解釋一下。

整個的表計算依據的確定被分成了三個部分:

  • 沒有打鉤的維度,也就是紅色框內的維度,參與了數據的劃分,可以理解為現根據這些維度進行數據的第一次分組。
  • 然後就是使用打鉤的維度,也就是黃色框內維度,進行第二次數據劃分。
  • 最後,對第二次分組的數據,用已經選擇好的計算類型進行計算,可以有排序,佔比,差異計算等各種運算。 第一次分組只是隔離,第二次分組的數據,才會參與二次運算。

blank

再畫一張圖,看看理解了沒。

官方將參與了第一次分組的欄位稱為「分區欄位」,將參與第二次分組的欄位稱為「尋址字段」。 在計算依據的設置中, 「分區欄位」是沒被打上勾的欄位, 「尋址欄位」是打上勾的欄位。

第四條:如何使用表計算的結果

最後說說我在文章一開始吐槽的,如何在可視化中使用表計算結果。

blank

https://www.zhihu.com/video/1095290546800734208

我們根據上面的步驟得到了一張「交叉表」,由於這些數值是不依賴表格位置描述的,實際下一步就可以對各個維度和度量,在各種功能區中相互拖拉了。

blank

比如講度量拖入「行功能區」,立刻回得到一個使用表計算結果畫出來的折線圖。 注意顯示的標籤與我們之前產生的表格的 一致性

blank

各種維度也可以放入標記功能區的各種位置,比如上圖是將地區放到了顏色上。 還是注意和之前產生表格的 一致性

如果你使用各種表格描述來進行表計算依據的設定,到可視化這一步就非常難理解。 這也是為什麼一開始如果不是做表格,就不要使用 表格位置描述來進行可視化的原因之一。

三、總結一下

  • 第一,我們首先要想清楚,為什麼Tableau中會加入 表計算 這個功能的,也要想明白 表計算 到底是用來幹什麼的。
  • 第二,我們要記得,設定表計算一共要涉及兩個部分:設定計算類型計算應用的層級
  • 第三,我們使用 特定維度 來設定表計算應用粒度,沒有打鉤的欄位是 「分區欄位」,打鉤的欄位是 「尋址欄位」(重點)

四、其他的內容

這裡我沒有掰開了一個一個講到詳細的計算方式,更沒有一個一個講表計算函數怎麼用,我相信大家還是有基本的學習能力,能夠在需要的時候查查官方的幫助文檔或者自己簡單的探索一下。

作為練習,你可以帶著新的視角,在實際的可視化中使用一下表計算方法,用一用各種表計算函數,表計算的計算類型,看看是不是有耳目一新的感覺。

甚至你現在可以反過來再看看我不推薦的設置使用表格定位來確定 表計算依據 的方式,看看他們在做什麼,為什麼不好理解,什麼時候又能用。


這次還是主要借鑒安迪·克利貝爾(Andy Kriebel)的Tableau Tips教程,為了給大家留個更深的印象,這次加個安迪的照片,混個臉熟。

blank


參考:表計算概覽( 英文字幕)

blank

如果字幕感覺太小,可以打開字幕設置進行調整。

在視頻裡面,安迪說他自己都花了接近10年的時間,才對Tableau表計算有了一種 「Eureka moment」,Eureka 這個詞據說最早來自阿基米德,泡澡時想出了測量皇冠是否是純金的方法,大喊出了"Eureka"。 我為了通俗就直接翻譯成 「頓悟時刻」了。

嗯,安迪通過寫教程的方式加速了我對Tableu表計算的理解,我也希望我用我的方式,也能加速你的理解。


相關文章

帶你看看Tableau條形圖到底有多少變種

Tableau 畫點狀條紋圖 - 抖動圖 - 熱力圖

Tableau 畫日曆熱力圖

Tableau 畫圓角條形圖

Tableau畫雷達圖

Tableau 畫六邊形網格地圖(Hex Map)(上)

Tableau 畫六邊形網格地圖(下)


廣告時間

@空白白白白創建的小數點數據社區開始第三批內測了。 我每周參與的【小數點圖表挑戰】 就是在這裡舉辦的,歡迎大家一起來參與提交作品。

blank

What do you think?

Written by marketer

blank

【Tableau 圖表】帶你看看條形圖到底有多少變種

blank

【Tableau】十大表計算-完整解讀版