跳到主要內容跳到頁尾

HYPERLINK 與 ENCODEURL:用公式批量做連結,網址裡的中文和符號要編碼

4 分鐘閱讀Lv.3 中級摘要與日期

用公式產生可以點的連結:HYPERLINK 的網址與顯示文字、連到同一份試算表的某個儲存格、搭配 ENCODEURL 把品名放進搜尋網址。附編碼前後的對照結果。

發布 更新

文章目錄

清單有幾十個品項,每個都要附一個商品頁的連結,一個一個貼上去太花時間了。如果網址只有結尾的代碼不一樣,用 HYPERLINK 搭配 & 串接,一條公式往下填就好。

網址裡放中文品名或有 & 的名稱時,連結常常點開就壞掉,這時候要靠 ENCODEURL 先編碼。這兩個函式常常一起出場,所以放在同一篇。

我自己用最多的情境,是在清單旁邊加一欄「搜尋」,點一下就用品名去查,不用另外複製貼上。

怎麼選

想做的事用這個
讓儲存格變成可點的連結,顯示自訂文字HYPERLINK
連結要依資料自動變HYPERLINK 搭配 &
連到同一份試算表的某個工作表或儲存格HYPERLINK,網址寫成 #gid= 開頭
把品名、關鍵字放進網址的查詢參數先用 ENCODEURL 編碼,再接到網址後面

只要連結固定、不需要批量,直接用「插入」>「插入連結」,或選取儲存格後按 Ctrl+K(Mac 為 Cmd+K,在 Chrome 上),比寫公式簡單。

HYPERLINK 會在儲存格裡建立一個可以點的連結,儲存格顯示的是你指定的文字。

語法:

  • 網址:連結要去哪裡,要用雙引號包起來,或是指定一個放網址的儲存格。
  • 顯示文字:選填,儲存格上看到的字。不填的話,就直接顯示網址。

最簡單的寫法:

Google 試算表公式
fx

顯示文字是 Google,點下去開啟網址

=HYPERLINK("https://www.google.com", "Google")

儲存格顯示 Google,點下去會開啟網址。不填第二個參數, 顯示的就是 https://example.com。網址沒寫通訊協定時,會自動補上 http://;只有 http、https、mailto、ftp 會變成可點的連結,其他協定只會顯示成文字。

依資料自動變

清單的 A 欄是商品代碼,B 欄是品名:

AB
1代碼品名
2T-17蘋果紅茶
3T-04烏龍奶茶
4T-25桂花烏龍

要在 C 欄做出每個品項的商品頁連結,網址是 https://example.com/menu/ 加上代碼:

Google 試算表公式
fx

把固定網址和 A2 的代碼接起來,顯示 B2 的品名

=HYPERLINK("https://example.com/menu/" & A2, B2)

C2 顯示「蘋果紅茶」,實際連到 https://example.com/menu/T-17。往下填就是另外兩列。這個 example.com 只是示範,換成你自己的網站。

連到同一份試算表的某個儲存格

目錄頁常常需要點一下就跳到另一個工作表。網址寫成 #gid=工作表編號&range=儲存格,就是同一份試算表內的連結。

工作表編號(gid)在瀏覽器網址列:切到那個工作表,網址最後面的 #gid= 後面那串數字就是。第一個工作表通常是 0。

Google 試算表公式
fx

連到 gid 為 0 的工作表的 B3

=HYPERLINK("#gid=0&range=B3", "跳到 B3")

儲存格顯示「跳到 B3」,點下去會選取 gid 0 工作表的 B3。如果點了沒反應,可以改成完整網址 https://docs.google.com/spreadsheets/d/試算表編號/edit#gid=0&range=B3。連到另一個工作表就把 0 換成它的 gid,要連到別份試算表,則需要完整網址。

如果編號會變動,可以把 gid 放在儲存格,再用 & 串起來:。

ENCODEURL

ENCODEURL 會把文字編碼成可以放進網址的樣子:中文、空白、&、? 這些字元,全部換成 % 加兩位十六進位的代碼。

語法:

  • 文字:要編碼的字串。

舉例,把「蘋果紅茶」編碼:

Google 試算表公式
fx

中文每個字轉成 UTF-8 的三組 %XX

=ENCODEURL("蘋果紅茶")

結果是 %E8%98%8B%E6%9E%9C%E7%B4%85%E8%8C%B6。每個中文字會變成三組 %XX,這是它的 UTF-8 位元組。

為什麼需要它?看看名稱裡有符號的情形。「茶 & 咖啡」編碼之後:

Google 試算表公式
fx

空白與 & 也會被編碼

=ENCODEURL("茶 & 咖啡")

結果是 %E8%8C%B6%20%26%20%E5%92%96%E5%95%A1,空白是 %20、& 是 %26。如果沒編碼就直接放進網址,& 會被當成「下一個參數開始」,查詢字串就被截成一半了。

最常見的用法,就是把兩個函式組在一起。A2 放品名,要做出「用 Google 搜尋這個品名」的連結:

Google 試算表公式
fx

品名先編碼再接到搜尋網址後面,顯示文字也帶品名

=HYPERLINK("https://www.google.com/search?q=" & ENCODEURL(A2), "搜尋 " & A2)

A2 是「蘋果紅茶」的話,儲存格顯示「搜尋 蘋果紅茶」,實際的網址是 https://www.google.com/search?q=%E8%98%8B%E6%9E%9C%E7%B4%85%E8%8C%B6。

網址裡有中文,現在的瀏覽器通常會自己補編碼,所以單純的中文關鍵字沒編碼也常常點得開。不過保險的做法還是統一用 ENCODEURL,遇到 &、#、空白這類字元時才不會出事。

不要拿整個網址來編碼

ENCODEURL 只該用在要放進網址的那一小段文字。如果把整個網址丟進去:

Google 試算表公式
fx

連冒號和斜線都被編碼,結果不能直接當連結用

=ENCODEURL("https://example.com/?q=蘋果")

結果是下面這串,連 :、/、?、= 都被換掉,拿去當連結是打不開的:

text
https%3A%2F%2Fexample.com%2F%3Fq%3D%E8%98%8B%E6%9E%9C

要編碼的只有 q= 後面的那段值。


這兩個函式都沒有複雜的參數,真正花時間的是組網址。先在儲存格把網址拼出來,確認字串對,再包進 HYPERLINK,除錯會輕鬆很多。

分享:
#HYPERLINK#ENCODEURL#超連結#網址編碼
喜特先生 Mr. Sheet

喜特先生 Mr. Sheet

數據分析師/商業分析師

八年工作經驗,跨不同業界解決數據需求。做過的案例都整理在作品集。

接下來可以

相關文章

查看所有文章

留言討論

共 0 則留言

訂閱電子報,新文章上線就通知你

免費,隨時可取消。

送出即表示同意服務條款與隱私權政策。