肿瘤康复网,内容丰富有趣,生活中的好帮手!
肿瘤康复网 > 想知道Excel多重查询公式怎么来的?一定不能错过这篇文章

想知道Excel多重查询公式怎么来的?一定不能错过这篇文章

时间:2023-05-26 02:34:26

相关推荐

前两天才跟大家讲过,如何使用vlookup函数查找出一个条件对应的多个值,那时候很多小伙伴跟我反应,说公式有点难于理解,自己完全没有一点思路,看过就忘,要用的时候就想不起来,下面换一种方法,换一种思路来跟大家讲解,不使用vlookup函数,我们也可以实现。

实例:下图中,我们要在F4:F6单元格区域中,返回查询区域B4:B12,对应的产品“面膜”在C4:C12单元格区域中所有的值。

具体操作步骤如下:

1、选中F4单元格 -- 在编辑栏中输入公式“=INDEX($C$4:$C$12,AGGREGATE(15,7,($B$4:$B$12=$E$4)/($B$4:$B$12=$E$4)*(ROW($B$4:$B$12)-ROW($B$3)),ROWS($B$4:B4)))”-- 按回车键回车并将公式下拉填充至F6单元格中即可。

2、动图演示如下。

3、公式分析。

(1)如何返回E4:E6单元格区域中的“面膜”产品在C4:C12单元格区域中对应的销量?

这里我们可以使用INDEX函数。INDEX函数可以返回一个表或一个区域中指定位置的值或值的引用。我们将“面膜”第1次出现的位置指定为1,那么图中第2次和第3次出现的位置分别为4和7,所以要返回1、4和7这3个位置的销量,公式就可以这么写:=INDEX($C$4:$C$12,1),=INDEX($C$4:$C$12,4),=INDEX($C$4:$C$12,7)。

(2)上一步中的位置都是通过手动去修改的,如何用公式表达出来呢?

这里我们可以使用AGGREGATE函数。这个函数是一个许多函数的集合。关于这个函数的详细用法,可以看看这篇文章:几乎没人知道Excel这个函数可以忽略错误值求和,功能太强大了

公式中AGGREGATE(15,7,($B$4:$B$12=$E$4)/($B$4:$B$12=$E$4)*(ROW($B$4:$B$12)-ROW($B$3)),ROWS($B$4:B4))表示什么意思呢?

数字15表示SMALL函数,因为我们第(1)步找到的位置需要从小到大排序,所以这里输入15。数字7表示“忽略隐藏行和错误值”。$B$4:$B$12=$E$4可以判断B4:B12单元格区域中的值是否与E4单元格的内容相等,如果相等,返回TRUE,否则,返回FALSE。所以该公式返回的结果是一组逻辑值数组{TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE}。($B$4:$B$12=$E$4)/($B$4:$B$12=$E$4)相当于两个逻辑值数组对应的值相除,TRUE/TRUE=1,FALSE/FALSE=#DIV/0!,所以该公式得到的结果为{1;#DIV/0!;#DIV/0!;1;#DIV/0!;#DIV/0!;1;#DIV/0!;#DIV/0!}。

ROW($B$4:$B$12)-ROW($B$3):

ROW函数的作用是返回所选择的单元格或单元格区域所在的行号,如果是单元格区域,返回的是一组行号数组。ROW($B$4:$B$12)返回的行号数组是{4;5;6;7;8;9;10;11;12},ROW($B$3)返回的行号是3。两个函数相减可得到{1;2;3;4;5;6;7;8;9}这个数组,这个数组里面的每个值可以看作是每个产品所在的位置。

($B$4:$B$12=$E$4)/($B$4:$B$12=$E$4)*(ROW($B$4:$B$12)-ROW($B$3)):

由上面的解析可知,公式($B$4:$B$12=$E$4)/($B$4:$B$12=$E$4)返回的结果为{1;#DIV/0!;#DIV/0!;1;#DIV/0!;#DIV/0!;1;#DIV/0!;#DIV/0!},公式(ROW($B$4:$B$12)-ROW($B$3))返回的结果为{1;2;3;4;5;6;7;8;9}。两个数组对应的值相乘,得到的结果为{1;#DIV/0!;#DIV/0!;4;#DIV/0!;#DIV/0!;7;#DIV/0!;#DIV/0!},可以看到这组数组里面只有1、4和7这3个数值,其余都是错误值,这里的1、4和7刚好是我们要查找的“面膜”所出现的位置。

ROWS($B$4:B4):

ROWS函数是返回,某一引用或数组的行数。当公式下拉的时候,会变成ROWS($B$4:B5)、ROWS($B$4:B6)...对应的结果分别为1、2、3...

通过以上的分析,公式AGGREGATE(15,7,($B$4:$B$12=$E$4)/($B$4:$B$12=$E$4)*(ROW($B$4:$B$12)-ROW($B$3)),ROWS($B$4:B4)),由于按照从小到大的顺序排序并且忽略隐藏行和错误值,所以该公式最后符合值的结果为1、4和7。

最后,我们把第(2)步分析的结果嵌入到INDEX的第2个参数中,公式就是我们前面所说的=INDEX($C$4:$C$12,1),=INDEX($C$4:$C$12,4),=INDEX($C$4:$C$12,7)。公式的结果对应的就是每个面膜的销量。

如果觉得《想知道Excel多重查询公式怎么来的?一定不能错过这篇文章》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。