查找函数在优化工资所得税计算公式中的应用
2012-11-06成兰
成 兰
(中州大学 管理学院,郑州 450044)
查找函数在优化工资所得税计算公式中的应用
成 兰
(中州大学 管理学院,郑州 450044)
在会计电算化工资核算系统中,代扣个人所得税项目是一项重要的核算内容。该项目通常的计算公式是用IF函数实现的,但是这种设计方案存在着很多弊端。文章在对个人所得税计算原理进行分析的基础上,结合Excel环境中的VLOOKUP函数的基本功能及特点,提出了优化方案,以期提高核算效率,减少操作员工作量。
查找函数;工资所得税;计算公式;优化
1.工资核算系统中代扣个人所得税的计算要点
在工资核算系统中,代扣个人所得税是一项重要的核算内容,该项目主要包含以下计算要点:
1.1 根据应发工资合计确定应纳税所得额
2011年新出台的《个人所得税法》规定,自2011年9月1日起,工资、薪金所得适用的个税免征额为3500元。因此,在具体计算时用员工的应发工资合计项(已扣除社保和住房公积金的个人缴纳金额)减去3500元基数,即为应纳税所得额。
1.2 根据应纳税所得额确定适用税率级次
新税法中规定,个人所得税(工资薪金适用)实行7级超额累进税率,如表1所示。由表1可知,全月应纳税所得被划分为7个区间,在计算工资所得税时,需要根据每位员工的应纳税所得额,确定适用税率级次。
表1 新个人所得税税率表(工资薪金适用)
1.3 在“代扣税”栏目设置税率套用公式,计算代扣个人所得税金额
在前两个计算环节的基础上,工资计算表中每位员工的“代扣税”栏目应填写的计算公式一般形式可表示为:(应发工资合计-3500)*相应级次税率-相应级次的速算扣除数。
2.工资所得税常用计算方法分析
由以上分析可知,工资所得税的计算过程中,把应纳税所得额与相应的税率级次相匹配,是最为重要的环节。在实际工作中,根据各单位的具体情况不同,工资所得税的处理方法也有所差别。大体上来看,如果单位购买了通用会计电算化软件,则只需在相应的界面下填入扣税基数即可,税率表一般是系统预置好的,如果遇到新税率调整,也可以直观地更改税率表中相应内容,系统可以自动按照新标准给出计算结果。但是对于很多小型单位来说,没有财力购买通用会计电算化软件,又需要高效地处理繁琐的工资数据,通常采用的方法是在Excel表格中设置计算模板,实现自动计算功能。
2.1 用IF函数实现的工资所得税计算公式
现有计算公式大多是采用IF(logical-test,value-if-true,value-if-false)函数实现的。其主要设计思路是,利用IF函数的逻辑选择功能,把7级税率表用6个嵌套的IF函数依次筛选出来。具体来说,在每个IF函数的第三个参数上,嵌套下一层IF函数,因为第三个参数表示“不满足”判断条件时所执行的操作,所以最外层的IF函数判断该员工是否适用税率级次1,第二层判断是否属于税率级次2,依次类推,最后一层IF函数判断是否适用税率级次7,从而实现逐级排除当前员工的应纳税所得额所属的税率级次。即,每一行工资数据表的数据都要经过“层层过滤”,才能确定所属级次。假设应纳税所得额为a,则计算公式可以表示为:
=IF(a<=0,0,IF(a<=1500,a*0.03,IF(a<=4500,a*0.1-105,IF(a<=9000,a*0.2-555,IF(a<=35000,a*0.25-1005,IF(a<=55000,a*0.3-2755,IF(a<=80000,a*0.35-5505,a*0.45-13505)))))))
2.2 用IF函数计算工资所得税的主要弊端
以上设计方案优点是逻辑简单,操作员容易理解,但是该方法同时存在着很多弊端,主要可概括为三个方面:
(1)公式设置繁琐,输入量大;
(2)IF函数的最大嵌套层数为7层,无法应对税率级数增加的情况;
(3)该方法直接把税率和速算扣除数的具体数值设置在公式中,如果税率调整,公式必须重新编写,不具有灵活性。
为了解决以上问题,需要对工资所得税计算公式进行优化设计,优化的重点是在匹配适用税率的环节,改变现有的“被动筛选”模式为“主动查找”模式。
3.利用查找函数对工资所得税计算公式的优化
3.1 优化方案的基本思路
以Excel环境中的VLOOKUP函数为例,利用查找函数进行工资所得税计算公式优化的基本思路为:用查找函数代替IF函数拉网式的逻辑选择结构,首先根据每位员工的应发工资计算出应纳税所得额,然后以该数值作为VLOOKUP函数的“查找值”,在预先设计好的税率表中自动匹配相应级次,确定该员工适用的税率及速算扣除数,最后按照工资所得税计算方法得出代扣税项目金额。
3.2 查找函数的参数设置
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)函数有四个参数:第一个参数对应被查找的对象,第二个参数是查找的范围,第三个参数是返回值所在的列号,第四个参数决定查找方式是模糊查找还是精确查找。根据VLOOKUP函数的规则,这四个参数的设置彼此关联。在设置第二个参数时,必须确保第一个参数lookup_value位于其第一列,同时,第三个参数的设置是以第二个参数所选范围为基准的。第四个参数range_lookup为一逻辑值,如果为 TRUE 或省略,函数返回近似匹配值。即,如果找不到精确匹配值,则返回“小于 lookup_value 的最大数值”;函数如进行模糊查找,要求第二个参数的第一列,或者说第一个参数所在列,必须按升序排序。这些参数设置的基本规则非常重要,也是高效、准确利用查找函数的前提。
3.3 与查找函数对应的税率表的设计
要实现以上优化方案的基本思路,税率表的科学设计是最为关键的。根据前述VLOOKUP函数参数设置要求,税率表区域对应VLOOKUP函数的第二个参数。因此,为了与其他三个参数相匹配,税率表的设计必须满足以下条件:第一,税率表查找范围的第一列必须是“一个”数值而不是数值“区间”。由于在原始税率表中,与不同级次税率对应的是应纳税所得额的区间,所以首先需要从各个级次的区间中分别找出“一个代表数值”作为查找范围的第一列。这个代表数值是确定每位员工应纳税所得额适用税率的关键值,直接关系到自动匹配结果是否正确。第二,由于用代表数值代替了连续的数值区间,一个级次只有一个代表数值,而实际工作中员工的应纳税所得额可能在给定区间中的任意位置,因此决定了查找时必须用模糊查找方式,并要求第一列数值必须从小到大排序。
笔者考察了大量已有文献资料,使用最多的一种方案是把各个级次区间的下限作为每组的代表值,这时得到的税率表如下图1所示。假设应纳税所得额存储在单元格X3,则对应的计算公式可表达为:
X3*VLOOKUP(X3,税率表1,2)-VLOOKUP(X3,税率表1,3)
公式中VLOOKUP(X3,税率表1,2)为按照X3匹配的税率,VLOOKUP(X3,税率表1,3)为速算扣除数。以某位员工的应纳税所得额2000为例,VLOOKUP(2000,税率表1,2)的返回值为0.1,VLOOKUP(2000,税率表1,3)的返回值为105。即,该员工适用10%的税率级次,速算扣除数为105。具体查找过程为:首先,从税率表1的“下限”列,查找“小于2000的最大值”,应该为1500,位于第4行(见下图1);然后根据查找函数的第三个参数设置,分别确定该行从1500所在单元格开始的第2列、第3列数值(0.1和105)为需要查找的结果。
图1 以下限作为各级次代表值
这种税率表的改造方案虽然简单易得,但是最大的缺陷是忽略了原始税率表中“上组限在内,下组限不在内”原则。例如,应纳税所得额为1500元时,应该适用3%的税率,而在该方案的税率表中,用查找函数VLOOKUP(1500,税率表1,2)返回的结果是10%。也就是说,当应纳税所得额在区间内时,这种以下限为各组代表值的税率表设计方案,能够满足模糊查找方式下“小于中的最大值”原则,找出正确的匹配税率;而对于每个级次的下组限,单纯从适用税率来说,这种改造思路是不恰当的。
图2 税率表2
为了解决以上问题,笔者提出了税率表的改进思路,主要包括两个方面:
(1)“一分钱改造法”,解决各级次代表值问题。这种税率表设计方案如图2所示,在选取各个级次应纳税所得额的“代表值”时,在各个下组限的基础上增加0.01元(新增加的第一组是减少0.01元)。虽然是小小的一分钱的改动,却同时实现了两个目标:一是把原始税率表中各组的下限排除在本级次税率之外,从而满足“下组限不在内”原则;二是在工资核算系统中应发工资精确到小数点后两位时(以元为计量单位,这与实际工作中的要求也是一致的),这个增加了0.01元的“代表值”仍然是各组中的最小值,这就与查找函数在模糊查找方式下的“小于中的最大值”原则相符合,从而把本组区间内的所有可能数值都纳入本级次税率核算范围中。
仍以上述应纳税所得额为1500元为例,在税率表2中查找过程为:首先在“代表值”列定位“小于1500元的最大值”,为0.01元所对应的组(在上表中的14行),然后在该行确定1500元适用的税率为3%,速算扣除数0。依此类推,其他下组限或组区间中的数值,其查找结果也是与实际计算要求完全吻合的。
(2)增加“小于等于零”组,以解决应发工资小于等于起征点(3500)的情况。 由于查找函数计算规则中规定,如果lookup_value 小于 table_array 第一列中的最小数值,函数 VLOOKUP 将返回错误值 #N/A,无法进行后续计算。在所得税税率匹配问题中,这一规则对应为应发工资小于等于起征点时的处理方法。在前述税率表1中,无法单独用VLOOKUP函数解决这一问题,因为如果应发工资不超过起征点,就说明应纳税所得额小于等于0,而在税率表1中,最小的下限为0,就出现了“lookup_value 小于 table_array 第一列中的最小数值”的问题。
解决途径有两种:一是不改变税率表,在VLOOKUP函数之外嵌套一个IF函数,把应纳税所得额小于等于0的情况单独处理。其结构为,IF(a<=0,0,a*VLOOKUP(a,税率表1,2))-VLOOKUP(a,税率表1,3))。二是改变税率表如图2所示,增加一组代表值“-3500.01”(该组代表值的选取是考虑了应发工资为0的极限情况,再减少一分钱得出的),用于承接应纳税所得额小于等于0的情况,这样就不需添加IF函数,仅用查找函数就可以处理所有可能的数值。
3.4 优化方案具体实现步骤
综合以上各方面的分析,利用查找函数优化工资所得税计算公式的具体步骤可总结如下:
(1)建立如图2所示的税率表,并定义税率表的查询区域(B13:D20),命名为“税率表2”;
(2)在工资计算表上设置“应纳税所得”列(X),并输入公式“W3-3500”(W3为应发工资所在位置),填充到X列的所有行;
(3)设置“代扣税”列(Y),并输入计算公式:X3*VLOOKUP(X3,税率表2,2)-VLOOKUP(X3,税率表2,3);
(4)把上述公式填充到Y列各行,得出工资计算表中所有员工当月代扣税金额。
4.总结
利用查找函数优化工资所得税计算公式的关键点在于应纳税所得额与适用税率的动态匹配,在实现过程中税率表的设计尤为重要,虽然分析过程较为复杂,但把握了要点之后实施过程非常简便。同时,优化后的计算公式具有以下优点:第一,公式结构简单,易于输入;第二,当税率发生变化时,工资所得税计算表中的公式不需改变,只需更改税率表中的级次,重新定义查找区域就能够做到“以不变应万变”,提高工资系统的核算效率。
[1]司宇佳,黄瑞芳.税法实务[M].北京:中国人民大学出版社,2010.
[2]曾英姿.税务会计实务[M].厦门:厦门大学出版社,2009.
[3]张道珍.利用Excel计算个人所得税的五种方法[J].财会月刊,2011(5).
[4]李江霞.新起征点下利用Excel轻松计算个人所得税[J].财会月刊,2011(11).
2012-04-24
成兰(1977—),女,河南武陟人,硕士,中州大学管理学院讲师,研究方向:信息管理。
F812.42
A
1008-3715(2012)04-0020-03
(责任编辑刘成贺)