スプレッドシートで日本語を含むURLを作りたい。でもそのまま貼り付けると文字化けしたり、リンクが正しく開かなかったりしますよね。
URLに日本語や特殊文字が含まれていると、ブラウザが正しく解釈できないことがあります。手作業で「%E3%81%82」のような変換をするのは現実的ではありません。
そんなときに使えるのがENCODEURL関数です。セルの文字列を自動でURLエンコードしてくれるので、リンク生成がぐっと楽になります。
この記事では、スプレッドシートのENCODEURL関数の基本から実務で使える活用パターンまで紹介します。
スプレッドシートのENCODEURL関数とは?
ENCODEURL関数(読み方: エンコードユーアールエル)は、文字列をURLエンコード(パーセントエンコーディング)する関数です。
名前は「ENCODE(変換する)」+「URL」で、URLに使える形式に文字列を変換するという意味です。
たとえば「東京都」という文字列を渡すと、%E6%9D%B1%E4%BA%AC%E9%83%BDに変換されます。この変換を「パーセントエンコーディング」と呼びます。
ENCODEURL関数でできることをまとめると、次のとおりです。
- 日本語テキストをURL用の文字列に変換する
- スペースや記号など、URLで使えない文字を自動変換する
- 他の関数と組み合わせて検索URLやAPIリクエストURLを自動生成する
NOTE
ENCODEURL関数はGoogleスプレッドシート独自の関数です。ExcelにもENCODEURL関数はありますが、Windows版限定でMac版Excelでは使用できません。詳しくは後半の「ExcelのENCODEURL関数との違い」セクションで解説しています。
ENCODEURL関数の書き方(構文と引数)
基本構文
=ENCODEURL(テキスト)
カッコの中にエンコードしたい文字列を指定します。引数は1つだけなので、とてもシンプルです。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| テキスト | 必須 | URLエンコードしたい文字列。セル参照または直接入力 |
文字列を直接入力する場合はダブルクォーテーション(")で囲みます。セル参照の場合はそのまま指定できます。
=ENCODEURL("東京都")
=ENCODEURL(A2)
TIP
英数字と一部の記号(ハイフン
-、アンダースコア_、ピリオド.、チルダ~)はエンコードされずそのまま返ります。これはRFC 3986というURL仕様の標準ルールに従った動作です。
ENCODEURL関数の基本的な使い方
日本語テキストをURLエンコードする
まずは基本的な使い方を見てみましょう。A列に日本語テキストを入れ、B列でENCODEURL関数を使います。
| A列(元テキスト) | B列(数式) | B列(結果) | |
|---|---|---|---|
| 2行目 | 東京都 | =ENCODEURL(A2) | %E6%9D%B1%E4%BA%AC%E9%83%BD |
| 3行目 | 渋谷区 | =ENCODEURL(A3) | %E6%B8%8B%E8%B0%B7%E5%8C%BA |
| 4行目 | Hello | =ENCODEURL(A4) | Hello |
「Hello」のように半角英数字だけの場合はそのまま返ります。エンコードが必要な文字だけが変換される仕組みです。
記号・スペースのエンコード
URLでよく使われる記号やスペースがどう変換されるかを確認しておきましょう。
| 元の文字 | 変換後 | 備考 |
|---|---|---|
| スペース | %20 | URLのスペースは%20に変換される |
| & | %26 | パラメータ区切りと区別するため |
| = | %3D | キーと値の区切りと区別するため |
| ? | %3F | クエリ開始文字と区別するため |
| # | %23 | フラグメント文字と区別するため |
| / | %2F | パス区切りと区別するため |
URLの構造に使われる記号は、パラメータの「値」として使うときにエンコードが必要です。ENCODEURL関数はこれらを自動で処理してくれますよ。
実務で使えるENCODEURL関数の活用例
Google検索URLを自動生成する
セルに入力したキーワードから、Google検索結果ページのURLを自動で作れます。リサーチ業務で複数のキーワードを一括検索したいときに便利です。
A列に検索キーワードを入れ、B列で検索URLを組み立てます。
="https://www.google.com/search?q="&ENCODEURL(A2)
| A列(キーワード) | B列(生成されたURL) | |
|---|---|---|
| 2行目 | スプレッドシート 使い方 | https://www.google.com/search?q=%E3%82%B9%E3%83%97%E3%83%AC%E3%83%83%E3%83%89%E3%82%B7%E3%83%BC%E3%83%88%20%E4%BD%BF%E3%81%84%E6%96%B9 |
生成されたURLをブラウザに貼り付ければ、そのキーワードの検索結果が表示されます。
HYPERLINK関数と組み合わせれば、セルをクリックするだけで検索結果に飛べるリンクも作れます。
=HYPERLINK("https://www.google.com/search?q="&ENCODEURL(A2), A2&"を検索")
これで「スプレッドシート 使い方を検索」というリンクテキストが表示され、クリックするとGoogle検索が開きます。
Googleマップ検索URLを作成する
住所リストから地図検索リンクを一括で作成できます。営業先リストや店舗一覧の管理に活用できますよ。
=HYPERLINK("https://www.google.com/maps/search/"&ENCODEURL(A2), "地図を開く")
A列に住所を入れておけば、「地図を開く」をクリックするだけでGoogleマップが開きます。
HYPERLINK関数と組み合わせてクリック可能なリンクにする
ENCODEURL関数で生成したURLは、そのままではただの文字列です。クリックして開けるリンクにするにはHYPERLINK関数と組み合わせましょう。
基本の組み合わせパターンはこちらです。
=HYPERLINK("ベースURL"&ENCODEURL(パラメータ), "表示テキスト")
たとえば、商品名からAmazon検索リンクを作る場合は次のように書きます。
=HYPERLINK("https://www.amazon.co.jp/s?k="&ENCODEURL(A2), A2&"を検索")
&(アンパサンド)で文字列を結合しています。文字列結合をもっと複雑にする場合はCONCATENATE関数も活用してみてください。
複数パラメータのURLを組み立てる
クエリパラメータが複数あるURLも組み立てられます。各パラメータの値だけをENCODEURLでエンコードするのがポイントです。
たとえば、URLの?key1=値1&key2=値2という形式を作るには次のように書きます。
="https://example.com/api?name="&ENCODEURL(A2)&"&city="&ENCODEURL(B2)
| A列(名前) | B列(都市) | C列(生成URL) | |
|---|---|---|---|
| 2行目 | 田中太郎 | 東京都 | https://example.com/api?name=%E7%94%B0%E4%B8%AD%E5%A4%AA%E9%83%8E&city=%E6%9D%B1%E4%BA%AC%E9%83%BD |
URLの構造部分(https://、?、&、=)はエンコードせず、値の部分だけをENCODEURLで変換します。ここを間違えるとURLが壊れるので注意してください。
ENCODEURL関数のよくあるエラーと対処法
ENCODEURL関数は引数が1つだけなのでエラーは少ないですが、以下のケースに注意してください。
| 状況 | 結果 | 対処法 |
|---|---|---|
引数なし =ENCODEURL() | 数式エラー | テキストまたはセル参照を指定する |
| 空のセルを参照 | 空文字列(空白) | IF関数で空セルチェックを入れる |
| 数値を渡した場合 | 数値がそのまま文字列として返る | 意図どおりならそのままでOK |
空セルを参照したときにURLのベース部分だけ残ってしまうのを防ぐには、IF関数で分岐させましょう。
=IF(A2="","",HYPERLINK("https://www.google.com/search?q="&ENCODEURL(A2), "検索"))
A2が空なら空白、値があれば検索リンクを表示します。
ExcelのENCODEURL関数との違い
ExcelにもENCODEURL関数がありますが、対応環境に大きな違いがあります。
| 比較項目 | Googleスプレッドシート | Excel |
|---|---|---|
| 対応環境 | すべての環境(PC・スマホ・ブラウザ) | Windows版のみ(Mac版は非対応) |
| Web版 | 対応 | Excel for the webは対応 |
| 構文 | =ENCODEURL(テキスト) | =ENCODEURL(テキスト) |
| エンコード方式 | UTF-8 | UTF-8 |
構文とエンコード方式は同じですが、対応環境が異なります。Mac環境で作業する方はスプレッドシートのほうが確実に使えますよ。
また、ExcelのENCODEURL関数はWindowsのOS機能に依存しています。そのためMac版Excelでは#VALUE!エラーになります。Mac環境でURLエンコードが必要な場合は、Googleスプレッドシートを使うのがおすすめです。
なお、URL文字列のなかで特定の文字を置き換えたい場合は、SUBSTITUTE関数を使うとさらに柔軟に対応できます。
まとめ
スプレッドシートのENCODEURL関数について、基本から実務での活用パターンまで紹介しました。
ポイントをおさらいしておきましょう。
- ENCODEURL関数は文字列をURLエンコードする関数
- 引数は1つだけ。エンコードしたい文字列を指定するだけ
- 英数字と一部の記号(
-_.~)はそのまま、日本語や特殊記号は%XX形式に変換される - HYPERLINK関数と組み合わせるとクリック可能なリンクを自動生成できる
- Google検索URL、マップURL、複数パラメータURLなど実務活用の幅が広い
- Googleスプレッドシート独自関数で、ExcelはWindows版のみ対応
日本語を含むURLを扱う場面はリサーチ業務や営業リスト管理などで意外と多いものです。ENCODEURL関数を覚えておくと、URL生成の手作業を大幅に減らせますよ。
