[Tableau實用技巧] 複雜的組合計算

最近做的Tableau報告裏遇到一個非常有意思的複雜組合計算。

問題描述

首先,來說一下業務邏輯。售後服務部門有兩種服務業務,第一是免費的保修服務,第二是收費的保外服務。
保修服務是指在保修期內,非客戶原因造成的損壞,則可以提供免費維修。
保外服務是指在保修期內因客戶原因造成的損壞,和保修期外一切的損壞,提供有償維修服務。
因此,

  • 保內返修率計算公式: 保內維修量 / 保修期內產品量
    所有保修維修全部來自於保修期內產品,因此分母爲保修期內產品量。

  • 保外返修率計算公式:保外維修量 / (保修期內產品量+保修期外的產品量)
    保外維修可能來自於保修期外產品量,也可能來自於保修期內(如產品損壞是客戶自己造成的),因此分母是保修期內產品量加上保修期外的產品量。

  • 總返修率 :(保內維修量+保外維修量) / (保修期內產品量+保修期外的產品量)
    總返修率是總返修量除以保修期內加保修期外總產品量。

數據格式爲:

產品 保修狀態 維修量 產品保有量
產品 A 保內 80 4500
產品 A 保外 180 8600
產品 B 保內 36 500
產品 B 保外 78 3400
產品 C 保內 160 4500
產品 C 保外 210 6700

產品A的保內返修率 = 保內維修量 / 保修期內產品量 = 80 / 4500 = 1.78%
產品A的保外返修率 = 保外維修量 / (保修期內產品量+保修期外的產品量) = 180 / (4500 + 8600) = 1.37%
產品A的總返修率 = (保內維修量+保外維修量) / (保修期內產品量+保修期外的產品量)= (80+180) / (4500 + 8600) = 1.98%

實現方法

使用Tableau時你會發現,這個問題不能簡單的用聚合公式來計算。我的解決方案如下:
定義一個變量 Failure Rate Type, 數據類型是String,值有三種: INW, OOW, TOTAL. 分別對於現實值 “保修內返修率”,“保修外返修率”, ‘“總返修率’。
在這裏插入圖片描述
定義新字段**[計算 - 維修量]**的計算公式如下:

IF [Failure Rate Type] = 'INW'  AND [保修狀態] = '保內' THEN [維修量]
ELSEIF [Type] = 'OOW' AND [保修狀態] = '保外' THEN [維修量]
ELSEIF [Type] = 'TOTAL' THEN [維修量]
ELSE 0
END

定義新字段**[計算 - 產品保有量]**的計算公式如下:

IF [Failure Rate Type] = 'INW'  AND [保修狀態] = '保內' THEN [產品保有量]
ELSEIF [Type] = 'OOW' AND ([保修狀態] = '保內' OR [保修狀態] = '保外') THEN [產品保有量]
ELSEIF [Type] = 'TOTAL' THEN [產品保有量]
ELSE 0
END

這兩個字段會根據[Failure Rate Type]的不同選擇不同的維修量值和產品保有量值。現在,我們只要定義**[返修率] = sum([維修量])/sum( [計算產品保有量] )**,並且設置“Show Parameter Control” 就可以使用[Failure Rate Type] 控制來得到我們想要的結果了, 即使是使用聚合運算也沒有問題。

  • 當[Failure Rate Type] = ‘INW’時, 這兩個字段以及**[返修率]**呈現出來的結果,以及按產品各級聚合結果如下。
產品 保修狀態 維修量 產品保有量 計算 - 維修量 計算-產品保有量 返修率
產品 A 保內 80 4500 80 4500 =80/4500
產品 A 保外 180 8600 0 0 -
產品 A 總共 * 360 13100 80 4500 = 80/4500
產品 B 保內 36 500 36 500 = 36/500
產品 B 保外 78 3400 0 0 -
產品 B 總共 * 114 3900 36 500 = 36/500
產品 C 保內 160 4500 160 4500 = 160/4500
產品 C 保外 210 6700 0 0 -
產品 C 總共 * 370 11200 160 4500 = 160/4500
總共 * 844 28200 276 9500 = 276/9500
  • 而當[Failure Rate Type] = ‘OOW’時, 這兩個字段以及**[返修率]**呈現出來的結果如下。
產品 保修狀態 維修量 產品保有量 計算 - 維修量 計算-產品保有量 返修率
產品 A 保內 80 4500 0 4500 -
產品 A 保外 180 8600 180 8600 =180/8600
產品 A 總共 * 360 13100 180 13100 =180/13100
產品 B 保內 36 500 0 500 -
產品 B 保外 78 3400 78 3400 =78/3400
產品 B 總共 * 114 3900 78 3900 =78/3900
產品 C 保內 160 4500 0 4500 -
產品 C 保外 210 6700 210 6700 =210/6700
產品 C 總共 * 370 11200 210 11200 =210/11200
總共 * 844 28200 468 28200 = 468/28200
  • 當[Failure Rate Type] = ‘OOW’時, 這兩個字段以及**[返修率]**呈現出來的結果如下。
產品 保修狀態 維修量 產品保有量 計算 - 維修量 計算-產品保有量 返修率
產品 A 保內 80 4500 80 4500 =80/4500
產品 A 保外 180 8600 180 8600 =180/8600
產品 A 總共 * 360 13100 360 13100 =360 /13100
產品 B 保內 36 500 36 500 = 36/500
產品 B 保外 78 3400 78 3400 =78/3400
產品 B 總共 * 114 3900 114 3900 =114/3900
產品 C 保內 160 4500 160 4500 = 160/4500
產品 C 保外 210 6700 210 6700 =210/6700
產品 C 總共 * 370 11200 370 11200 =370 /11200
總共 * 844 28200 844 28200 = 844 /28200
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章