提高你的工作效率-Excel实现一对多查询

发布于 2021-04-07 19:45

     日常的查询最长用到的就是vlookup,使用vlookup来进行一对多亦可以,但是需要添加辅助列,这里不讲,这里主要介绍最常使用的一种万金油公式INDEX+SMALL+IF公式。

举例:假设有两张表格一个是数据源表,一个是提取表如下:(这里介绍跨表一对多,一般的介绍都是一个表里展示一对多,其实都一样,主要是不想再做表格)

上图黄色区域是我们需要的单据信息,红色字体是查询条件

上图即为提取结果展示表:要达到的目的就是输入相关街道后源表中所需要的单据信息展示到提取表中。

以提取表B3单元格为例-公式:

(下面公式看不全可以左右拖动)

=IFERROR(INDEX(源表!B:B,SMALL(IF(源表!$F1:$F1111=提取!$H$1,ROW(源表!$F1:$F1111)),ROW(A1))),"")

1、公式分解:

1、公式两端的大括号,这个是在输入完上述公式后按住Ctrl+Shift+Enter组合键键入的数组公式形成。

2、iferror:值错误时返回空,否则返回value

3、index-array:要返回的区域,这里我们要源表的b列中的内容,所以是b:b。

Index-row_num:返回的第几行,也就是这一大串就是个数字。

4、SMALL(array,k)Array:需要找到第 k 个最小值的数组或数值数据区域,这里通过下一个公式建立一个数组。

  K:要返回的数据在数组或数据区域里的位置(从小到大)这里是row(a1)即为1,后续下拉公式即为2,以此类推返回第一个、第二个、第三个、、。

5、又是熟悉的if公式:条件是如果源表中的f列中每一行的内容与提取表中h1单元格内容相同,则返回true,此处应该是构成一个数组。True的部分会返回相应的行号,没有匹配上的则不在数组中。

至此公式分解完毕。

2、步骤

B3输入公式后,在其他列首行键入相应的公式,

C3:

D3:

E3:

F3:

之后选中B3:F3,下拉填充。最终结果如下:

Tips:

1、数组部分建议加上数字限制公式作用区域。如:F1:F1111,不要使用F:F,这样会占用大量计算。

2、如果您使用OFFICE 365:

(真的不要太简单!!!)

本文来自网络或网友投稿,如有侵犯您的权益,请发邮件至:aisoutu@outlook.com 我们将第一时间删除。

相关素材