匯入指定試算表中特定儲存格的範圍。
用法示範
IMPORTRANGE("
https://docs.google.com/spreadsheets/d/abcd123abcd123
", "sheet1!A1:C10")
IMPORTRANGE(A2,"B2")
語法
IMPORTRANGE(spreadsheet_url, range_string)
-
spreadsheet_url
- 做為資料匯入來源的試算表網址。spreadsheet_url
的值必須括在引號中,或者為包含試算表網址的儲存格參照。
-
range_string
- 符合"[sheet_name!]range"
格式的字串 (例如"Sheet1!A2:B6"
或"A2:B6"
),用於指定要匯入的範圍。-
sheet_name
元件 (位於range_string
中) 為選擇性使用;根據預設,IMPORTRANGE
會由第一份工作表中的指定範圍匯入。 -
range_string
的值必須放置在引號內,或者是一個含有適當文字的儲存格參照。
-
技術詳細資料和最佳做法
若來源文件有任何更新,IMPORTRANGE
會造成所有開啟的資料接收文件都重新整理,並顯示綠色的載入進度列。IMPORTRANGE
還會等候來源文件完成計算,然後才將結果傳回給資料接收文件,即使計算作業不是發生在來源範圍中也一樣。
最佳做法
- 限制資料接收工作表的數量,因為每個資料接收工作表都必須從來源工作表讀取資料
- 如要匯入經常更新的工作表資料,使用
IMPORTRANGE
前特別需要先改變匯入架構及縮減匯入結果。- 舉例來說,若目標是要計算來自另一份試算表的 1,000,000 列資料的總和。與其使用
IMPORTRANGE
將所有 1,000,000 列資料都轉移到你的試算表後再計算總和,不如直接先在該試算表中計算總和,然後再用IMPORTRANGE
單獨擷取那個加總值,這樣會比較快。這個方法就是先縮減及匯總IMPORTRANGE
的資訊,然後再進行轉移。
- 舉例來說,若目標是要計算來自另一份試算表的 1,000,000 列資料的總和。與其使用
如果你將各工作表鏈結在一起,則 IMPORTRANGE
的更新可傳播至其他工作表。假設工作表 B 內含 IMPORTRANGE(sheet A)
,工作表 C 內含 IMPORTRANGE(sheet B)
,彼此之間就會建立鏈結。工作表 A 若有任何更新,會造成工作表 B 和工作表 C 重新載入資料。
最佳做法
- 限制受到
IMPORTRANGE
鏈結影響的工作表數目。 - 避免
IMPORTRANGE
無限循環。如果你在多份彼此參照的試算表中使用IMPORTRANGE
,就會形成無限循環。舉例來說:試算表 A 的資料會透過IMPORTRANGE
運用試算表 B 的資料,而試算表 B 又會透過IMPORTRANGE
擷取試算表 A 的資料。這就會造成兩者之間的迴圈,彼此都不斷嘗試參照對方的資料,無限循環,一直得不到實際資料輸出。 - 來源工作表變更後,受影響的工作表並不會立即反映變更。也就是說,若有數個鏈結的文件,則來源工作表更新後,環環相扣的多個
IMPORTRANGE
可能會造成很長的時間延遲,使用者才能在受影響的工作表中看到更新結果。
初次開啟文件或在過去 5 分鐘內開啟過文件時,IMPORTRANGE
會重新載入。此時 IMPORTRANGE
必須「喚醒」匯入作業的所有來源文件,造成如同資料更新鏈結時的延遲狀況。
最佳做法
- 瞭解作業中的文件可能需要一段時間才能完成更新,,並考慮限制
IMPORTRANGE
的鏈結數。
權限與存取權
IMPORTRANGE
時,試算表必須明確取得權限,才能從其他試算表擷取資料。目標工作表初次從新的來源工作表擷取資料時,系統會提示使用者授予權限。IMPORTRANGE
轉移自己擁有的試算表中的資料,系統會顯示以下訊息:- 完成
IMPORTRANGE
函式後等候幾秒鐘。 - 系統會顯示 #REF! 錯誤並提示:「您必須連結這些試算表。允許存取」。
- 如要將權限授予來源試算表,請按一下「允許存取」。
如果嘗試使用 IMPORTRANGE
轉移他人擁有的試算表中的資料,系統會在幾秒鐘後顯示以下訊息:
- 在瀏覽器中輸入來源試算表的網址。
- 要求存取該試算表。
- 等候試算表擁有者授予你存取權。
IMPORTRANGE
擷取來源試算表的任何部分。除非系統已從來源試算表移除授予存取權的那位使用者,否則存取權不會受到影響。請注意,授予目標工作表的存取權數目會計入來源工作表的 600 位共用使用者上限。執行效能
IMPORTRANGE
是外部資料函式,就像 IMPORTXML
和 GOOGLEFINANCE
一樣。也就是說,使用時必須連上網際網路。試算表必須將整個資料範圍下載到電腦,所以會受到網路速度緩慢的影響,且每個要求的資料接收上限為 10 MB。使用 IMPORTRANGE
時,如果遇到執行效能緩慢的問題,建議限制匯入範圍的大小。或者,也可以將匯總計算留在來源文件,這樣就可以減少需要傳輸到本機試算表的資料量,將比較多的計算作業留在遠端執行。
提示:你可以使用其他工具。AppsScript 也可以讀取其他文件的資料,並且可在編輯時或預先排定的時間觸發。連結試算表則可排定重新整理時間表,而其設計也更適合用於載入及匯入較大的資料集。
使用限制
IMPORTRANGE
函式產生的流量過多,系統可能會在儲存格內顯示「載入中…」的訊息,並附帶以下詳細錯誤訊息:「錯誤:由於要求數量龐大,資料載入速度可能會變慢。請嘗試為你已建立的試算表調降其中的 IMPORTHTML
、IMPORTDATA
、IMPORTFEED
或 IMPORTXML
函式數量。」=IMPORTRANGE(arg)
中 arg 的解析值經常變動,系統可能會發出許多外部呼叫,這可能會造成節流作用。資料更新間隔
IMPORTRANGE
還是會在文件開啟期間每小時自動檢查更新。如果你刪除或讀取儲存格,或以相同的公式覆寫儲存格,就會觸發系統重新載入函式。若只是開啟及重新載入文件,並不會觸發系統重新載入 IMPORTRANGE
。易變性
IMPORTRANGE
時,系統可能會在儲存格中顯示「#ERROR!」並附帶此詳細錯誤訊息:「錯誤:這個函式無法參照含 NOW
、RAND
或 RANDBETWEEN
的儲存格」。Import 函式無法直接或間接參照易變函式,例如 NOW
、RAND
或 RANDBETWEEN
。因為這些易變函式經常更新,這樣設計可避免使用者的試算表負荷過大。TODAY
函式,這雖然也是易變函式,但每天只會更新一次。建議你採取以下做法:
- 複製這些易變函式的結果。
- 使用「選擇性貼上」「僅貼上值」來貼上結果值。
- 參照這些貼上後的靜態值。
採取這種做法後,所有的值都會變成靜態值。舉例來說,如果複製並選擇性貼上 NOW
的結果值,這些貼上的值就不會再變動。
如果還有其他問題,請前往 Google 文件編輯器產品討論社群尋求協助。
另請參閱
IMPORTXML
:匯入多種結構化資料類型的資料,包括 XML、HTML、CSV、TSV 和 RSS 以及 ATOM XML 資訊提供。
IMPORTHTML
:將表格或清單中的資料匯入 HTML 網頁。
IMPORTFEED
:匯入 RSS 或 ATOM 資訊提供。
IMPORTDATA
:將指定網址的資料匯入成 .csv (逗號分隔值) 或 .tsv (Tab 分隔值) 格式。
請參閱這篇文章,瞭解如何最佳化資料參照。