1、如下图是某公司员工信息表,现在想要将全部财务部员工信息提取到右边单元格中。
2、在F2单元格输入公式=INDEX(B:B,SMALL(IF(A$2:A$26=$E$2,ROW($2:$26),4^8),ROW(A1)))&""然后按下Ctrl+shift+enter三键,然后下拉公式直至出现空白单元格。即可录入所有财务部员工姓名
3、在G2单元格输入公式=INDEX(C:C,SMALL(IF(A$2:A$26=$E$2,ROW($2:$26),4^8),ROW(A1)))&""然后按下Ctrl+shift+enter三键,然后下拉公式直至出现空白单元格。即可录入所有财务部员工相应的年龄。
4、下面跟大家简单介绍一下这个超长的公式吧。先介绍公式中IF(A$2:A$26=$E$2,ROW($2:$26),4^8)这一部分吧。if函数相信大家都很了解,它是一个条件函数。
5、本文中if函数的作用就是当A列部门数据等于E2财务部时,返回A列部门信息所对应的行号,否则返回4^8的结果65536。为了方便大家理解,在单元格中输入公式=IF(A2=$E$2,ROW(A2),4^8),返回结果如下图。
6、接下来就是small函数,SMALL函数的作用是返回一组数值中的第n个最小值。在本文这里small依次返回返回的是IF函数计算结果的第一个最小值,第二个最小值,第三个最小值……即依次返回A列部门为财务部的数据单元格行号。
7、SMALL第n个最小值是利用row函数实现的,row函数的作用是返回参数的行号,随着单元格的下来依次返回1,2,3…… 。在单元格中输入=ROW(A2),并下拉填充公式结果如下图所示。
8、最后就是INDEX函数了,它是返回表或区域中的值或值的引用。在本文中它的作用是根据small函数提供的行号,返回姓名列或年龄列对应行号的单元格值。