Excel公式技巧62:查找第一个和最后一个匹配的数据
excelperfect
在使用VLOOKUP函数查找数据时,如果多于一个匹配值,如何获取第一个匹配的值或者最后一个匹配的值。这取决于两个因素:是执行精确匹配查找还是近似匹配查找;数据是否排序。
如下图1所示的工作表。
图1
我们使用公式:
=VLOOKUP(E3,$B$3:$C$9,2,FALSE)
来查找“香蕉”的价格。将VLOOKUP函数的第4个参数的值设置为FALSE,即精确匹配,此时,无论数据是否排序,都将返回第一个找到的匹配值。
如果将数据进行排序,并执行近似匹配查找,将会获取最后一个匹配的值,如下图2所示的工作表。
图2
我们使用公式:
=VLOOKUP(E3,$B$3:$C$9,2)
来查找“脐橙”的价格。将VLOOKUP函数的第4个参数忽略或指定为TRUE,即近似匹配,此时返回最后一个找到的匹配值。因为执行近似匹配查找时,Excel将找到大于查找值的值并返回该值的前一个值。
如果要查找的数据没有排序,执行近似匹配查找,将不会得到正确的结果,如下图3所示。
图3
近似匹配查找的一个典型应用是,确定某范围内的值。例如,根据分数范围确定成绩等级,如下图4所示。
图4
在单元格F3中输入公式:
=VLOOKUP(E3,$B$3:$C$7,2,TRUE)
下拉至F5。
还可以使用INDEX/MATCH函数来查找多个匹配数据中的最后一个,如下图5所示。
图5
在单元格F3中的公式为:
=INDEX($C$3:$C$10,MATCH(E3,$B$3:$B$10,1))
注意,公式中MATCH函数的第3个参数设置为1,执行近似匹配查找。
LOOKUP函数也能用于查找最后一个匹配值。LOOKUP函数总是执行近似匹配,公式也相当简单,如下图6所示。
图6
如果数据没有排序,想要查找最后一个匹配的值,也可以使用LOOKUP函数,如下图7所示。
图7
当然,也可以使用INDEX/MATCH函数组合,但要使用数组公式:
=INDEX($C$3:$C$10,MATCH(2,1/($B$3:$B$10=E3),1))
如下图8所示。
图8
欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。
欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料。