对Excel表中数据一对多查询的方法

时间:2022-06-07 13:55:16 

对Excel表中数据一对多查询的方法

举个例子,如下图,左侧A1:C10是一份学员名单表,现在需要根据F1单元格的“EH图班”这个指定的条件,在F2:F10单元格区域中,提取该班级全部学员名单。


今天说一个函数查询方面的方法:Index+Small。

F2单元格输入以下数组公式,按住Ctrl+Shift键不放,再按回车键,然后向下填充:

=INDEX(B:B,SMALL(IF(A$1:A$10=F$1,ROW($1:$10),4^8),ROW(A1))),"")

公式讲解

IF(A$1:A$10=F$1,ROW($1:$10),4^8)

这部分,先判断A1:A10的值是否等于F1,如果相等,则返回A列班级相对应的行号,否则返回4^8,也就是65536,一般情况下,工作表到这个位置就没有数据了。

结果得到一个内存数组:

{65536;2;3;65536;65536;65536;65536;8;65536;10}


SMALL函数对IF函数的结果进行取数,随着公式的向下填充,依次提取第1、2、3……n个最小值,由此依次得到符合班级条件的行号。

随后使用INDEX函数,以SMALL函数返回的行号作为索引值,在B列中提取出对应的姓名结果。

当SMALL函数所得到的结果为65536时,意味着符合条件的行号已经被取之殆尽了,此时INDEX函数也随之返回B65536单元格的引用,结果是一个无意义的0,为了避免这个问题,可以在公式后面加上一个小尾巴  &""

利用&””的方法,很巧妙的规避了无意义0值的出现,只是当查找结果为数值或日期时,这个方法会把数值转变为文本值,并不利于数据的准确呈现以及再次统计分析。

练手题

最后留下一道练手题,如下图,根据A1:C10区域的数据,将E列相关班级的姓名,填充到F2:I5区域。


标签:公式,函数,方法,行号,Excel教程
0
投稿

猜你喜欢

  • Win10电脑怎么进入VGA模式?Win10进入VGA模式方法教程

    2022-09-25 15:11:14
  • 如何对Word表格中的数据计算?

    2022-09-08 04:28:35
  • 如何在excel2013中添加文本型数据

    2022-08-26 13:37:29
  • 如何在word2007显示或隐藏格式标记

    2023-05-07 16:49:53
  • Word文档不能打印单击打印无反应怎么办?

    2022-07-27 19:26:06
  • Win10系统怎么删除更新提醒GWX.EXE?

    2023-11-18 04:00:52
  • Excel2016中设置默认工作表数量的方法

    2023-05-29 19:33:18
  • Excel如何搞定图片基本处理

    2022-10-24 03:54:54
  • excel表格怎么选中部分内容?excel表格选中部分内容方法

    2023-01-25 13:56:52
  • 在excel中自动求和的方法步骤详解

    2023-06-20 03:58:06
  • 如何使用Excel2013中推荐的数据透视表

    2022-01-22 21:56:22
  • 罗技驱动无法定位程序输入点怎么解决?

    2023-07-02 07:00:24
  • Win10本地账户怎么改Microsoft账户?

    2023-03-25 15:58:10
  • 如何使用office2010制作公章 office2010制作公章实例教程

    2023-10-22 04:39:41
  • Win10在不考虑更换硬件设备的前提下如何提升性能提升呢?

    2023-11-25 23:01:40
  • Publisher2010量度单位怎么更改为英寸?

    2023-06-13 11:55:05
  • Excel筛选多行多列不重复数据的正确方法

    2022-05-20 01:11:31
  • 在Excel2003中如何设置页眉、页脚?

    2023-11-30 03:31:53
  • 在 word 里打字带圈的数字怎么打?

    2023-11-28 20:14:38
  • Excel中两列数据对比如何找到相同的并自动填充

    2023-10-04 05:05:41
  • asp之家 电脑教程 m.aspxhome.com