Excel中什么是“万金油”函数?

E图表述


您好,这里是“E图表述”为您讲述的Excel各种知识。


学会Index+Small+Row的“万金油”函数

1、提取不重复的值

还记得我们第二次数组教学篇中的Small+Row函数的返回值吗?如果忘记了,建议还是先点下面的链接看看。如果你还记得,可以忽略下方的链接继续读。

千呼万唤,“万金油”函数终于登场了。这是一份模拟数据,

如果我们现在需要统计各销售员的销售数量,常规来说,如果有了销售员的明细,我们用Sumif函数就可以很方便地汇总出来销售数量,但是我们可以看出,销售员的姓名是无序而且重复的,如果不借助辅助列,我们就需要用到数组函数来提取销售员姓名的唯一值了。

函数:单元格A12

{=IFERROR(INDEX($B$2:$B$8,SMALL(IF(MATCH($B$2:$B$8,$B$2:$B$8,0)=ROW($B$2:$B$8)-1,ROW($B$2:$B$8)-1),ROW(A1))),"")}

函数说明:

利用Match函数找到第一次出现的值的行号,形成一个数组数据,再利用Small函数顺序的找到出现的行号,用Index函数引用姓名,最后用Iferror函数屏蔽错误值。

函数运行过程:

2、提取重复值

上面我们提取了不同姓名的销售员,那么我们如果要提取相同姓名的销售员的销售记录又该如何呢?

函数:单元格A12

{=IFERROR(INDEX(A$2:A$8,SMALL(IF(COUNTIF($B$2:$B$8,$B$2:$B$8)=2,ROW($A$2:$A$8)-1),ROW(A1))),"")}

函数说明:

我们将第一例中的Match部分,替换上Countif函数,如果出现两次就是我们需要的记录了,其余函数部分同上例。

函数运行过程:

3、提取满足条件的明细

还是上面的数据,这次我们来提取销售员“赵”,卖的“中”码货物的明细。

函数:单元格A13

{=IFERROR(INDEX(A$2:A$8,SMALL(IF(($B$2:$B$8=$B$11)*($C$2:$C$8=$C$11),ROW($A$2:$A$8)-1,99^9),ROW(A1))),"")}

函数说明:

和上例不同的地方是,我们唯一改动的就是条件部分,用两个条件相乘,我们要知道逻辑值是可以参与计算的,True=1、False=0,所以函数中的两个条件相乘就形成了由0.1组成的数组数据。剩下的运算道理和第一例完全一样。

函数运行过程:

作者云:

强大的“万金油”函数,其实也就是这些主要的功能了。本来还想举几个例子,但是除了条件变换了,其他的内容都是一样的,而且有的例子没有必要非使用“万金油”函数,巧妙的使用其它函数结合数组数据一样可以达到效果。

如果上面的内容对您还有帮助,或者觉得作者比较用心。可以关注、评论、留言、转发“E图表述”,便于您继续观阅和浏览往期的“Excel干货分享”。微信公众号:“E图表述”或者“Excel_Easy”


分享到:


相關文章: