2015-09-04 111 views
0

我有一張名爲Vessel Reading 1的工作表。我想將單元格D4的值讀入另一個工作表。 'Vessel Reading 1'!D4給我正確的價值。在Excel公式中使用連接字符串以獲取單元格值

但是,我希望能夠得到最新的數字,而不是'船隻讀數1'。例如。如果我有五張名爲'Vessel Reading 1 to 5'的表,我想從名爲'Vessel Reading 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 

它會引發錯誤。現在我不確定我在這個公式中缺少什麼。

編輯:

基本上,我需要一種方法來把連擊的結果作爲字符串創建單元格引用。

+0

你會得到什麼樣的錯誤?而'filename'應該是某種佔位符,或者你真的想插入字符串「文件名」? –

+0

使用'CONCATENATE'函數而不是'&'運算符的好處?我永遠無法理解M $必須添加此功能的原因,特別是它實施的方式。如果只有它可以處理'Ranges'! –

+0

「filename」字符串會爲您提供您所在工作表的名稱。基本上使用它來獲取當前工作表的最後一個字符(例如工作表名稱是「燃料罐讀數1」,「燃料罐讀數2」等等)。這樣,我可以閱讀該表的哪一份特定副本。因此,我的公式將顯示爲「Vessel Reading X」表,其中X是當前表單的最後一個字符(即「Bunker Tanker Reading X」)。 – jitendragarg

回答

1

如果您在A1中爲表格名稱添加公式,則可以使用此公式從該表格中找出D4單元格的值。

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

,可隨時更換A1上式中與您建立找出表的代碼和所有將在單一的公式。完整公式看起來像

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

這有效。但是,現在我也必須隱藏單元格A1。 :/ – jitendragarg

+0

你不必隱藏單元格,你只需要將公式放在一起。我不想,因爲它看起來很長很混亂 - 我會更新答案 –

+0

沒關係。我將該值複製到一些隨機單元格,如zz11。然後我隱藏了那一欄。 :) – jitendragarg

相關問題