跨多个工作表的IndexMatch

时间:2018-08-31 13:21:54

标签: excel excel-formula match

我有一个工作表,需要从另一个工作簿中提取特定数据,该工作簿有超过20个选项卡,均按年份命名。

为此,我需要匹配三组条件,因此在所有选项卡以及主表中都创建了一个串联列,该列将由相同的数据(所有以字母数字形式添加为文本)组成。 / p>

我可以从一张纸上进行此操作,但需要跨很多工作,并且希望它具有动态性,因此我不必每年都必须管理该公式。

第一个表称为ADS,第二个表称为NDTREQ,在ADS文件中,我为年名称创建了一个名为Years的表,但不知道如何将其合并到动态公式中。

这是我在ADS文件内的单元格中具有的以下公式:

=IF(B16="","",INDEX([NDTREQ.xls]2018'!$G$1:$G$65536,MATCH(J16,[NDTREQ.xls]2018'!$A$1:$A$65536,FALSE),0))

如何使它动态地工作?

1 个答案:

答案 0 :(得分:1)

您可以使选项卡引用成为动态公式的一部分,即[NDTREQ.xls]2018'

因此,可以在工作表中将工作表的“ 2018”年“硬编码”为一个单元格(在我的代码示例中,我使用单元格:C5)。该单元格将包含您要在其中使用公式的年份(以及明确的工作表选项卡)。 即将C5中的值从2017年更改为2018年会将公式从工作表选项卡2017重定向到选项卡2018。

因此您的公式应如下所示:

=IF(B16="","",INDEX(INDIRECT("[NDTREQ.xls]"&C5&"!"&"$G$1:$G$65536"),MATCH(J16,INDIRECT("[NDTREQ.xls]"&C5&"!"&"$A$1:$A$6553"),FALSE),0))

示例说明:

可以通过动态公式执行此操作的INDIRECT函数:

INDIRECT("[NDTREQ.xls]"&C5&"!"&"B4:B7")

  • [NDTREQ.xls]是文件名

  • "&C5&"!"是文件“ NDTREQ”​​中的选项卡名称,

  • &"B4:B7"是您要在其中返回值的索引公式中的范围。

编辑标记: 我共享了两个文档,以帮助您了解如何使用Excel中的INDIRECT函数。文件ADS是“主要/主要”文件,它消耗NDTREQ文件中的数据。

同时打开两个文件夹中的两个工作表。然后,您应该得到结果作为图片。 (如果要在单独的位置放置它们,则需要使用路径名链接文档)。 enter image description here

https://www.dropbox.com/s/a4b86erzq6xj5l6/ADS.xls?dl=0 https://www.dropbox.com/s/dq1yhgm2zppyaf3/NDTREQ.xls?dl=0