我有2个工作簿,每本书中的每一页都是一年中的几个月。源书和目标书具有相同的工作表名称,例如。 2019年8月,2019年9月.....我在目标书B9单元格中创建了以下公式,以从源工作簿AJ46单元中提取一个值:
= INDEX('C:\ FTPDownloads \ Villa Stuff [入住率图表Rev 1d.xlsx] 2019年8月'!$ AJ $ 46,1)
即使关闭源代码书,它也可以正常工作。在目标书中,我使用以下公式加载了单元格Q3:
= MID(CELL(“文件名”,A1),FIND(“]”,CELL(“文件名”,A1))+ 1,255)
这将当前活动工作表加载到目标书中的单元格Q3。因此单元格Q3的值为2019年8月。目标书中有20个INDEX公式副本,唯一更改的是最后的源单元格,在上面的公式中是AJ46。为了防止在将工作表扩展到以后的月份时INDEX公式不断变化,我想使用单元格Q3中的值代替输入实际的工作表名称。我试过了:
= INDEX('C:\ FTPDownloads \ Villa Stuff [占用率图表修订版1d.xlsx]“&Q3&”'!$ AJ $ 46,1)
但是会产生错误。我正在使用Excel 2007。
首先,如果只想返回特定的单元格,例如说AJ46
,为什么不直接引用单元格地址而不是使用INDEX函数呢?我确信无论其他工作簿是否为open,以下内容也将返回所需的值。
='C:\FTPDownloads\Villa Stuff[Occupancy Chart Rev 1d.xlsx]Aug 2019'!$AJ$46
[其次,在网上,甚至在这个post社区中,都对此主题进行了广泛的讨论。简单的结论是:
。如果您愿意这样做,则可以尝试一下。没有办法使用excel公式制作动态
工作簿/工作表/范围/单元格名称,并从closed工作簿返回所需的值。第三,可以使用
VBA
完成。如果您可以选择此选项,则可以将#vba
添加到标签中,以便其他贡献者可以以#vba
的身份帮助您,而不是我的专业知识。我之前提到的帖子中的某人提供了一个vba
代码,该代码可直接用于单元格引用,但不包含INDEX
第四,供您参考,也可以使用PowerQuery
完成,但仅在Excel 2010和更高版本中可用。此外,PowerQuery
在处理大型原始数据集而不是结构化报告方面效果最佳。