tableau 計算和方法


計算:

  • 常規計算:向數據源發出計算請求,數據源計算后,tableau接收計算結果集。比如銷售-成本
  • 表計算:基於返回的結果集的二次分析計算。原數據“group by”后對聚合的數據的各種分析,tableau稱為"表計算"

 

表計算

參考了https://zhuanlan.zhihu.com/p/60641444

本數據:是tableau desktop的已保存數據:“世界指標”

 

這是一個聚合表。以地區+年份分組: 求列“人均醫療”的和。

表計算就是真對這個聚合表中的“聚合的數據”進行二次分析計算

  1. 右鍵單擊“總和(人均醫療)”,選擇“編輯表計算”。確定計算類型:“排序”
  2. 確定“計算依據”:“特定維度”。特定維度就是指參與了數據划分的“維度”。
    • ☑️的"維度": 對數據進行第2次分組。
    • 沒有☑️的“維度”,對數據進行第一次分組。
    • 對第二次分組的數據,用已經選擇好的計算類型進行計算。第一次分組只是隔離,第二次分組的數據,才會參與二次運算。

 

本例子比如:

計算類型:排序(降序)

計算依據:特定維度:☑️區域+☑️年份

所以,每行記錄都被單獨的分出來,然后對他們按照數值大小降序排序--不是真的排序,而是用數字代表排序的順序。

 

還是本例子,比如:

計算類型:排序(降序)

計算依據:特定維度:☑️區年份

  1. 首先,把數據按照區域划分開。
  2. 然后,每個區域的數據再按照“年份”二次划分。
  3. 最后,對二次划分的數據,按照降序排序。因為是降序,2011年數據數值最大,所以2011年數據賦予“數號:1”

 

 

還是本例子,如果:

計算類型:排序(降序)

計算依據:特定維度:☑️區域

  1. 首先,把數據按照“年份”進行一輪划分。即每年的記錄分到一組中,比如2000年的記錄算一組。
  2. 然后,每組數據按照“區域”進行而論划分
  3. 最后,對每條數據進行排序(降序)。

 

 

 

 

使用參數來改變字段

1.創建參數

2.創建計算字段

3.在圖表上使用計算字段

4.使用“參數控件”,並可以設置它的格式。

 

 這是創建計算字段的圖。

 

分析客戶在6個月之內,進行第2次購買,未購買,6個月之后購買的比率

本題思路和步驟:

  1. 創建首次購買的計算函數 
    • {FIXED [Customer ID]: MIN([Order Date])}
    • ⚠️這里的fixed相當於MySQL的group by后使用聚合函數
  2. 創建第2次購買的計算函數
    • {FIXED [Customer ID] : MIN(IF [Order Date] > [ First Order Date]
      THEN [Order Date]
      END)}

  3. 創建上面2者的差值的計算函數:"Repeat Purchasing"
    • IF [Months to Second Purcase] >= 6 then "More than 6 months"
      ELSEIF [Months to Second Purcase] < 6 then "Within 6 month"
      ELSE "No second purchase"
      end
  4. 創建一個文件夾,把這3個計算函數放到一起。
  5. 把他們放到圖表的列上或行上,顯示效果不同。
  6. 新建工作表,行為"Repeat Purchasing", 列為“Customer ID”並選擇它的屬性為“計數”+快速表計算->"合計百分比"

 

詳細級別表達式-分組表達式 Level of Detail Expressions(LOD)

 

 

 

{FIXED [訂單 ID]: SUM([利潤])}

這是一個詳細級別表達式:它由fix關鍵字和聚合函數sum組成。

詳細級別表達式的關鍵字有3種:

  • fixed:  只按照表達式內的字段來分組
  • include: 除了按照表達式內的字段分組,還會考慮到視圖中的維度字段來分組。
  • exclude:排除指定的維度。

 

fixed和include不同的用處:

{FIXED [訂單 ID]: SUM([利潤])}

  • 如果id是唯一的,那么fixed和include會得出相同的結果。
  • 如果id不是唯一的,就用include.
    • 不唯一是指:一個id有多條記錄。

上面的例子中,如果表格內有相同的🆔,如果使用Fixed作為關鍵字。那么🆔為ES-2014-4879051的記錄有2條,以🆔分組,會sum算出利潤合計值。

這兩條記錄都會附加一個字段來存儲這個利潤合計值。

之后按照圖中以國家/地區來分組,求總計(利潤),那么就會失真。這是因為比利時和法國的數據被sum過了。

 

還是上面的例子中,如果改用include作為關鍵字。會考慮以🆔+國家/地區, 進行分組操作,求各自的利潤合計值。

之后按照國家/地區來分組的話,就不會出現❌了。


 

表計算

表計算是使用視圖中的數據進行的計算,不會從數據源取用數據,只會用視圖表中的數據。

編輯表計算,左側表橫穿,右側表向下:

 

 表計算的范圍和方向

  • 表計算的范圍:表,區,單元格
  • 方向:向下,向上,橫穿。

通過“編輯表計算”->"表計算"選項框。就可以詳細進行設置,其中"特定維度"是更細節的設置。

 

 


 

 

 

聚合函數

 

attr(field),判斷被分到一起的一組記錄的某一field, 其值是否是唯一的,是則返回這個值,否則返回*。

count():計數

countd():計數,distinct,去重復。 

 

數字函數

zn() :如果是null,則返回0  簡化了if語句。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM