「このセルに入っているのはURLなの? ただの文字列なの?」を目視で確認していませんか。
数件なら見ればわかりますが、数百行のリストになると見落としやミスが出てきます。
スプレッドシートにはセルの値がURLかどうかを一発で判定できるISURL関数があります。
この記事では、ISURL関数の基本から実務で使える活用パターンまでまとめて紹介します。
スプレッドシートのISURL関数とは?
ISURL関数(読み方: いず ゆーあーるえる)は、指定した値が有効なURL形式かどうかを判定する関数です。
名前は英語の「IS URL(URLですか?)」からきています。
対象がURL形式であれば TRUE を返し、URL形式でなければ FALSE を返します。
ISURL関数にできることをまとめると、次のとおりです。
- セルの値がURL形式かどうかをTRUE/FALSEで返す
- IF関数と組み合わせてURLの有無で処理を分岐する
- HYPERLINK関数と組み合わせて安全にリンクを作成する
- FILTER関数でURL入りの行だけ抽出する
NOTE
ISURL関数はGoogleスプレッドシート独自の関数です。Excelには存在しないので注意してください。
ISURL関数の書き方(構文と引数)
基本構文
=ISURL(値)
カッコの中にURLかどうか判定したい値を指定します。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 値 | 必須 | URLかどうか判定したい文字列またはセル参照 |
引数は1つだけです。省略はできません。セル参照・直接値・数式の結果のいずれも指定できます。
TIP
ISURL関数は「http://」「https://」「ftp://」などのプロトコルで始まる文字列を URL と判定します。プロトコルがない「example.com」のような文字列は FALSE になりますよ。
ISURL関数の基本的な使い方
まずはシンプルな例で動きを確認してみましょう。
値の種類ごとの判定結果
さまざまなデータをISURL関数で判定すると、次のような結果になります。
| 数式 | 結果 | 理由 |
|---|---|---|
=ISURL("https://example.com") | TRUE | https:// で始まる有効なURL形式 |
=ISURL("http://example.com") | TRUE | http:// で始まるURL形式もTRUE |
=ISURL("ftp://files.example.com") | TRUE | ftp:// プロトコルも対応 |
=ISURL("example.com") | FALSE | プロトコルがないため FALSE |
=ISURL("こんにちは") | FALSE | URLではない通常の文字列 |
=ISURL("") | FALSE | 空文字はFALSE |
=ISURL(123) | FALSE | 数値はFALSE |
プロトコル(https:// や http://)が付いているかどうかが判定のカギになります。
セル参照で判定する
セル参照を使えば、特定のセルの値がURLかどうかを確認できます。
=ISURL(A1)
A1 に「https://example.com」が入っていれば TRUE を返します。「ただの文字列」なら FALSE です。
数式の結果を判定する
ISURL関数の引数に数式を直接入れることもできます。
=ISURL(A1&B1)
A1 に「https://」、B1 に「example.com」が入っていれば、結合した結果「https://example.com」がURL形式なので TRUE になります。
ISURL関数の実践的な使い方・応用例
IF関数と組み合わせてURL有無を表示する
リストの中にURLが含まれているかどうかをラベルで表示したい場面で使えます。
=IF(ISURL(A2),"URL","URL以外")
A2 がURL形式なら「URL」と表示します。そうでなければ「URL以外」です。
アンケート回答やフォーム入力のデータチェックに便利ですよ。
HYPERLINK関数と組み合わせて安全にリンクを作成する
URLが入っているセルにだけリンクを付けたい場面があります。URL以外のセルにHYPERLINK関数を使うとエラーになるので、事前にISURL関数で判定しておくと安心です。
=IF(ISURL(A2),HYPERLINK(A2,"リンクを開く"),"URLなし")
A2 がURL形式のときだけクリック可能なリンクを作成します。URL以外なら「URLなし」と表示します。
FILTER関数でURLが入った行だけ抽出する
大量のデータからURLが含まれている行だけを取り出したいときに活用できます。
=FILTER(A2:B20,ISURL(A2:A20))
A列にURL形式の値がある行だけが抽出されます。参考サイトリストの整理などに使えますよ。
URLの件数をカウントする
リストの中にURLがいくつ含まれているかを数えたいときは、COUNTIF関数の代わりにCOUNTIFS関数とISURL関数を組み合わせます。
=SUMPRODUCT(1*ISURL(A2:A100))
ISURL関数が各セルに対してTRUE/FALSEの配列を返します。1* を掛けることでTRUE=1、FALSE=0に変換されるため、合計がURLの件数になります。
データクレンジングでURL以外を除外する
フォームの「WebサイトURL」欄に、URLではない値(会社名や「なし」など)が混ざっていることがあります。ISURL関数で正しい入力かどうかを検証できます。
=IF(ISURL(A2),A2,"要確認: URL形式ではありません")
URL形式ならそのまま表示し、そうでなければ警告メッセージを出します。入力データの品質チェックに役立ちますよ。
よくあるエラーと対処法
ISURL関数で「思った結果にならない」ケースをまとめました。
| 症状 | 原因 | 対処法 |
|---|---|---|
| URLなのに FALSE になる | プロトコル(https:// 等)が付いていない | ="https://"&A1 でプロトコルを補完してから判定する |
| 空白セルで FALSE が返る | 空白はURL形式ではない | 仕様どおりの動作。空白を別扱いしたい場合は =IF(A1="","未入力",ISURL(A1)) |
| 数値セルで FALSE が返る | 数値はURL形式ではない | 文字列として入力されているか確認する |
| 不正なURLでも TRUE になる | ISURL関数はURL形式かどうかだけを判定する | リンク先が存在するかどうかは判定できない。形式チェック専用と割り切る |
| HYPERLINK付きセルで FALSE になる | HYPERLINK関数で表示テキストが設定されている | 表示テキストがURL形式でない場合はFALSEになる。元のURLを別セルに保持しておくと安心 |
TIP
ISURL関数はURL形式のチェック専用です。リンク先が実際に存在するか(404かどうか)までは判定できません。あくまで「URLっぽい文字列か?」を確認する関数として使いましょう。
Excelとの違い
ISURL関数はGoogleスプレッドシート独自の関数です。Excelには同等の関数が存在しません。
| 項目 | Excel | Googleスプレッドシート |
|---|---|---|
| ISURL関数 | なし | あり |
| URL判定の代替手段 | 数式で自作する必要がある | ISURL関数で一発判定 |
ExcelでURLかどうかを判定したい場合は、FIND関数やLEFT関数を組み合わせて自作する方法があります。
=OR(LEFT(A1,8)="https://",LEFT(A1,7)="http://")
ただし、この方法はプロトコル部分しかチェックできないため、スプレッドシートのISURL関数ほど正確ではありません。
ExcelファイルをGoogleスプレッドシートに変換して使う場合、ISURL関数を含む数式はExcelでは動作しない点に注意してください。
まとめ
ISURL関数は、セルの値がURL形式かどうかを判定するシンプルな関数です。
ポイントを整理します。
- 構文は
=ISURL(値)で、引数は1つだけ - URL形式なら TRUE、そうでなければ FALSE を返す
- 「https://」「http://」「ftp://」などプロトコル付きの文字列がTRUEになる
- プロトコルなしの「example.com」はFALSEになる
- IF関数と組み合わせてURLの有無で処理を分岐するのが定番パターン
- HYPERLINK関数と組み合わせれば、安全にリンクを作成できる
- Googleスプレッドシート独自の関数で、Excelには存在しない
- URLの形式チェック専用で、リンク先の存在確認はできない
まずは =ISURL("https://example.com") で TRUE が返ることから試してみてください。
