Google 試算表加 Google 地圖函式,自動計算行程距離、時間與地址



今天這篇文章,要介紹一個最近看到,由 Amit Agarwal  開發的 Google 試算表「自訂函式」,結合 Google 地圖的函式運算語法:

可以在 Google 試算表中,自動計算出兩地距離、開車時間、景點轉換成地址、地址轉換出國家或經緯度等等。

Amit Agarwal 是印度最早期、最知名的部落格作者之一,經營的「Digital Inspiration」多年來一直都是全球知名的技術網站,尤其以開發許多 Google 服務的外掛而聞名。(例如電腦玩物之前也有介紹過的:Google Forms Email Notifications 自動寄送客製化報名確認郵件

下面要分享的 Google 試算表結合 Google 地圖函式,並非 Google 試算表的原生函數,而是由 Amit Agarwal 所提供的自訂函式(想知道原始程式碼語法,可以參考其原文:Google Maps Formulas for Google Sheets)。

不會寫程式碼的朋友也不用擔心,因為 Amit Agarwal 也提供已經設定好的「 Google 試算表範本」,提供有需要的人複製使用,這時候不需要自己寫腳本,也能直接套用 Google 地圖函式。




當「 Google 試算表」中可以結合「 Google 地圖的函式運算」,能夠創造什麼利用呢?

除了可以把 Google 試算表變成你需要的地圖資料庫外,或許也可以用在單純的「排行程」、「管理寄件清單」這些日常工作上。

例如,在 Google 試算表排出行程,利用「 Google 地圖函式」,自動計算每一段行程的距離、開車時間、目的地地址等等。

下面我就用這個例子,示範看看這套「 Google 試算表 + Google 地圖函式範本」,可以如何利用。





首先,因為 Google 地圖函式其實沒有內建在 Google 試算表中,所以我們必須先下載原創者 Amit Agarwal  提供的「 Google 試算表副本」,直接點擊連結,就會在你自己的 Google 雲端硬碟建立一份 Google 試算表副本。

這個 Google 試算表檔案中,已經包含了 Google 地圖自訂函式,可以用各種語法來演算 Google 地圖上的資料。





擁有這份專屬的 Google 試算表副本後,裡面已經內建了自訂函式,可以開始實現我想做到的行程表範例了。

接下來,我會在這份試算表副本,開一個新的工作表分頁,然後先建立行程表單的欄位:

  • 日期:手動安排
  • 出發地:手動安排
  • 目的地:手動安排
  • 距離:讓 Google 函式自動計算
  • 時間:讓 Google 函式自動計算
  • 地址:讓 Google 函式自動計算

需要手動安排的部分,我先自己填上資料。




接著就可以套用 Google 地圖函式,自動衍伸需要的結果。

第一個要自動計算的欄位是「距離」,我可以輸入下面的公式:

=GOOGLEMAPS_DISTANCE("出發地","目的地","交通方式")

例如:
=GOOGLEMAPS_DISTANCE(B2,C2)

或是:
=GOOGLEMAPS_DISTANCE("基隆東岸停車場","角板山公園")

就能在這一欄,自動計算出距離的結果。如果我輸入的是中文的地名,計算出來的距離單位就會是 km。

另外,實際測試也發現,不需要輸入精準的地址,只要有大概的地名,就算有一兩個字的誤差, Google 地圖函式都會自動搜尋判斷。




第二個要自動計算的欄位是「時間」,這也是我覺得排行程時最實用的,可以很簡單估算車程,方便安排行程數量與時間。

我可以輸入下面的公式:

=GOOGLEMAPS_DURATION("出發地","目的地","交通方式")

交通方式可以輸入:driving, walking, bicycling, transit 這些選擇。

例如:
=GOOGLEMAPS_DURATION(B2,C2,"driving")

或是:
=GOOGLEMAPS_DURATION("基隆東岸停車場","角板山公園","driving")

同樣的,只要輸入大概地名、景點,就能自動計算車程時間。




第三個欄位,希望直接顯示目的地的「地址」,不過這邊只能自動計算出英文的地址。

公式是:
=GOOGLEMAPS_ADDRESS("地點名稱")

只要輸入大概的地點名稱,就能自動轉換成完整的地址。




除此之外,這個 Google 地圖自訂函式,還有很多其他的語法,例如:

  • 地址轉成國家
    • =GOOGLEMAPS_COUNTRY("台北101")
  • 地點轉換成經緯度
    • =GOOGLEMAPS_LATLONG(台北大安森林公園)

有需要的朋友,可以自行思考看看有什麼延伸用途,也歡迎你留言分享。

以上分享我自己用得到的實作案例,需要的朋友,則請參考與下載原創者 Amit Agarwal 的檔案:


或者可以進一步研究其他的 Google 試算表利用:

留言

  1. 看到最近城邦又開始有講會
    時間管理三十道難題,會磅礡重啟嗎?

    回覆刪除
  2. 來,建議一下,時間管理的三十道難題講會
    可以採用現場 youtube 直播;永錫 最近直播也播的很開心
    一隻手機就可以搞定
    社群傳播的效應大

    這次的出版,非生產力工具,大家對時間管理的認知
    可能是又期待又怕受傷害

    好好地弄一場大的,把劣勢轉化為優勢

    回覆刪除
    回覆
    1. 算了,當我沒提好了
      反正,也不會辦

      刪除
  3. Google Script 程式用到很多我不會的技巧,學到很多 :)

    回覆刪除
    回覆
    1. 提供一個可以在 Google 試算表將金額轉為國字大寫的公式:
      https://docs.google.com/spreadsheets/d/1w6uejtNbFMm7oyFdR2G1UOSCnCKAaueL5G1DgyHC3Do/copy
      超過12位數(千億以上)不予計算
      希望有幫到有需要的人。

      刪除
  4. 請問有辦法把距離單位改成公尺嗎?
    好像沒辦法直接從指令碼編輯器裡面改~~

    回覆刪除
  5. 您好~
    請問原已設定好可使用狀態,但突然沒有更新了,重新設定也一樣,這可能是什麼原因造成得。 謝謝~

    回覆刪除
  6. 請問要如何將上面個地點所算出來的距離公里加總,因為我發現他是純文字,無法強迫為數字,我該如何做呢?weisheng1788@gmail.com

    回覆刪除
    回覆
    1. 用 value 可以把文字轉數字

      刪除
  7. 我用這個副本計算兩地點間的距離,常常會跳出底下這個錯誤訊息

    EXCEPTION:SERVICE INVOKED TOO MANY TIMES FOR ONE DAY;ROUTE (第89行)

    甚至我連直接用副本裡面的公式
    =GOOGLEMAPS_DISTANCE("Boston", "NY")

    也是跳出這個錯誤訊息

    回覆刪除

張貼留言

為了避免垃圾廣告留言過多,開始測試「留言管理」機制,讓我可以更容易回應讀者留言,並更簡單過濾掉廣告,但只要不是廣告留言都會通過審核。

這個網誌中的熱門文章

全家沖印、 7-11 列印照片誰好用?立可得與 ibon教學+比較表

微軟 Bing AI 繪圖工具 Image Creator 免費開放,30秒輕鬆生成圖片

Google Maps 我的地圖完全教學!規劃自助旅行攻略

3個 ChatGPT 輸入到輸出實驗,第二大腦筆記用 AI 生成文章報告

Arc 瀏覽器 windows 版測試心得,用四大介面改造升級專注工作流

Google 表單的 10 個專業問卷調查設計秘密教學

如何為筆記命名,建立搜尋規則?我的標題、分類、標籤命名法

Draw.io 中文線上製作流程圖首選!專業水準完全免費

如何用 ChatGPT 加速生成一份有圖有文的簡報,實戰案例教學

Google 表單自動關閉回覆教學:時間人數到達就過期