第72天知识点:阶梯式计费
我们日常的水电费都是阶梯式计费方式。
什么是阶梯式计费呢?
举个简单的例子,大家就能明白了。
假如这是我国目前居民电价计费标准。
按照国家规定电费计算方法:
执行居民阶梯电价总电费=第一档电费+第二档电费+第三档电费。
去年我一共使用了9000度电,实际应该缴纳电费:
第一档电费:2880*0.4883=1406.304元
第二档电费:(4800-2880)*0.5383=1033.536元
第三档电费:(9000-4800)*0.7883=3310.86元
总电费=1406.304+1033.536+3310.86=5750.7元
这就是阶梯式计费。
这种计算方式其实很常见,比如咱们的个税缴纳方式,一些提成的计算等等。
在FineBI中,如何实现这种阶梯式计费的计算呢。
我们通过一个案例来看一看。
我们准备了两张数据表:
【居民用电计费标准】:这张表记录了不同用电区间对应的电费价格。
【居民用电明细表】:这张表记录了不同居民的年度用电量。
需要计算出每位居民应缴纳的电费。
(1)【居民用电计费标准】数据集处理
1)新增列-拆分行列,通过这个方式获得不同用电区间对应的用电量上下限,便于后面判断实际用电量属于哪一个用电区间。
结果如下:
2)新增公式列【年用电量下限】,因为第三阶电费区间与其它两个阶梯展示形式不一致,拆分行列后,仍然是“>4800”的展示形式,所以我们需要特殊处理一下,便于后面运算比较。
结果如下:
3)新增公式列【年用电量上限】,这一步和第2步的目的一样,因为拆分行列后获得的上限是空值,所以我们需要特殊处理一下,给空值一个999999999的极大值(这里的数值没有特殊意义,你也可以使用其他值代替,只要最后能达到效果即可),便于后面运算比较。
结果如下:
4)字段设置,第2、3步计算的结果是文本格式,无法参与后面计算,所以我们给它改成数值格式。
结果如下:
5)新增公式列【辅助列-合并依据字段】,为了与后面进行左右合并添加的辅助列,数值1没有实际意义,你也可以使用任意数值或文本代替。
结果如下:
(2)【居民用电明细表】数据集处理
1)新增公式列【辅助列-合并依据字段】,需要注意的是,这里输入的内容一定要与上面的第5步输入的内容一致。
结果如下:
2)添加【左右合并】,左合并【居民用电明细表】,将【居民用电明细表】中的字段匹配过来。
结果如下:
3)新增条件标签列【该区间是否计费】,不同的用电量对应不同的用电区间,但上一步左合并的结果是每一位居民的用电量都对应了三个阶梯的用电区间,所以这里我们需要判断一下对于每位居民来说,哪些用电区间是需要计费的,哪些区间是不用计费的。
结果如下:
4)过滤,只保留需要计费的区间即可。
结果如下:
5)新增公式列【该区间对应计费电量】,因为是阶梯计费,所以需要计算每个区间的实际用电量。
结果如下:
6)新增公式列【需缴纳电费】,计算出不同用电区间对应的电费是多少。
结果如下:
7)分组汇总,计算出每位居民需要的总电费是多少。
结果如下:
不仅限于电费,这种方法同样适用于各种需要阶梯计费的场景。
感兴趣的小伙伴可以自己操作一下哦~ |