最近,关于个税起征点调整的信息,引起很多人关注,毕竟和我们每个人都相关。
按我的工资,要缴纳的个税下降了多少?幅度是多少?
不同的工资水平,要缴纳的个税下降了多少?幅度是多少?
这些问题,列表计算固然可以,但如果能够用动态图表模型来交互演示,就会直观清晰很多。用户选择或输入工资额,图表显示调整前后的应纳税额,下降的额度和幅度,一目了然。
但税率表里,3500到80000的范围跨度太大,如果全程画出来,低收入部分的变化幅度被压缩得太小,不便于观察,实际上这部分的下降幅度最大。
绝大部分人的工资都处于其中的一小段范围,希望观察自己对应的那一小段即可。因此,我们考虑将图表绘制的收入范围也做成动态的,以用户所选的工资水平为最大范围,让图表更清晰。这个是本例的难点。动图效果如下。
本例是Excel动态图表模型的高阶运用,有一定难度,相关知识和技巧可来自于《让你的图表动起来》课程。
制作思路
略
制作步骤
1、准备个税计算速查表。
根据工资计算个税,网络有流传极简的公式,不过涉及数组计算,常人并不易于理解。我们按税法的税率表来,相应地使用最常规的查找计算方法。
根据税法税率表,准备如下的新旧速查表,分别命名为速查表1和速查表2,便于后续引用。其中,在阈值数字上加0.01,让vlookup模糊查找时正确对应税率。
本次2018年个税改革调整,包括起征点、税率级差、和税前扣除项,表中T列反映了级差的变化,本例未考虑税前扣除项。
2、准备作图数据。
为了使用最少的数据量和更准确的数据点,我准备采用关键点坐标绘制连线的散点图来得到曲线。关键点的选择,除了新旧标准里的分档阈值,加上人们习惯关注的10000、20000这样的数据点,即图中的B列。
C、D列为关键点工资对应的调整前的应纳税所得额和应纳税额,E、F列为关键点工资对应的调整后的应纳税所得额和应纳税额。其中,E、F的公式如下:
E5:=MAX(B5-$E$2,0)
F5:=E5*VLOOKUP(E5,速查表2,2,1)-VLOOKUP(E5,速查表2,3,1)
就是根据税法公式来的: 应纳税额 =(工资 - 扣除额)* 税率 - 速算扣除数。注意vlookup的最后一个参数为1,表示模糊查找。
G、H列为调整前后的变化额度和幅度。
3、制作静态图表。
用B、D列数据作为x、y数据做带连线的散点图,再添加B、F列作为x、y数据的散点图,得到两条折线图,所反映的是新旧标准下,应纳税额随工资变化的趋势,二者之间的差距就是本次个税改革下调的部分。
4、增加突出当前工资数据点的交互功能。
提供一个单元格,让用户输入自己的工资,查看在图中对应的位置。为了操作方便,这里使用微调按钮来调整。微调按钮只支持到30000的范围,因此过渡一下,微调按钮的范围设置为35~80,步长5,换个单元格乘100,就是3500~80000的范围,步长500了。
根据这个x值,我们要在图表中对应位置画一条竖线,来标示当前工资及其对应的应纳税额。
这条竖线有5个点,最上的为目前范围内最大的y值,利用来显示当前工资额。第2个点是调整前的应纳税额,第4个点是调整后的应纳税额,从2到4段绘制实线的箭头,标示下降的额度。第3个点是2和4即调整前后点的中间点,利用来标示下降的百分比幅度。第5个点是0。看下图。
按以上思路,准备如下的数据。
将这组x、y数据添加到图表,并按例图格式化,添加数据标签,链接到相应的单元格。
现在,调整工资处的微调按钮,这条竖线应该左右移动,动态标示。
5、调整为自适应的工资范围。
目前,图表的工资范围是到80000,低收入部分的变化被压缩到很小,不便于观察。我们考虑根据用户选择的工资水平,动态计算图表的绘制范围,例如输入工资为8000,那么图表只需绘制到10000即可。
这个最大x值的计算,按当前工资以万为单位向上取整:
N2:=CEILING(K2,10000)
对应到数据源表的第几行,也就是图表需要绘制到数据源的第几行:
N3:=COUNTIF(B5:B21,"<="&N2)
根据这个第几行,定义如下的动态名称,
dy_x
=OFFSET(calc!$B$5,0,0,calc!$N$3,1)
dy_y_3500
=OFFSET(calc!$D$5,0,0,calc!$N$3,1)
dy_y_5000
=OFFSET(calc!$F$5,0,0,calc!$N$3,1)
将图表中两条折线散点图的数据源,替换为这几个动态名称,图表就会变为自适应范围的动态图表。