我有一个工作表,需要从另一个工作簿中提取特定数据,该工作簿有超过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))
如何使它动态地工作?
答案 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文件中的数据。
同时打开两个文件夹中的两个工作表。然后,您应该得到结果作为图片。 (如果要在单独的位置放置它们,则需要使用路径名链接文档)。
https://www.dropbox.com/s/a4b86erzq6xj5l6/ADS.xls?dl=0 https://www.dropbox.com/s/dq1yhgm2zppyaf3/NDTREQ.xls?dl=0