0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

スプレッドシート上でfacebookのURLをユニコード変換する関数

Last updated at Posted at 2020-05-15

#facebookのリンクがマイマップ上で機能しない
飲食店支援のサイトを作っているのですが、グーグルフォームで店舗のfacebookを入力してもらうと、日本語URLを入れてくる方がいます。
が、これをそのままマイマップの個別項目に入力しても、リンクが途切れちゃって表示されません。

##関数で解決

こちらの任意のセルのところをfacebookアドレスの入力欄に設定しました。

=IF(ENCODEURL(REPLACE(SUBSTITUTE(SUBSTITUTE(IF(ISERROR(LEFT(任意のセル,FIND("?",任意のセル)-1)),任意のセル,LEFT(任意のセル,FIND("?",任意のセル)-1)),"www.",""),"m.facebook","facebook"),1,21,""))<>"","https://facebook.com/"&ENCODEURL(REPLACE(SUBSTITUTE(SUBSTITUTE(IF(ISERROR(LEFT(任意のセル,FIND("?",任意のセル)-1)),任意のセル,LEFT(T3,FIND("?",任意のセル)-1)),"www.",""),"m.facebook","facebook"),1,21,"")), "")

##具体的なポイント
###ENCODEだけでは対応できず
単純にUNICODE変換の関数「ENCODEURL」を使えるかと思ったのですが、こちらの関数を使うとfacebook.com/の最初のスラッシュも認識されず、ドメインがきれいに認識されません。
###モバイルページのリンク・wwwのありなしにも対応
.comあとのスラッシュを認識させるため、文字数で区切りましたが、m.facebookやwwwの有無で失敗するので先にモバイルを表記するm.facebookとwww.facebookなどの表記もすべてwwwなしのPCアドレスに統一してからユニコードに置き換えています。

##懸念点 Facebook以外のアドレスを入力されるとバグる
IF関数でfecebookを含む、などの条件分岐を加えたら良いのかもですが、たまに、ここにInstagramのURLなどを入力されるとバグります。

#現状は使ってません
上記の関数はグーグルフォーム→スプレッドシート→WordPressというフローの中で使っていましたがAppSheetに移行したので、不要になりました。

現行サイト https://www.appsheet.com/start/5e535202-170c-4eca-889e-cb86425f8e34

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?