俗话说,长江后浪推前浪,前浪死在沙滩上。随着EXCEL版本的不断升级,新推出了许多功能强大的公式,直接替代了我们以前冥思苦想烧脑而得的经典函数组合。随着时间的发展,这些经典公式终将消失在历史的长河中。
让我们赶紧再来重新温习一下这些经典吧!
01
一对多查询
这个组合就是著名的万金油公式。
在单元格J2中输入“=IFERROR(INDEX($B$2:$B$17,SMALL(IF(A$2:A$17=$J$2,ROW($A$2:$A$17)-1,100),ROW(A1))),"")”,CTRL+SHIFT+ENTER并向下拖曳到单元格A17即可。
思路:
利用IF函数判断区域中等于给定条件的数据,若等于,则返回行号-1;若不等于,则返回100,以屏蔽0
利用SMALL函数依次由小到大返回符合条件的数据的行号
INDEX函数查询
IFERROR屏蔽错误值
今后,你只要学会FILTER这个函数就可以了!
02
多对多查询
根据多个条件返回所对应的多个结果。
在单元格K2中输入“=IFERROR(INDEX(B:B,SMALL(IF(($D$2:$D$17=$J$2)*($C$2:$C$17=$I$2),ROW($D$2:$D$17)),ROW(A1))),"")”,CTRL+SHIFT+ENTER三键回车并向下拖曳即可。
思路:
增加条件,只需要在IF函数的第一个参数上增加判断条件即可
其他部分没有变化
在这里,多条件不仅仅是像上面所限定的那样,是“*”的关系,也可以是“或”的关系,即,满足多个条件中的一个或几个。
今后FILTER函数将搞定上面的一切!
03
提取不重复清单
在以前的帖子中我也多次介绍过,提取不重复值的技巧中有一个经典的函数组合:INDEX函数+SMALL函数+IF函数+MATCH函数组合。
这么长的组合,其威力一定是巨大无比的。如下图。
在单元格C2中输入“=IFERROR(INDEX($A$2:$A$17,SMALL(IF(MATCH($A$2:$A$17,$A$2:$A$17,0)=ROW($A$2:$A$17)-1,ROW($A$2:$A$17)-1),ROW()-1),0),"")”并CTRL+SHIFT+ENTER三键回车,向下拖曳即可。
思路:
MATCH函数返回的结果若和行号不一致,即表明哪些是重复项
IF函数返回对应一致的行号
SMALL函数从小到大依次提取行号
INDEX函数返回不重复清单
将来,UNIQUE函数就会接班了!
上面这些经典的函数组合,凝聚了无数人的脑细胞,虽然在可读性上不是十分友好。在高版本中,虽然会被上面提到的函数替代,但是仍然可以正常使用。在低版本中,它们仍然会继续发挥着重要的作用!
)