在試算表匯入資料的方法百百種,你可以純手打、複製貼上、或是下載 .csv 檔後匯入到你的試算表內,但可惜上述方法都是手動的。如果你的資料會隨著時間增減、需要同步,你或許可以考慮用 Google 試算表的 IMPORTRANGE 來解決你的問題。
IMPORTRANGE 會即時更新來源試算表的資訊,如果你的試算表需要即時的資訊、自動刷新資料,或甚至有使用 Google 試算表製作即時儀表板(dashboard)的需求,我會很推薦用 IMPORTRANGE!
使用方法其實也非常簡單,我們接下來就來介紹語法本身、也會有步驟演示,以及一些應用上的建議與故障排除供大家參考。
語法
相當單純,就這樣短短一條:
=IMPORTRANGE(試算表連結, 要匯入的範圍)
- 試算表連結:很簡單,就是你想要匯入的連結、整串複製貼上就可以了。記得在頭尾加上雙引號!
- 要匯入的範圍:這邊要用特定的格式來把範圍指定好,記得在頭尾加上雙引號!格式是:"[sheet_name!]"範圍。
- 如果你來源的試算表檔案內只有一份工作表,你可以直接指定範圍就好,例如:"A2:B6"。
- 如果你來源的試算表檔案內有兩份以上的工作表,要指定工作表的名字,像是這樣:"Sheet1!A2:B6"、"資料!A:B100"、"Juice!D:E100"。如果不指定,Google 試算表會提取第一份工作表。
完整的語法寫出來的範例如下:
=IMPORTRANGE("https://docs.google.com/spreadsheets/d/1Hh2grfB6rp9OQ2yAIu3S5YF_CCFJGwyqPGveABlOZKg/edit", "World Cup!A1:D21")
步驟示範
注意!如果你在用的檔案是 xlsx、xls、從 Excel 直接上傳到雲端硬碟後開啟的,很有可能會無法使用 IMPORTRANGE,必須要轉換成 Google 試算表才能使用。請到工具列的「檔案」>「儲存為 Google 試算表」後,再做下面的操作唷!(感謝讀者 Miranda Wu 來信!)
假設今天你有一份外部的資料要即時匯入,資料在
這邊。你已經知道這份資料有:
- 連結:https://docs.google.com/spreadsheets/d/1sfU1DFWQVPBP5dGEgDHPlVXxKeMIwKhCo5zEGADOHKI/edit#gid=0
- 工作表名稱:Example
- 想要匯入的工作表範圍:A 欄到 E 欄
打開來後你應該會看到這個表格:
好的,那接下來我們開一個新的空白試算表:
在 A1 輸入 IMPORTRANGE 的指令:
=IMPORTRANGE(
接下來呢,記得在頭尾加上雙引號,在引號中間直接複製貼上我們的連結:
=IMPORTRANGE("https://docs.google.com/spreadsheets/d/1sfU1DFWQVPBP5dGEgDHPlVXxKeMIwKhCo5zEGADOHKI/edit#gid=0"
如圖:
再來,我想要指定匯入的範圍,Example 的 A 欄到 E 欄。因為來源的試算表只有一份工作表,(記得在頭尾加上雙引號)我可以直接寫:
=IMPORTRANGE("https://docs.google.com/spreadsheets/d/1sfU1DFWQVPBP5dGEgDHPlVXxKeMIwKhCo5zEGADOHKI/edit#gid=0","A:E")
當然,如果我想要寫得更清楚一點,也可以:
=IMPORTRANGE("https://docs.google.com/spreadsheets/d/1sfU1DFWQVPBP5dGEgDHPlVXxKeMIwKhCo5zEGADOHKI/edit#gid=0","Example!A:E")
如圖:
按下 Enter 之後,你應該會看到一個 #REF! 的錯誤訊息,顯示「您必須連結這些試算表」:
別怕,「允許存取」直接按下去就對了!這是因為試算表必須要取得權限,才能使用 IMPORTRANGE 自其他試算表擷取資料。如果這是這個試算表第一次與其他試算表擷取資料,就會出現這個訊息喔。按下去「允許存取」後:
嘿嘿,出現啦!是不是很簡單啊~
這麼一來,就算來源的資料有任何變動,結果也會直接反映在 IMPORTRANGE 過後的資料,兩邊的試算表就這樣連結起來、同步更新囉!
應用建議:跟 QUERY 一起用吧!
IMPORTRANGE 匯入進來的資料想要再排序、篩選、甚至聚集計算加總等等,可以用 QUERY 來幫忙喔!語法就會像是:
=QUERY(IMPORTRANGE(試算表連結, 要匯入的範圍),”QUERY 語句”)
但要注意的是,在 QUERY 語句裡,我們不能用 A、B、C 等欄位字母來取得欄位資料,而是用另外一種表現方式:Col1、Col2、Col3 等等,對應到原試算表的欄位。例如:
=QUERY(IMPORTRANGE(xxxx, Data!A:E),
”SELECT Col1, Col2, Col3”)
這邊的 Col1 就會對應到原本試算表範圍的第一欄、Col2 就會是第二欄、Col3 就會是第三欄,以此類推。
不太確定 QUERY 是什麼嗎?歡迎到我的 QUERY 系列文看看:
另外,利用 FILTER、SORT、UNIQUE 等對範圍進行資料處理的函式也是我很推薦的應用,至於上面的這三個函式怎麼應用,我之後也會另外發個文講解,建議大家可以先看看官方文件的解說,說明也都還滿詳盡的:
FILTER:針對指定範圍只傳回符合指定條件的資料列或資料欄。
SORT:以一欄或多欄中的值為依據,排列指定陣列或範圍內的資料列順序。
UNIQUE:傳回來源範圍中的不重複資料列,忽略重複資料列。
發生錯誤怎麼辦?
這邊列出幾個常見的錯誤:
#ERROR!:結果過大
來源資料實在有太多資料了,沒辦法一次匯入完畢!建議可以分段處理範圍,一段一段匯入,或是再次考慮一下是不是不需要那麼多資料。
#REF!:您沒有該試算表的存取權限。
有兩個可能:
- 來源的試算表沒有開放你的權限喔!可以跟試算表的主人確認一下。
- 你的檔案是 xls、xlsx 或是從 Excel 產生出來的檔案,試著轉存成 Google 試算表的格式看看。(工具列「檔案」>「儲存成 Google 試算表」)
#ERROR!:公式剖析錯誤。
連結跟範圍的字串頭尾都加上雙引號了沒呢?還是是不是函式本身缺了什麼、多了什麼呢?建議來回檢查一下!
以上就是我們的 IMPORTRANGE 教學!在我的工作上,因為資料每分鐘都會更新、而主管也有即時查看數據、立刻做出判斷的需求, IMPORTRANGE 就成了我每日資料分析時不可或缺的有力工具,而且搭配 QUERY 更是效率加倍,可以快速爬梳資料,非常方便~
如果你喜歡這次的文章,歡迎你透過這些方法支持我:
・按下愛心、按下儲存
・留言告訴我你的想法
・加入喜特先生的官方沙龍,即時看到我發布的教學
・付費訂閱喜特先生的官方沙龍,加入每月小額訂閱方案
・追蹤喜特先生的 Facebook
・按這邊小額贊助我的創作!
我是喜特先生,Mr. Sheet,我們下個教學見!