ExcelのENCODEURL関数の使い方|URLエンコードを自動化

スポンサーリンク

ExcelでURLを扱うとき、日本語やスペースが含まれるとリンクが正しく動かない――そんな経験はありませんか。

手作業でURLエンコードするのは面倒ですし、変換ミスも起きやすいですよね。

ExcelのENCODEURL関数を使えば、文字列をURLエンコードした結果を一発で取得できます。この記事では、基本的な使い方からWEBSERVICE関数やHYPERLINK関数との連携パターンまで解説していきます。

ExcelのENCODEURL関数とは?

ENCODEURL関数は、文字列をURLエンコードする関数です。読み方は「エンコード・ユーアールエル」です。

「ENCODE」は「符号化する」、「URL」は「Uniform Resource Locator(ウェブアドレス)」を意味します。つまり「URLに使える形式に変換する」関数ですね。

URLエンコードとは

URLエンコード(パーセントエンコーディング)とは、URLに使えない文字を %XX の形式に変換する仕組みです。

たとえば、日本語の「エクセル」をURLエンコードすると %E3%82%A8%E3%82%AF%E3%82%BB%E3%83%AB になります。半角スペースは %20 に変換されます。

ブラウザのアドレスバーでは日本語がそのまま表示されることもあります。しかし、実際の通信ではURLエンコードされた文字列が使われていますよ。

ENCODEURL関数はUTF-8でエンコードし、RFC 3986 / RFC 2396に準拠しています。

ENCODEURL関数の書き方(構文と引数)

基本構文

=ENCODEURL(文字列)

引数は1つだけなので、覚えやすい関数です。

引数の説明

引数必須/省略可説明
文字列必須URLエンコードしたい文字列を指定する

引数には、直接文字列を入力する方法とセル参照で指定する方法があります。文字列を直接入力する場合は、ダブルクォーテーション(")で囲む必要がありますよ。

ENCODEURL関数の基本的な使い方

文字列を直接指定する

URLを直接入力してエンコードする、もっともシンプルな使い方です。

=ENCODEURL("https://mashukabu.com/売上レポート.xlsx")

この数式を入力すると、以下の結果が返ります。

https%3A%2F%2Fmashukabu.com%2F%E5%A3%B2%E4%B8%8A%E3%83%AC%E3%83%9D%E3%83%BC%E3%83%88.xlsx

URLの中の日本語「売上レポート」や、スラッシュ(/)、コロン(:)がすべてパーセントエンコーディングに変換されているのがわかりますね。

セル参照で指定する

実務では、セルに入力されたURLをまとめてエンコードするケースが多いです。

=ENCODEURL(A2)

A2セルに 東京都 渋谷区 と入力されている場合、結果は %E6%9D%B1%E4%BA%AC%E9%83%BD%20%E6%B8%8B%E8%B0%B7%E5%8C%BA になります。半角スペースが %20 に変換されている点に注目してください。

日本語をエンコードする

検索クエリに日本語を使う場面で便利な使い方です。

=ENCODEURL("Excel 関数 使い方")

結果は Excel%20%E9%96%A2%E6%95%B0%20%E4%BD%BF%E3%81%84%E6%96%B9 です。英数字はそのまま残り、日本語と半角スペースだけがエンコードされます。

ENCODEURL関数の実務活用パターン

基本がわかったところで、実務で役立つ組み合わせパターンを紹介します。

WEBSERVICE関数と組み合わせてAPI連携する

ENCODEURL関数の最も実用的な使い方が、WEBSERVICE関数との連携です。WEBSERVICE関数(Webサービスからデータを取得する関数)とFILTERXML関数(XMLデータから特定の値を抽出する関数)を組み合わせると、ExcelからWeb APIのデータを直接取得できます。

=WEBSERVICE("https://api.example.com/search?q=" & ENCODEURL(A2))

A2セルに検索キーワードを入力するだけで、APIにリクエストを送れます。日本語のキーワードもENCODEURL関数が自動でエンコードしてくれますよ。

さらにFILTERXML関数を加えると、取得したXMLデータから必要な部分だけを抜き出せます。

=FILTERXML(WEBSERVICE("https://api.example.com/data?q=" & ENCODEURL(A2)), "//result/value")

HYPERLINK関数でリンクを自動生成する

HYPERLINK関数と組み合わせれば、日本語を含むURLでも正しく動くリンクを自動生成できます。

たとえば、商品名が入ったセルから検索リンクを作るケースを考えてみましょう。

=HYPERLINK("https://www.google.com/search?q=" & ENCODEURL(B2), "検索する")

B2セルに「Excel ENCODEURL」と入力すると、クリックでGoogle検索が開くリンクが作成されます。商品リストから一括で検索リンクを生成したいときに便利ですよ。

文字列関数と組み合わせてURLを構築する

SUBSTITUTE関数CONCATENATE関数TEXTJOIN関数と組み合わせると、複雑なURLも柔軟に構築できます。

たとえば、複数のパラメータを含むURLを組み立てる場合はこのように書きます。

="https://example.com/api?name=" & ENCODEURL(A2) & "&city=" & ENCODEURL(B2)

A2に「田中太郎」、B2に「東京都」と入力すれば、パラメータごとに正しくエンコードされたURLが完成します。

ENCODEURL関数の対応環境と注意点

対応バージョン一覧

バージョン対応状況
Microsoft 365対応
Excel 2024対応
Excel 2021対応
Excel 2019対応
Excel 2016対応
Excel 2013対応(初搭載)
Excel 2010以前非対応

ENCODEURL関数はExcel 2013で追加された関数です。お使いのバージョンが対応しているか確認しておきましょう。

Mac版・Web版では使えない

ENCODEURL関数はWindows OSの機能に依存しています。そのため、以下の環境では使用できません。

  • Excel for Mac: 関数ギャラリーには表示されますが、結果を返しません
  • Excel for the web(Excel Online): 利用不可

Mac版をお使いの場合は、オンラインのURLエンコードツールを利用するか、VBAで代替する方法を検討してみてください。

チルダ(~)のエンコードについて

ENCODEURL関数はチルダ(~)を %7E にエンコードします。現在のRFC 3986ではチルダは非予約文字(エンコード不要)ですが、旧仕様のRFC 1738に準拠した挙動になっています。

ほとんどのWebサーバーは %7E を正しく処理するので、実用上は問題ありませんよ。

よくあるエラーと対処法

#VALUE!エラー

引数に無効なデータ型を指定した場合に発生します。数値やエラー値ではなく、文字列またはセル参照を指定してください。

WEBSERVICE関数と組み合わせた場合、エンコード後のURLが2,048文字を超えると #VALUE! エラーになることがあります。長いURLを扱うときは注意しましょう。

#NAME?エラー

以下のどちらかが原因です。

  • 関数名のスペルミス: ENCODEURL を正確に入力しているか確認してください
  • 非対応バージョン: Excel 2010以前では ENCODEURL関数が使えません。バージョンを確認してみてください

Mac版やWeb版で #NAME? エラーが表示される場合も、環境が非対応であることが原因です。

まとめ

ExcelのENCODEURL関数の使い方を解説しました。ポイントをおさらいしましょう。

  • ENCODEURL関数は =ENCODEURL(文字列) の1引数だけで使えるシンプルな関数
  • 日本語やスペースを含む文字列を %XX 形式にURLエンコードできる
  • WEBSERVICE関数 + FILTERXML関数と組み合わせるとExcelからAPI連携が可能
  • HYPERLINK関数との併用で、日本語を含む検索リンクを自動生成できる
  • 対応環境はWindows版のExcel 2013以降。Mac版・Web版では使えない

URLを手作業でエンコードしている方は、ぜひENCODEURL関数を試してみてくださいね。

タイトルとURLをコピーしました