有一知名大公司的Excel面试题,要求提取左侧表格中每位客户的最后一次拜访记录: 上图左侧表中姓名是排好序的,这一下降低了题目的难度。所以今天我们就假设这些姓名不连续,然后设置查找公式。 以前兰色也分享过这个题目的公式,用的是Lookup函数。现在已经是2020年,Excel也新增了很多好用的查找函数,所以今天兰色要用更多的公式搞定它。 公式1:Lookup =LOOKUP(1,0/(A$2:A$101=E3),C$2:C$101) 兰色注:用最经典“1,0/”结构查询返回最后一个值。 公式2:Max函数 {=MAX((A$2:A$101=E3)*C$2:C$101)} 兰色注: 先用A列和E3对比,再* C列的值,让不符合条件的变成0,留言符合条件的日期,最后求最大值。如果你不是office365版本,需要用数组形式输入该公式。(按Ctrl+shift+enter) 公式3:Index+match {=INDEX(C:C,MATCH(1,0/(A$1:A$101=E3)))} 兰色注:你以为只有Lookup可以“1,0”吗?No! Match也可以。 公式4:Xlookup函数 =XLOOKUP(E3,A:A,C:C,,,-1) 兰色注:当Xlookup第6个参数为-1时,表示从后向前查。 公式5:Filter +Max =MAX(FILTER(C$2:C101,A$2:A101=E3)) 兰色注:Filter函数可以筛选出所有符合条件日期,然后用MAx提取最大值。 兰色说:当其他函数都在用技巧完成最后一次查找时,Xlookup用的只是基本功能。不得不说Xlookup函数太强大了。 |
|
来自: 5jia5 > 《Excle & VBA》