スプレッドシートでセルにリンクを貼りたい。でも1つずつ右クリックで設定するのは面倒ですよね。
リンクが数十件になると、手作業では時間がかかります。URLを変更したいときも、ひとつずつ修正する羽目になります。
そんなときはHYPERLINK関数の出番です。数式でリンクを作れるので、コピーするだけで一括作成できます。
この記事では、スプレッドシートのHYPERLINK関数の基本から応用パターンまで紹介します。
スプレッドシートのHYPERLINK関数とは?
HYPERLINK関数(読み方: ハイパーリンク関数)は、セルにクリック可能なリンクを作成する関数です。
名前のとおり、ハイパーリンク(Webページや別シートへのジャンプ機能)を数式で設定できます。
HYPERLINK関数でできることをまとめると、次のとおりです。
- WebサイトのURLリンクを作成する
- 同じスプレッドシート内の別シートへのリンクを作成する
- メール作成画面を開くmailtoリンクを作成する
- リンクの表示テキストを自由に設定する
右クリックの「リンクを挿入」と違い、数式なので一括管理が可能です。URLをセル参照にすれば、変更も1か所で済みますよ。
NOTE
HYPERLINK関数はGoogleスプレッドシートの全バージョンで利用可能です。Excelにも同名の関数がありますが、別シートリンクの書き方が異なります。
HYPERLINK関数の書き方(構文と引数)
基本構文
=HYPERLINK(URL, [リンクラベル])
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| URL | 必須 | リンク先のURLやパス。文字列またはセル参照で指定する |
| リンクラベル | 任意 | セルに表示するテキスト。省略するとURL自体が表示される |
第1引数にはWebサイトのURLだけでなく、別シートへのリンクやmailtoリンクも指定できます。
第2引数のリンクラベルは省略可能です。省略するとURLがそのまま表示されるので、テキストを設定しましょう。
基本的な使い方
WebサイトへのURLリンクをつくる
もっともシンプルな使い方は、Webサイトへのリンク作成です。
=HYPERLINK("https://example.com", "サンプルサイトを開く")
この数式を入力すると、セルに「サンプルサイトを開く」と青字で表示されます。クリックするとブラウザでサイトが開きます。
URLをセル参照にすることもできます。A列にURLを入力しておけば、次のように書けます。
=HYPERLINK(A2, "リンクを開く")
こうしておけば、URLを変更したいときはA列の値を書き換えるだけで済みます。
別シートへのリンクをつくる
スプレッドシートでは、同じファイル内の別シートへのリンクも作成できます。
ただし、Excelとは書き方が異なるので注意してください。スプレッドシートでは次のように書きます。
=HYPERLINK("#gid=0", "シート1へ移動")
#gid= のあとにシートのIDを指定します。シートIDの確認方法はこのあと説明しますね。
特定のセルにジャンプしたい場合は &range= を追加します。
=HYPERLINK("#gid=0&range=A1", "シート1のA1へ移動")
TIP
シートIDの確認方法: 対象シートのタブをクリックし、ブラウザのアドレスバーを見てください。URLの末尾に
#gid=123456789のような数字が表示されます。この数字がシートIDです。
実践的な使い方・応用例
メール作成リンク(mailto)をつくる
HYPERLINK関数でメール作成画面を開くリンクも作れます。mailto: プロトコルを使います。
=HYPERLINK("mailto:info@example.com", "お問い合わせメールを送る")
件名や本文を事前にセットしたい場合は、次のように書きます。
=HYPERLINK("mailto:info@example.com?subject=お問い合わせ&body=こんにちは", "メールを送る")
?subject= で件名、&body= で本文を指定できます。問い合わせ先の一覧表を作るときに便利ですよ。
URLを動的に生成する(&演算子・CONCATENATE関数)
リンク先のURLに規則性がある場合は、& 演算子で動的に生成できます。CONCATENATE関数でも同様です。
たとえばA列に商品コードが入っているとします。商品ページのURLが共通の形式なら、次のように書けます。
=HYPERLINK("https://example.com/products/"&A2, A2&"の詳細ページ")
& 演算子でURLの固定部分とセルの値を結合しています。商品コードが変わればリンク先も自動で変わります。
もう少し複雑な例として、検索結果ページへのリンクも作れます。
=HYPERLINK("https://www.google.com/search?q="&A2, A2&"を検索")
A2の値をGoogleで検索するリンクが一瞬で作れます。
一覧表のリンクを一括作成する
HYPERLINK関数の真価は、一覧表でのリンク一括作成です。
B列にURL、C列にリンクテキストが入った一覧表があるとします。D2に次の数式を入力してください。
=HYPERLINK(B2, C2)
D2をそのまま下にコピーすれば、全行のリンクが一括で作成されます。100件でも1000件でも、数秒で完了です。
TEXT関数と組み合わせれば、表示テキストも整えられますよ。
よくあるエラーと対処法
HYPERLINK関数自体がエラーを返すことはほとんどありません。ただし、意図どおりに動かないケースはあります。
| 症状 | 原因 | 対処法 |
|---|---|---|
| リンクをクリックしても開かない | URLの先頭に https:// がない | URLに https:// を付ける |
| 別シートリンクが動かない | #Sheet名!A1 と書いている(Excel形式) | #gid=シートID 形式に書き換える |
| 表示テキストがURLのまま | 第2引数を省略している | 第2引数にリンクラベルを指定する |
| リンクが青字にならない | セルの書式が手動で変更されている | 書式をクリアして数式を再入力する |
| 日本語URLが文字化けする | URLエンコードされていない | ENCODEURL関数で変換してから渡す |
https:// を付け忘れるケースが一番多いです。プロトコル指定がないとリンクになりません。
別シートリンクはExcel形式で書いてしまいがちです。#gid= 形式に書き換えてください。
右クリックの「リンクを挿入」との違い
スプレッドシートには、右クリック(またはCtrl+K)でリンクを挿入する方法もあります。それぞれの違いを整理しましょう。
| 比較項目 | HYPERLINK関数 | 右クリック(リンクを挿入) |
|---|---|---|
| 一括作成 | 数式コピーで可能 | 1セルずつ手動設定 |
| URL変更 | セル参照で一括変更可能 | 1つずつ編集が必要 |
| 条件分岐 | IF関数と組み合わせ可能 | 不可 |
| 見た目 | 数式バーに式が見える | リンク設定が見えにくい |
| 操作の手軽さ | 関数の知識が必要 | マウス操作だけで完了 |
少数のリンクなら右クリックで十分です。でもリンクを一括で作りたいときはHYPERLINK関数が断然便利ですよ。
NOTE
HYPERLINK関数と右クリックのリンクは併用できます。HYPERLINK関数で作ったリンクの上に右クリックでリンクを設定すると、右クリック側が優先されるので注意してください。
まとめ
HYPERLINK関数を使えば、スプレッドシートのリンク作成を数式で自動化できます。
ポイントをまとめると次のとおりです。
- 基本構文は
=HYPERLINK(URL, リンクラベル)の2引数 - 別シートリンクは
#gid=シートID形式で指定する &演算子やCONCATENATE関数でURLを動的に生成できる- mailtoリンクで件名・本文付きのメール作成画面も開ける
- 一覧表にコピーすれば、リンクを一括作成できる
右クリックでの手動設定に比べて、管理も修正もずっとラクです。リンクが多い資料を作るときは、ぜひ活用してみてください。
関連記事
- CONCATENATE関数の使い方 — 文字列の結合に便利な関数
- TEXT関数の使い方 — 日付や数値を文字列に変換する関数
- INDIRECT関数の使い方 — セル参照を文字列で動的に指定する関数
