他最后一次工资涨到多少?2个方法快速搞到【Excel教程】

这位粉丝的问题是表中记录了每一个员工多次薪资调整信息,现在需要根据姓名来查找最终的薪资状况。(VLOOKUP查找数据的时候,默认是从上往下查找,找到第一个符合条件的数据后,就不会再继续往下查找)

如上表通过函数公式VLOOKUP(K2,A:E,5,0)查找秦英邦对应薪资调整记录,返回的是第一次调整后的薪资。现在的需求是返回员工最终的薪资,也就是表中的E6单元格。 
(本文的数据源是默认的按姓名和时间顺序排列的,所以只需要找出每个姓名的最后一次记录,如果大家在实际工作中记录的表格是乱序的,可以先用“排序”功能按姓名和时间排序,再进行下方的操作)

【解决方案一】

根据表中数据可以看出员工薪资调整是按照顺序的,有章可循。我们可以通过INDEX结合数组公式完成查找。

通过数组公式

INDEX(E:E,SMALL(IF(A:A=K2,ROW(A:A),65536),COUNTIF(A:A,K2)))即可完成最后一行数值查找。(输入公式后,按shift+ctrl+enter结束

函数公式解析:

INDEX函数通过行数来返回对应单元格的数值,index(E:E,6)就表示返回E列中第6行的数值。所以上方的公式中,第二参数使用了SMALL函数来得到同一个人最后一次工资调整的行号。

1、第一个参数E:E就是表示返回E列的数值。

2、第二个参数SMALL(IF(A:A=K2,ROW(A:A),65536),COUNTIF(A:A,K2))返回数组中最大的行号。

ROW(A:A)用于返回A列的行号。

IF(A:A=K2,ROW(A:A),65536)通过IF判断A列中的姓名是否等于K2单元格,如果等于则返回对应的行号,否则返回65536(无实意,表示无限大)。

COUNTIF(A:A,K2)部分是统计K2单元格中姓名在A列数据中出现的次数。

SMALL(IF(A:A=K2,ROW(A:A),65536),COUNTIF(A:A,K2))=SMALL({2、3、4、5、6},5),返回数组中第5小的值,也就是最大值行号6。

【解决方案二】

通过函数公式LOOKUP(1,0/(K2=A:A),E:E)即可返回员工对应的最终薪资。

函数公式解析:

(1)用K2单元格依次与A列中的数据匹配,如果相同则返回TURE,如果不同则返回FALSE。在运算过程中TRUE为1,FALSE为0。

以秦英邦为例,在M2单元格输入=$K$2=A2,鼠标放置在M2单元格右下角,向下拖动填充至M19单元格。 K2单元格依次与A列中所有姓名进行匹配,相同则返回TRUE,不相同则返回FALSE,如下图所示:

然后在用0除以M列中的结果,由于四则运算中TRUE表示1,FALSE表示0,所以就会得到0或者#DIV/0! 两种结果。

(2)根据lookup查询规则,如果第1参数的数值大于第2参数中的最大值,那么就定位到第2参数最后一个数值所在行(错误值不参入),然后返回该行中第3参数(E列)的值。

今天的课程就到这里,如果大家还有更简单的方法,欢迎留言分享!大家想看什么样的教程,也可以留言哟,留言一经采用,就赠送一套99元的免费课程!

如果您想要本文配套的练习课件学习,又或者需要全套Excel入门视频教程学习,请加入QQ群:316492581下载。

温馨提示:

部落窝教育 6.18年中特惠!几乎不敢想象的冰点优惠活动,视频教程买一套送一套。比如买Excel送Word、买PS送AI或者CDR,买PR送AE等等,自己根据需要任意组合,平常花50元买一套教程,现在花50元可以买两套教程,下单立即开始学习!

除了视频教程,还有直播课等着大家学习。不多说了,伙伴直接看海报详情吧!

转载请联系授权!

(0)

相关推荐