Google 試算表 IMPORTXML 函數常見問題原因

Google 試算表可以使用 IMPORTXML 匯入網頁或其他各種線上檔案,但是會遇到 #ERROR!、#N/A 、#VALUE!、回傳多值的錯誤。說明問題原因與建議處理方式。

Photo by Thought Catalog on StockSnap


錯誤狀況

使用 IMPORTXML 輸入網址,直接取得網頁標題會遇到不同錯誤狀況:

1. 「#ERROR!」錯誤:公式剖析錯誤。


原因:IMPORTXML 第二個參數「Xpath 查詢」指定路徑不存在

解決方法:檢查「Xpath 查詢」的路徑。例如寫錯「/html/body/title」,應該改成「/html/head/title」

2. 「#N/A」錯誤:無法擷取網址: 

原因:可能對方網站阻擋了 IMPORTXML 取得網頁標題,導致出現 #N/A 錯誤。由於是伺服器端的錯誤,目前我不清楚解決原因,歡迎留言。

3. 「#N/A」錯誤:指定網址內容的資源超出大小上限。

原因:對方網站網頁內容太長,導致 Google 試算表拒絕解析。可以嘗試找尋檔案較小的行動版網頁。由於是伺服器端的錯誤,使用者不太能施力處理,

4. 「#VALUE!」錯誤:函式 IMPORTXML 的第 1 參數 的值「」不是有效網址。

原因:第一個參數不能是空值、需要是有效的網址

5. IMPORTXML 取得的標題欄位值是多值,而非單值。

= IMPORTXML(A1, "//title")

原因:在撰寫良好的網頁語法,Xpath 查詢條件可以預期只有一個「//title」。但是如果網頁沒有寫好,就會造成多值的狀況發生。

解決方法:

= IMPORTXML(A1, "//html/head/title")

= INDEX(IMPORTXML(A1, "//title"), 1)

限定 Xpath 查詢條件是在 <head> 標籤內的 <title> 標籤,或者是從回傳的多值內取第一個值。


參考資料

留言