今天跟大家分享一个比较常用的一对多查询的数组公式,希望大家都能掌握。

F2:F20单元格中的公式为:

=IFERROR(INDEX(B:C,SMALL(IF(ISNUMBER(FIND($E$2,$B$1:$B$20)),ROW(B1:B20)),ROW(B1:B20)),2),"")

注意数组公式需按:Ctrl shift enter三键才能得出正确的结果。

如何在文件夹里查找关键字(通过关键字查找全部的明细)(1)

公式1:

=FIND($E$2,$B$1:$B$20)

其结果为:

{#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;4;4;4;4;4;4;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!},即查找E2字符串在B1:B20字符中的起始位置。

公式2:

=ISNUMBER(FIND($E$2,$B$1:$B$20))

其结果为:

{FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE},即判断公式1的结果是否为数值,是数值就返回true,否则返回false

公式3:

=(IF(ISNUMBER(FIND($E$2,$B$1:$B$20)),ROW(B1:B20)))

其结果为:

{FALSE;FALSE;FALSE;FALSE;FALSE;6;7;8;9;10;11;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE},即判断公式2结果是否为真(true),为真(true)就返回所在单元格的行号

公式4:

=SMALL(IF(ISNUMBER(FIND($E$2,$B$1:$B$20)),ROW(B1:B20)),ROW(B1:B20))其结果为:

{6;7;8;9;10;11;#NUM!;#NUM!;#NUM!;#NUM!;#NUM!;#NUM!;#NUM!;#NUM!;#NUM!;#NUM!;#NUM!;#NUM!;#NUM!;#NUM!},即将公式3的结果从小到大排序

公式5:

=IFERROR(INDEX(B:C,SMALL(IF(ISNUMBER(FIND($E$2,$B$1:$B$20)),ROW(B1:B20)),ROW(B1:B20)),2),""),即提取B:C区域中第6、7、8、9、10、11行,第2列的数据,并将错误值转换为空值

自动添加边框线的步骤为:

选中F2:F20单元格区域----开始-----条件格式----新建规则------为其设置如下图中的公式-----格式-----设置好边框线-----即可为显示的结果自动添加上边框

如何在文件夹里查找关键字(通过关键字查找全部的明细)(2)

,