使用INDIRECT與CONCATENATE取得變數字串所指向的值

嗯, 發現一個好方法讓我可以在Excel帶變數字串所指向的值, 使用的方法是使用EXCEL內INDIRECT和CONCATENATE函數

CONCATENATE為合併字串的函數, 可以用來合併變數的字串

如果在Sheet1要獲得Sheet2值的A1時候, 會指定該欄位='Sheet2'!A1

但是我如果要讓 Sheet2這個字串也是變數的話呢?

以下例子, 我讓C3的值會變成 'B1的字串'!A1 , 我們可以使用以下的命令達成

CONCATENATE("'",B3,"'!A1")

B3為可變字串, 只要修改B3後C2所得的字串也會是變數, 如B3=Sheet1的值, 則C3會變成'Sheet1'!A1 , 如果把B3改成Sheet2則C3會變成'Sheet2'!A1

使用 CONCATENATE 合併字串產生變數字串

現在我們已經獲得變數字串, 如果我想取這個變數字串所指位置的值的時候我能下什麼命令呢?

我試過VALUE, 該函數沒辦法帶變數字串....:( 會直接出現 #VALUE!

後來找到一函數, 就是 INDIRECT使用INDIRECT就可以帶變數字串然後抓該字串所指向的內容值了

例如: 我想抓取'Sheet1'!A1的值DATA-A的時候, 可以這樣直接簡單的下公司, 但是如果我讓Sheet1為抓B3的可變字串, 且要抓該字串指向的值的時候, 可以使用以下命令

INDIRECT(CONCATENATE("'",B3,"'!A1"))

使用INDIRECT取得變數字串所指向的值

這樣只要更改B1的值, D3的值也會跟著更新

B1的值設成Sheet2時, 就會抓 'Sheet2'!A1 的值, 同理把B1的值設成Sheet3 就會抓 'Sheet3'!A1 的值

完 ~