Excel函数和VBA技术在财务工作中的应用比较
Excel在现代财务工作中是必不可少的应用软件,它在表格制作、统计处理等财务工作中的作用至关重要,利用Excel函数还可以对相关数据信息进行快速精确的计算。掌握了Excel函数,可以大幅提高财务人员的工作效率。但是利用Excel函数处理数据的缺点是每一步都需要人工操作和控制,对重复性的工作比如计算个人所得税每次都要重复去做,所以用Excel函数来计算个人所得税效率相对较低。Excel VBA能够将重复的工作编写成程序,不仅能够提高效率,还能避免人为操作的错误。本文通过Excel 函数和VBA编制个人所得税函数的实际对比,让财务人员认识VBA的强大功能,激发财务人员利用VBA技术编制实用函数,完善Excel函数的不足,提高工作效率。
一、个人所得税计算方法的概述
(一)个人所得税的计算公式
个人所得税=(月收入-三险一金-个税起征点)×税率-速算扣除数,其中“月收入-三险一金-个税起征点”通常被称为“应纳税所得额”。月收入为一个月内发放的工资奖金加班等工资性收
入;三险一金为养老保险、医疗保险、失业保险、住房公积金(另外属于五险一金的工伤保险和生育保险只有单位承担,不涉及到个人部分);新个税征收方法已于2011年9月1日起施行,税法规定的起征点为3 500元;分级税率从3%到45%,有7个等级,相应速算扣除数从0到13 505。
(二)Excel中用于计算个人所得税的常用方法
1.利用Excel函数来计算。在现实财务工作中,有关个人所得税的计算方法较多,利用Excel 函数计算个人所得税常用的方法有以下三种:(1)IF函数嵌套计算方法;(2)LOOKUP函数计算方法;(3)MAX函数计算方法。
2.利用VBA技术来计算。VBA是Visual Basic的一种宏语言,是Visual Basic的一个子集,VBA不同于VB,VBA要求有一个宿主应用程序才能运行(即需要在Excel等软件的运行下才能运行),是微软开发出来在其桌面应用程序中执行通用的自动化任务的编程语言。通常意义上的VBA就是在Office中包含着的一种加强Office功能的Basic语言。财务人员可以根据自己的个性化需求,自行编写函数进行复杂数据的处理。个人所得税计算是财务人员日常工作之一,用VBA技术来实现个人所得税的计算,可弥补Excel函数的不足,提高工作效
率。
二、Excel函数和VBA技术在计算个人所得税中的具体应用
在财务实际工作中,我们会碰到两种计算情况,第一种,直接计算应税月收入的应纳税金额,也就是个人所得税部分由雇员自己负担;第二种,就是根据税后的工资所得返算应纳税金额,也就是雇主为其雇员负担个人所得税,如何通过Excel达到计算的目的呢?
(一)利用Excel函数来计算个人所得税
1.由雇员自己负担个人所得税的方法。
(1)以IF函数嵌套的计算方法。在工作表A2输入公式=ROUND(IF(A1>=80000,A1*0.45-13505,IF(A1>=55000,A1*0.35-5505,IF(A1>=35000, A1*0.3-2755,IF(A1>=9000, A1*0.25-1005,IF(A1>=4500,A1*0.2-555,IF(A1>=1500,A1*0.1-105,IF(A1>=0, A1*0.03,0))))))),2)。其中A1为月收入扣除三险一金(养老保险、医疗保险、失业保险、住房公积金)、个人所得税起征点之后的金额,即应纳税所得额,其他的数据对应前面提到的个人所得税税率、速算扣除数,另外ROUND是保留数
值小数点的函数,在这里小数点保留两位到分。
(2)LOOKUP函数计算方法。在工作表A2输入公式= ROUND(LOOKUP(A1,{0,1500,4500,9000,35000,55000,80000},A1*{0.3,0.1,0.2,0.25,0.3,0.35,0.45}-{0,105,555,1005,2755,5505,13505}),2)。公式中字母数字含义同前。
(3)MAX函数计算方法。在工作表A2输入公式= ROUND(MAX (A1*{0.3,0.1,0.2,0.25,0.3,0.35,0.45}-{0,105,555,1005,2755,5505,13505}),2)。其中公式中字母数字含义同前。
2.雇主为其雇员负担个人所得税的方法。
(1)以IF函数嵌套的计算方法。在工作表A2输入公式= ROUND(IF(A1>=57505,( A1-13505)/(1-45%)*0.45-13505,IF(A1>=41255,( A1-5505)/(1-35%)*0.35-5505,IF(A1>=27255,( A1-2755)/(1-30%)*0.3-2755,IF(A1>=7755,( A1-1005)/(1-25%)*0.25-1005,IF(A1>=4155,( A1-555)/(1-20%)*0.2-555,IF(A1>=1455,( A1-105)/(1-10%)*0.1-105,IF(A1>=0, A1/(1-3%)*0.03,0))
))))),2)。其中A1为税后的工资所得扣除三险一金(养老保险、医疗保险、失业保险、住房公积金)、个人所得税起征点之后的金额,其他的数据对应前面提到的个人所得税税率、速算扣除数,另外,ROUND函数同前。 (2)LOOKUP函数计算方法。在工作表A2输入公式= ROUND(LOOKUP(A1,{0,1455,4155,7755,27255,41255,57505},(A1-{0,105,555,1005,2755,5505,13505})/(1-{0.0.03,0.1,0.2,0.25,0.3,0.35,0.45})-A1),2) 。公式中字母数字含义同前。
(3)MAX函数计算方法。在工作表A2输入公式= ROUND(MAX((A1-{0,105,555,1005,2755,5505,13505})/(1-{0.0.3,0.1,0.2,0.25,0.3,0.35,0.45})-A1,),2)。公式中字母数字含义同前。
vba编程技巧 (二)利用VBA技术来计算
在进入Excel程序以后,点击菜单“工具”→“宏”→“VisualBasic编辑器”进入到VBA的编辑器。先插入模块,再插入公式,然后在此函数中,按现行的个人所得税要求,录入个人所得税的计算方法。
其中算税基数为月收入扣除三险一金(养老保险、医疗保险、失业保险、住房公积金)之后的金额,其他的数据对应前面提到的起征点、个人所得税税率、速算扣除数。
如一个雇员的收入在扣除五险一金后的金额是6 000元,个人所得税是雇员自己负担,回到Excel工作表,任意在单元格录入“=tax(6000, 3500, 1)”,敲回车键,则显示应交的个人所得税为145元。如一个雇员的收入在扣除五险一金后的金额是6 000元,个人所得税是雇主负担,回到Excel工作表,任意在单元格录入“=tax(6000, 3500, 2)”,敲回车键,则显示应交的个人所得税为161.11元。
三、两种方法的比较
Excel中利用函数计算个人所得税在工作簿中人员数量较少时还是比较容易的,但当人员很多,手工操作就非常困难费事了,主要体现在以下几点:(1)IF分支语句函数是经过多层嵌套、多层判断来达到个人所得税的计算。由于分支太多,公式冗长、繁琐,可读性很差,不易于管理,除了自己之外别人可能很难理解,没有体现出Excel的优越性。(2)通过利用LOOKUP函数在个税表的定位获取相应的个人所得税税率和速算扣除数,算出个人所得税,此方法虽然直观,但数据的准确性容易被破坏。(3)MAX函数计算方法每次计
算都需要做相似的操作,增加了重复操作。
实际工作的要求千变万化,仅使用Excel内置函数常常不能圆满地解决问题。VBA编制个人所得税函数的引入能避免以上问题的发生,主要优势体现在以下两方面:(1)计算快速准确;当我们需要求出某个应税月收入时,我们只需要套用“tax(算税基数, 起征点, 计算方法)”公式就可以轻易求出应纳税金额,极大地提高了在工资表中计算每个员工所得税的效率。(2)通用性好,提供了应税起征点的选择,可以设置不同的应税起征点来计算个人所得税。已编制好的VBA函数,使用时只要加载宏程序就行,使得该函数有很强的通用性。VBA编程简单、数据引用处理便捷,而且还能在实际工作中满足用户的个性化需求。
四、结束语
Excel函数和VBA技术都是财务工作中提高工作效率的有效手段,实务中要经常根据实际情况综合采取以上的方法。在实际工作中,财务人员利用Excel函数较多,但Excel VBA可以实现更多功能,将使Excel变得更智能,也能够大幅提高Excel在财务工作中的应用深度和广度,从而进一步为财务人员提高工作效率减少劳动强度。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论