在Excel公式中使用连接的string来获取单元格值

我有一张名为Vessel Reading 1的表单。我想将单元格D4的值读入另一个表单。 'Vessel Reading 1'!D4给我正确的价值。

但是,我希望能够得到最新的数字,而不是“船只读数1”。 例如,如果我有五张名为“船只读数1至5”的表格,我想从名为“船舶读数5”的表格中读取数值。 基本上, 'Vessel Reading 1'!D4应改为'Vessel Reading N'!D4其中N是最新的表。

 CONCATENATE("Vessel Reading ",RIGHT(RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1))),1)) 

上面的表格给我我想要的表格名称。 例如,如果我在表5中,它给了我“船只阅读5”,如果我在表2,它给了我“船只阅读2”。

显然,大部分工作已经到位。 可悲的是,当我使用

 'CONCATENATE("Vessel Reading ",RIGHT(RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1))),1))'!D4 

它会抛出一个错误。 现在我不确定我在这个公式中缺less什么。

编辑:

基本上,我需要一种方法将拼接的结果作为string来创build单元格引用。

如果您在A1中为表格名称添加公式,则可以使用此公式从该表格中找出D4单元格的值。

 =INDIRECT(CONCATENATE("'",A1,"'!D4")) 

您可以将上面公式中的A1replace为您创build的代码来找出表单,并且所有代码都将使用单个公式。 完整的公式看起来像

 =INDIRECT(CONCATENATE("'",CONCATENATE("Vessel Reading ",RIGHT(RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1))),1)),"'!D4"))