2206 |
Excel從不同工作表抓資料 |
|
錦子老師您好:
Excel小白如我現在要幫同仁們統計工時,A-F這5個人各交了一個檔案給我,我希望把每個工作表的第18列,抓到統計表內,我用連結儲存格的方式,顯示的公式為 =A!C18,可是如果我想套用這個公式到其他檔案,公式還是會連結到原檔案的(=[路徑&檔名]A!C18):
1.請問甚麼方法可以解決這個問題?或是請問有沒有其他的方法可以從統計表快速抓取其他儲存格的資料?
2.能否不需先把A-F五個檔案合併到同個活頁簿就可以抓取資料?
謝謝!
解決方式:
不管是要用VBA寫程式或是用INDIRECT函數處理的話,都建議要將A-F這五個檔案合併到同一個活頁簿,會比較好作業,否則要對應5個檔案位置,太麻煩了,若連結檔案數增加,那會更慘。
不合併檔案取得資料可以用INDIRECT函數,但是5個檔案要同時開啟,若開啟檔案太多電腦會吃不消。
但另外有一點要注意,最好將工作表名稱改為「XXX01~XXX05」,方便處理,XXX是自訂一個名稱。
我的問題是,有很多個相同格式的工作表,如果我想要把每一個工作表中的C18至AG18,複製到彙總表的B欄至AF欄:
例:
工作表2的C18~AG18 -> 彙整表的 B6~AF6
工作表3的C18~AG18--> 彙整表的 B7~AF7
工作表4的C18~AG18--> 彙整表的 B8~AF8
以此類推,請問這樣能用INDIRECT嗎?
做法:
用INDIRECT函數是可以的。
點取「彙總表」工作表的「B6」儲存格,輸入公式:
=INDIRECT("工作表"&ROW()-5&"!"&ADDRESS(18,COLUMN()+1,2,1))
再將B6儲存格公式複製到B6:AF10儲存格範圍。
公式說明:
ADDRESS(18,COLUMN()+1,2,1) 傳回第18列(18),目前欄編號(B欄=2)+1(COLUMN()+1),列位置為絕對位址(2),以A1格式來表示參照位置(1),結果為C$18。
ROW()-5 傳回列號-5的值。
=INDIRECT("工作表"&ROW()-5&"!"&ADDRESS(18,COLUMN()+1,2,1)) 將文字串"工作表"&ROW()-5&"!"&ADDRESS(18,COLUMN()+1,2,1)轉換為參照位址(=工作表1!C$18)。
留言列表