最近做的Tableau报告里遇到一个非常有意思的复杂组合计算
首先,来说一下业务逻辑售后服务部门有两种服务业务,第一是免费的保修服务第二是收费的保外服务。
保修垺务是指在保修期内非客户原因造成的损坏,则可以提供免费维修
保外服务是指在保修期内因客户原因造成的损坏,和保修期外一切嘚损坏提供有偿维修服务。
-
保内返修率计算公式: 保内维修量 / 保修期内产品量
所有保修维修全部来自于保修期内产品因此分母为保修期内产品量。 -
保外返修率计算公式:保外维修量 / (保修期内产品量+保修期外的产品量)
保外维修可能来自于保修期外产品量也可能来自於保修期内(如产品损坏是客户自己造成的),因此分母是保修期内产品量加上保修期外的产品量 -
总返修率 :(保内维修量+保外维修量) / (保修期内产品量+保修期外的产品量)
总返修率是总返修量除以保修期内加保修期外总产品量。
使用Tableau时你会发现这个问题不能简单的用聚匼公式来计算。我的解决方案如下:
定义一个变量 Failure Rate Type, 数据类型是String值有三种: INW, OOW, TOTAL. 分别对于现实值 “保修内返修率”,“保修外返修率” ‘“总返修率’。
定义新字段**[计算 - 维修量]**的计算公式如下:
定义新字段**[计算 - 产品保有量]**的计算公式如下:
控制来得到我们想要的结果了 即使是使用聚合运算也没有问题。
- 当[Failure Rate Type] = ‘INW’时, 这两个字段以及**[返修率]**呈现出来的结果以及按产品各级聚合结果如下。
0 | 0 |
0 | 0 |
0 | 0 |
0 |
0 |
0 |