今天的这篇文章是函数vlookup系列的第六篇文章,也是小编暂时写的关于函数vlookup运用的最后一篇文章。今天这篇文章主要内容有两项:一、通过实例的形式讲述怎样将函数vlookup与函数if充分结合,从而解决现实问题。二、通过实例介绍函数vlookup的兄妹函数hlookup的用法。
在之前的五篇文章中,我们先后介绍了函数vlookup的基本用法——即函数vlookup的精确匹配,然后介绍了函数vlookup的模糊匹配用法,还有关于函数vlookup与通配符联合运用的方法,最后介绍了当函数vlookup遇到数字格式问题时的解决方法。今天我们接下来要讲述的实例一便是将函数vlookup的模糊匹配用法与函数if充分结合,从而轻松计算出个人所得税。(对于函数vlookup的模糊匹配用法感兴趣的朋友可以看完该篇文章之后参考文章有趣但又现实的函数vlookup之模糊匹配用法)
咱们废话不再多说,直接实例讲解阶段。
实例一:我们现在有这样一个excel工作表,里面一共有两张表。第一张表是一个数据源表,里面一共有四项内容,分别是级别、应纳税所得额(元)、税率和速扣数(元),下面附有相关数据;第二张表让我们计算个人所得税,具体有两项内容,分别是税前月薪和个人所得税,其中税前月薪一栏为已知的内容,现在就要求我们基于第一张表的数据源和第二张表的税前月薪,将函数vlookup的模糊匹配用法与函数if充分结合,从而计算出个人所得税(注:这里的个人所得税的起征点为3500元)excel工作表具体如下图所示:
问题分析:由于这个比以往案例更为复杂,我们先对其中两个关键问题进行简要的分析,这样以便于大家理解本题。
问题一:函数vlookup的模糊匹配用法与函数if充分结合时,函数式的基本框架是怎样的?
首先函数if的基本语法形式是:IF(logical_test,[value_if_true],[value_if_false]),其中第一参数logical_test为判定条件,那么本题当中的判定条件可以设置为F3>3500;第二参数[value_if_true]是满足F3>3500时的计算结果,在本题当中暂且看做“需要计算的个人所得税”;第三参数[value_if_false]是不满足F3>3500时的计算结果,在本题当中是“0”。那么本题函数式的基本框架就是IF(F3>3500,“需要计算的个人所得税”,0)。
问题二:问题一中函数式的基本框架中的“需要计算的个人所得税”,怎样用函数vlookup的模糊匹配用法来实现?
上图中有一个重要的数据——速扣数,理解它是解决这个问题的关键。速扣数的实质作用就是帮助我们快速计算出个人所得税。现在我们通过实际数据来理解一下速扣数,假设路人甲的税前工资为20000元,现在我们来计算一下路人甲的个人所得税。
传统做法:1500*3%+3000*10%+4500*20%+11000*25%=3995
利用速扣数计算:20000*25%-1005=3995,由此可见,速扣数确实帮了我们大忙。“需要计算的个人所得税”=税前月薪*税率-速扣数。函数式的基本框架进一步得到优化:IF(F3>3500,税前月薪*税率-速扣数,0)
最后我们来看看具体做法:首先我们在G3单元格输入
“=IF(F3>$B$9,VLOOKUP(F3,$A$1:$D$8,3,1)*F3-VLOOKUP(F3,$A$1:$D$8,4,1),0)”,然后我们按回车键,就能得到3000元月薪所对应的个人所得税了,接着通过填充柄拖拽的方式向下拖拽,我们就能到其他金额的月薪所对应的个人所得税。具体操作可参考下图:
解释:函数式“=IF(F3>$B$9,VLOOKUP(F3,$A$1:$D$8,3,1)*F3-VLOOKUP(F3,$A$1:$D$8,4,1),0)”中的第二参数“VLOOKUP(F3,$A$1:$D$8,3,1)*F3-VLOOKUP(F3,$A$1:$D$8,4,1)”表达的意思正是“税前月薪*税率-速扣数”,其中函数vlookup中的第四参数“1”表示所使用的方法便是函数vlookup的模糊匹配用法。结合函数vlookup模糊匹配的特性进行理解:它所查找的数据是比第一参数小且最接近第一参数,而个人所得税纳税也是要分段进行的。(对函数vlookup模糊匹配不熟悉的朋友可以通过上文第二段的链接去查看有关文章)
注意点:由于本案例中函数式较长,所以在写函数式时务必要有清晰的思路(小编帮你整理好了哈)。另外上述函数式第二参数中的”$A$1:$D$8“和第一参数中的”$B$9“必须为绝对引用,因为”3500“和条件区域否则在使用填充柄进行拖拽的过程中个人所得税的结果会出现错误。
实例二:该实例中有这样一个excel工作表,其中有两张表。第一张表是一个数据源表,里面有三项内容,分别是客户ID、公司名称和联系人姓名,并附有相关数据,但是这些数据是呈行排列的。第二张表中有两项内容,分别是客户ID和联系人姓名,其中客户ID信息已知而联系人姓名位置,现在就要求我们根据第一张表中的数据和第二张表里面客户ID,利用函数hlookup来匹配出相应的联系人姓名信息。excel工作表具体内容如下图所示:
函数hlookup与函数vlookup的语法形式十分相似,即"HLOOKUP(lookup_value,table_array,row_index_num,range_lookup)",函数hlookup是横向查找函数,与函数vlookup相似而有不同的地方在于第一参数lookup_value必须在第二参数table_array的第一行中查找到,第三参数row_index_num指要进行匹配的行数,而非列数。
具体操作方法:首先我们在G3单元格输入“=HLOOKUP(A6,$A$1:$I$3,3,0)”,然后我们按回车键,就能得到客户ID是BERGS所对应的联系人姓名了,接着通过填充柄拖拽的方式向下拖拽,我们就能到其他BERGS所对应的联系人姓名。具体操作可参考下图:
今天的分享到这里也就结束了,觉得对你们有用的小伙伴们请点赞关注吧!您的鼓励是我前进的动力,也希望擅长运用办公软件的小伙伴们能够不吝赐教,积极的留言,教会小编更多的excel运用的小技巧,欢迎一起来探讨学习!!!