使用 excel 批量處理網址連結中的不規則贅字

如題,使用 excel 批量處理網址連結中不規則的贅字。

底下有指令懶人包。

 

事情是這樣:

使用「Pixnet 痞客邦部落格搬家匯入工具」這個外掛把原本在 pixnet 的文章搬到 wordpress,

除了文章內容跟發文日期,

文章中若有放其他自己站裡文章的連結,

這個外掛也會很貼心一併修改成 wordpress 站中的對應文章編號,

但是,點下去可能會發現,找不到網址QQQ???

 

編輯器切到程式碼模式檢查網址出了甚麼錯,

發現原來連結的 href 後面帶了一串原本 pixnet 文章名稱的 URL 中文編碼,例如:

<a href="https://carlanote.com/post-354955888-%20%E3%80%90%E5%BF%83%E5%BE%97%E3%80%91%E9%95%B7%E6%B4%B1%20%E5%A4%A9%E6%89%8D%E5%9F%BA%E6%9C%AC%E6%B3%95%EF%BC%8D%E3%80%8C%E4%B8%80%E4%BB%A5%E8%B2%AB%E4%B9%8B%E7%9A%84%E5%8A%AA%E5%8A%9B%EF%BC%8C%E4%B8%8D%E5%BE%97%E6%87%88%E6%80%A0%E7%9A%84%E4%BA%BA%E7%94%9F%E3%80%8D">長洱 天才基本法</a>

但我需要的格式是:

<a href="https://carlanote.com/post-354955888">長洱 天才基本法</a>

這就導致了找不到文章的窘況。

 

由於有一篇推薦文章裡有上百個這樣的連結,手動刪的話手好累眼睛也好累,

所以花了點時間研究了一下如何透過 excel 來批次處理。

 

前置作業:

先把文章丟到編輯器的程式碼模式。

然後可以放到隨便一個程式碼編輯器,例如 vscode。

把需要處理的字串用快速鍵全部選起來貼到 excel。

 

A1: 放要處理的網址。

 

<a href="https://carlanote.com/post-354955888-%20%E3%80%90%E5%BF%83%E5%BE%97%E3%80%91%E9%95%B7%E6%B4%B1%20%E5%A4%A9%E6%89%8D%E5%9F%BA%E6%9C%AC%E6%B3%95%EF%BC%8D%E3%80%8C%E4%B8%80%E4%BB%A5%E8%B2%AB%E4%B9%8B%E7%9A%84%E5%8A%AA%E5%8A%9B%EF%BC%8C%E4%B8%8D%E5%BE%97%E6%87%88%E6%80%A0%E7%9A%84%E4%BA%BA%E7%94%9F%E3%80%8D">長洱 天才基本法</a>

 

B1: 放贅字開頭的位置,也就是這串文字最後的那個槓槓,在網址中的位置。

<a href="https://carlanote.com/post-354955888-

 

=FIND("/post", A1)+15

這邊用 FIND() 找到 /post 的位置,但要留意這個找到的位置其實是 / 前方那一個位置,所以要把再 + 5,後頭還有槓槓與九碼文章流水號,所以總共要加 (5+10),這樣取出來才是正確的。

 

C1: 取 href 結尾 "> 的位置。

 

=FIND(""">", A1)

這邊注意因為要查找的雙引號跟函式衝撞,要多寫一次,告訴 excel 這個要查找的雙引號是跳脫字元

 

D1: 取出 B1 C1 中間的內容,也就是網址贅字。

 

=LEFT(RIGHT(A1,LEN(A1)-B1+1),C1-B1)

透過這兩個函式的搭配:

LEFT(text,num_chars)

RIGHT(text,num_chars)

這個有點複雜,

大意是找出 B1 右邊與 C1 左邊。

 

E1: 移除在 D1 找出的網址贅字,完成。

 

=SUBSTITUTE(A1, D1, "")

 
 

懶人包

A1/B1/C1/D1/E1 依序貼上:

需要處理的網址

=FIND("/post", A1)+15

=FIND(""">", A1)

=LEFT(RIGHT(A1,LEN(A1)-B1+1),C1-B1)

=SUBSTITUTE(A1, D1, "")