Tableau教學06 - 1月、2月數字加總後相除(一月和二月的平均銷售額),再跟當年度其他月份比較之公式詳解
- Ernie Liu

- 3月21日
- 讀畢需時 3 分鐘
有些公司因一月或二月過年,在做業績或產量檢討時,實際工作天數驟減,會有數字加總失真的情況發生,所以在比較數字的時候,會將1月跟2月的數字加總之後相除,接著把這樣的數字再去跟其他月份的數字作比較。
一月和二月的平均銷售額,實際應用場景
假設你有一張銷售數據表,包含 [訂單日期] 和 [銷售額] 兩欄。這段公式可能用於:
分析一月和二月的平均銷售額(例如冬季促銷效果),而其他月份則顯示總銷售額。
按年份標準化一月和二月的數據(因為它們被平均),以便與其他月份進行比較。
如下圖示意:2021年1月實際業績22,638加上2021年2月業績36,805除以2,等於29,721。

在excel中這類型表計算式很好實現的,但如果要直接在 Tableau 中計算就要去理解以下幾個關鍵的建立計算欄位的觀念:
寫 IF 函式中常出現的報錯:不能在「IF」運算式中混合彙總和非彙總比較或結果
解決方法:外包一層 ATTR函數
Fixed函數核心精神:用於計算指定維度範圍內的聚合值,並忽略視圖中其他篩選條件或維度的影響
公式詳解
//計算式命名為:avg_sales_of_1_2
IF ATTR(MONTH([訂單日期]))=1 or ATTR(MONTH([訂單日期]))=2 THEN
AVG({ FIXED YEAR([訂單日期]):SUM(
IF MONTH([訂單日期]) IN (1,2) THEN [銷售額]END
)}/2)
ELSE SUM([銷售額])END以下內容將逐步解釋這段 Tableau 公式,觀念相當重要。
這段公式是一個條件計算,主要用於根據訂單日期的月份來計算銷售額的平均值。
---
公式全文
IF ATTR(MONTH([訂單日期]))=1 or ATTR(MONTH([訂單日期]))=2 THEN
AVG({ FIXED YEAR([訂單日期]):SUM(
IF MONTH([訂單日期]) IN (1,2) THEN [銷售額] END
)}/2)
ELSE SUM([銷售額]) END1. 條件部分
IF ATTR(MONTH([訂單日期]))=1 or ATTR(MONTH([訂單日期]))=2 THENMONTH([訂單日期]):從 [訂單日期]欄位中提取月份(1 表示一月,2 表示二月,依此類推)。
ATTR():這是一個聚合函數,表示「屬性」。它用於確保 MONTH([訂單日期]) 在該層級上返回單一值。如果數據有多個值,它會強制要求聚合。
條件:檢查當前 [訂單日期]的月份是否為 1(一月)或 2(二月)。
如果條件成立(即月份是一月或二月),執行 THEN 後面的計算;否則,執行 ELSE 後的計算。
2. THEN 分支(一月或二月的計算)
AVG({ FIXED YEAR([訂單日期]):SUM(
IF MONTH([訂單日期]) IN (1,2) THEN [銷售額] END
)}/2)這部分計算一月和二月的銷售額平均值,並按年份分組。分解如下:
(1) 內層 IF 條件
IF MONTH([訂單日期]) IN (1,2) THEN [銷售額] END檢查 [訂單日期] 的月份是否在一月(1)或二月(2)中。
如果是,返回 [銷售額] 的值;如果不是,返回 NULL(因為 END 後沒有指定其他值)。
(2) SUM()
SUM(IF MONTH([訂單日期]) IN (1,2) THEN [銷售額] END)將滿足條件的 [銷售額] 值(即一月和二月的銷售額)加總起來。
由於非一月和非二月的數據返回 NULL,SUM()`會忽略這些空值,只計算一月和二月的總和。
(3) FIXED 層級計算
{ FIXED YEAR([訂單日期]):SUM(...) }FIXED 是一種 LOD(Level of Detail,詳細層級)表達式,表示計算結果固定在某個維度層級上。
YEAR([訂單日期]):指定計算按年份分組。這意味著,對每一年的數據,計算一月和二月的 [銷售額] 總和。
綜合以上,FIXED YEAR 使得計算獨立於視圖中的其他維度,始終按年份分組。
(4) 除以 2
{ FIXED YEAR([訂單日期]):SUM(...)} / 2將每年的一月和二月銷售額總和除以 2,得到這兩個月的平均值。
(5) 外層 AVG()
AVG({ FIXED YEAR([訂單日期]):SUM(...)} / 2)AVG() ,這一步可用 SUM() 替代,它確保最終輸出是一個聚合值,符合 Tableau 的要求。
3. ELSE 分支(非一月或二月的計算)
ELSE SUM([銷售額]) END如果當前月份不是 1 或 2(即三月至十二月),則直接計算 [銷售額] 的總和。
關於潤謙

協助有穩定營運基礎但想要追求新成長動能的客戶,將企業成功經驗和員工知識自動化、資訊化、最佳化。幫助優質人力專注在新市場、新產品、新通路。
如果您對 Tableau 的導入、客製化專案、教育訓練感興趣,我們可安排專業夥伴為您做需求訪談與產品Demo,歡迎至此連結查看更多說明並提交需求,我們會盡快聯繫您:



留言