清單有幾十個品項,每個都要附一個商品頁的連結,一個一個貼上去太花時間了。如果網址只有結尾的代碼不一樣,用 HYPERLINK 搭配 & 串接,一條公式往下填就好。
網址裡放中文品名或有 & 的名稱時,連結常常點開就壞掉,這時候要靠 ENCODEURL 先編碼。這兩個函式常常一起出場,所以放在同一篇。
我自己用最多的情境,是在清單旁邊加一欄「搜尋」,點一下就用品名去查,不用另外複製貼上。
怎麼選
| 想做的事 | 用這個 |
|---|---|
| 讓儲存格變成可點的連結,顯示自訂文字 | HYPERLINK |
| 連結要依資料自動變 | HYPERLINK 搭配 & |
| 連到同一份試算表的某個工作表或儲存格 | HYPERLINK,網址寫成 #gid= 開頭 |
| 把品名、關鍵字放進網址的查詢參數 | 先用 ENCODEURL 編碼,再接到網址後面 |
只要連結固定、不需要批量,直接用「插入」>「插入連結」,或選取儲存格後按 Ctrl+K(Mac 為 Cmd+K,在 Chrome 上),比寫公式簡單。
HYPERLINK
HYPERLINK 會在儲存格裡建立一個可以點的連結,儲存格顯示的是你指定的文字。
語法:
- 網址:連結要去哪裡,要用雙引號包起來,或是指定一個放網址的儲存格。
- 顯示文字:選填,儲存格上看到的字。不填的話,就直接顯示網址。
最簡單的寫法:
顯示文字是 Google,點下去開啟網址
=HYPERLINK("https://www.google.com", "Google")儲存格顯示 Google,點下去會開啟網址。不填第二個參數, 顯示的就是 https://example.com。網址沒寫通訊協定時,會自動補上 http://;只有 http、https、mailto、ftp 會變成可點的連結,其他協定只會顯示成文字。
依資料自動變
清單的 A 欄是商品代碼,B 欄是品名:
| A | B | |
|---|---|---|
| 1 | 代碼 | 品名 |
| 2 | T-17 | 蘋果紅茶 |
| 3 | T-04 | 烏龍奶茶 |
| 4 | T-25 | 桂花烏龍 |
要在 C 欄做出每個品項的商品頁連結,網址是 https://example.com/menu/ 加上代碼:
把固定網址和 A2 的代碼接起來,顯示 B2 的品名
=HYPERLINK("https://example.com/menu/" & A2, B2)C2 顯示「蘋果紅茶」,實際連到 https://example.com/menu/T-17。往下填就是另外兩列。這個 example.com 只是示範,換成你自己的網站。
連到同一份試算表的某個儲存格
目錄頁常常需要點一下就跳到另一個工作表。網址寫成 #gid=工作表編號&range=儲存格,就是同一份試算表內的連結。
工作表編號(gid)在瀏覽器網址列:切到那個工作表,網址最後面的 #gid= 後面那串數字就是。第一個工作表通常是 0。
連到 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 會把文字編碼成可以放進網址的樣子:中文、空白、&、? 這些字元,全部換成 % 加兩位十六進位的代碼。
語法:
- 文字:要編碼的字串。
舉例,把「蘋果紅茶」編碼:
中文每個字轉成 UTF-8 的三組 %XX
=ENCODEURL("蘋果紅茶")結果是 %E8%98%8B%E6%9E%9C%E7%B4%85%E8%8C%B6。每個中文字會變成三組 %XX,這是它的 UTF-8 位元組。
為什麼需要它?看看名稱裡有符號的情形。「茶 & 咖啡」編碼之後:
空白與 & 也會被編碼
=ENCODEURL("茶 & 咖啡")結果是 %E8%8C%B6%20%26%20%E5%92%96%E5%95%A1,空白是 %20、& 是 %26。如果沒編碼就直接放進網址,& 會被當成「下一個參數開始」,查詢字串就被截成一半了。
搭配 HYPERLINK 做搜尋連結
最常見的用法,就是把兩個函式組在一起。A2 放品名,要做出「用 Google 搜尋這個品名」的連結:
品名先編碼再接到搜尋網址後面,顯示文字也帶品名
=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 只該用在要放進網址的那一小段文字。如果把整個網址丟進去:
連冒號和斜線都被編碼,結果不能直接當連結用
=ENCODEURL("https://example.com/?q=蘋果")結果是下面這串,連 :、/、?、= 都被換掉,拿去當連結是打不開的:
https%3A%2F%2Fexample.com%2F%3Fq%3D%E8%98%8B%E6%9E%9C要編碼的只有 q= 後面的那段值。
這兩個函式都沒有複雜的參數,真正花時間的是組網址。先在儲存格把網址拼出來,確認字串對,再包進 HYPERLINK,除錯會輕鬆很多。
接下來可以
相關文章
查看所有文章網頁資料匯入函式:IMPORTHTML、IMPORTDATA、IMPORTFEED
IMPORTHTML 抓網頁表格與清單、IMPORTDATA 讀 CSV 網址、IMPORTFEED 讀 RSS 訂閱,逐一整理語法、範例、更新頻率、限制與常見錯誤,並說明什麼時候該改用 IMPORTXML。
Google 試算表常用進階函式導覽:QUERY、IMPORTRANGE、GOOGLEFINANCE、SPARKLINE 怎麼選,Excel 有沒有
從 Excel 轉到 Google 試算表,哪些函式要先學、Excel 又有沒有對應?依「解決什麼問題」分組介紹 QUERY、IMPORTRANGE、IMPORTHTML、IMPORTXML、ARRAYFORMULA、SPLIT、REGEX 系列、GOOGLEFINANCE、GOOGLETRANSLATE、DETECTLANGUAGE、IMAGE、SPARKLINE、AI,每個附語法、Excel 對照表與詳細教學連結。
多門市銷售彙總:總部用 IMPORTRANGE 收三家分店的檔案
三家分店各自記一份銷售檔,總部檔用設定表放各店網址,IMPORTRANGE 加 QUERY 只匯需要的欄位,用 {;} 疊成一張匯入表,再用 QUERY 算出各店與各品項的總杯數,最後講新增第四家店要改哪裡。
留言討論
共 0 則留言
