IMPORTRANGE

匯入指定試算表中特定儲存格的範圍。

用法示範

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 的資訊,然後再進行轉移。

如果你將各工作表鏈結在一起,則 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 轉移自己擁有的試算表中的資料,系統會顯示以下訊息:
You need to connect these sheets error message
  1. 完成 IMPORTRANGE 函式後等候幾秒鐘。
  2. 系統會顯示 #REF! 錯誤並提示:「您必須連結這些試算表。允許存取」。
  3. 如要將權限授予來源試算表,請按一下「允許存取」。

如果嘗試使用 IMPORTRANGE 轉移他人擁有的試算表中的資料,系統會在幾秒鐘後顯示以下訊息:

You don't have permissions to access that sheet message

  1. 在瀏覽器中輸入來源試算表的網址。
  2. 要求存取該試算表。
  3. 等候試算表擁有者授予你存取權。
授予存取權後,目標試算表的所有編輯者皆可使用 IMPORTRANGE 擷取來源試算表的任何部分。除非系統已從來源試算表移除授予存取權的那位使用者,否則存取權不會受到影響。請注意,授予目標工作表的存取權數目會計入來源工作表的 600 位共用使用者上限

執行效能

IMPORTRANGE 是外部資料函式,就像 IMPORTXMLGOOGLEFINANCE 一樣。也就是說,使用時必須連上網際網路。試算表必須將整個資料範圍下載到電腦,所以會受到網路速度緩慢的影響,且每個要求的資料接收上限為 10 MB。使用 IMPORTRANGE 時,如果遇到執行效能緩慢的問題,建議限制匯入範圍的大小。或者,也可以將匯總計算留在來源文件,這樣就可以減少需要傳輸到本機試算表的資料量,將比較多的計算作業留在遠端執行。

提示:你可以使用其他工具。AppsScript 也可以讀取其他文件的資料,並且可在編輯時或預先排定的時間觸發。連結試算表則可排定重新整理時間表,而其設計也更適合用於載入及匯入較大的資料集。

使用限制

Loading data may take a while because of the large number of requests error message

如果 IMPORTRANGE 函式產生的流量過多,系統可能會在儲存格內顯示「載入中…」的訊息,並附帶以下詳細錯誤訊息:「錯誤:由於要求數量龐大,資料載入速度可能會變慢。請嘗試為你已建立的試算表調降其中的 IMPORTHTMLIMPORTDATAIMPORTFEEDIMPORTXML 函式數量。」
文件建立者必須遵守這些限制。使用者在考量所有 Import 函式的使用總量是否會超過存取限制時,必須包含自己建立的所有已開啟文件。協作者所做的編輯也可能會計入你的存取配額。
如要解決這項錯誤,我們建議使用者減少匯入函式的運算數量。舉例來說,如果 =IMPORTRANGE(arg) 中 arg 的解析值經常變動,系統可能會發出許多外部呼叫,這可能會造成節流作用。

資料更新間隔

Google 試算表會確保使用者能夠在合理的存取頻率下擷取最新資料。即使公式和試算表都沒有變動,IMPORTRANGE 還是會在文件開啟期間每小時自動檢查更新。如果你刪除或讀取儲存格,或以相同的公式覆寫儲存格,就會觸發系統重新載入函式。若只是開啟及重新載入文件,並不會觸發系統重新載入 IMPORTRANGE

易變性

使用 IMPORTRANGE 時,系統可能會在儲存格中顯示「#ERROR!」並附帶此詳細錯誤訊息:「錯誤:這個函式無法參照含 NOWRANDRANDBETWEEN 的儲存格」。Import 函式無法直接或間接參照易變函式,例如 NOWRANDRANDBETWEEN。因為這些易變函式經常更新,這樣設計可避免使用者的試算表負荷過大。
This function is not allowed to reference a cell with NOW(), RAND(), or RANDBETWEEN() error message
提示:這種狀況的唯一例外是 TODAY 函式,這雖然也是易變函式,但每天只會更新一次。

建議你採取以下做法:

  1. 複製這些易變函式的結果。
  2. 使用「選擇性貼上」下一步「僅貼上值」來貼上結果值。
  3. 參照這些貼上後的靜態值。

採取這種做法後,所有的值都會變成靜態值。舉例來說,如果複製並選擇性貼上 NOW 的結果值,這些貼上的值就不會再變動。

如果還有其他問題,請前往 Google 文件編輯器產品討論社群尋求協助。

另請參閱

IMPORTXML:匯入多種結構化資料類型的資料,包括 XML、HTML、CSV、TSV 和 RSS 以及 ATOM XML 資訊提供。

IMPORTHTML:將表格或清單中的資料匯入 HTML 網頁。

IMPORTFEED:匯入 RSS 或 ATOM 資訊提供。

IMPORTDATA:將指定網址的資料匯入成 .csv (逗號分隔值) 或 .tsv (Tab 分隔值) 格式。

請參閱這篇文章,瞭解如何最佳化資料參照。

true
搜尋
清除搜尋內容
關閉搜尋
Google 應用程式
主選單
12710734950463605860