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教學+比較表

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

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

待辦清單到底有用無用?避開完成焦慮,符合人性的使用待辦清單

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

5 條「這時候,不要做」清單打破無意識行動模式的低效率循環

Readwise Reader 如何自訂 AI 中文摘要指令?我的 prompts 分享

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

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

跟分心和平共處,不一定要移除干擾也能專心致志的專注力策略