ADVERTISEMENT

【Googleスプレッドシート】データ検証で正規表現マッチを使う!カスタム入力制約

【Googleスプレッドシート】データ検証で正規表現マッチを使う!カスタム入力制約
🛡️ 超解決

Googleスプレッドシートで入力データの形式を厳密に管理したい場合、データ検証のカスタム数式と正規表現を組み合わせると非常に便利です。たとえば、電話番号や郵便番号、メールアドレスなどの特定のパターンに一致するデータだけを許可するルールを簡単に作成できます。しかし、正規表現の記述に慣れていないと、どのように設定すればよいか迷ってしまうこともあるでしょう。この記事では、データ検証で正規表現マッチを活用して柔軟な入力制約を設定する手順を、具体例を交えて詳しく解説します。

【要点】正規表現を使ったデータ検証のポイント

  • カスタム数式 =REGEXMATCH(セル, “パターン”): 入力された値が指定した正規表現パターンに一致するかを判定します。
  • 拒否メッセージの設定: ユーザーが間違った入力をしたときに表示するエラーメッセージをカスタマイズできます。
  • よく使うパターン例を用意: 電話番号やメールアドレスなど、実際のビジネスシーンで役立つパターンを事前に用意すると便利です。

ADVERTISEMENT

正規表現マッチをデータ検証で使う仕組み

データ検証は、セルに入力できる値を制限する機能です。通常は「数値のみ」「日付」「リストから選択」といったルールを設定しますが、カスタム数式を使うとさらに高度なルールを作ることができます。そのカスタム数式の中で正規表現を扱う関数が REGEXMATCH です。REGEXMATCHは、指定されたテキストが正規表現パターンに一致する場合にTRUEを返し、一致しない場合にFALSEを返します。データ検証のカスタム数式の結果がTRUEの場合のみ入力を許可するため、正規表現パターンに合致しない入力をはじくことができます。

正規表現自体は、文字列のパターンを記述するための強力な言語です。たとえば、\d{3}-\d{4} は「3桁の数字-4桁の数字」というパターンを表します。このようにパターンを組み合わせることで、郵便番号や電話番号、英数字のみなど、様々な制約を表現できます。データ検証と組み合わせることで、入力ミスを未然に防ぎ、データの品質を保つことができます。

データ検証で正規表現マッチを設定する手順

ここでは、実際にデータ検証で正規表現マッチを使う具体的な手順を説明します。例として、セルに入力された値が「半角英数字のみ」であることをチェックするルールを作成します。

  1. データ検証を適用するセル範囲を選択する
    まず、入力制限をかけたいセルまたはセル範囲を選択します。この範囲内のすべてのセルに同じルールが適用されます。
  2. メニューから「データ」→「データの検証」を開く
    画面上部のメニューバーから「データ」をクリックし、プルダウンから「データの検証」を選択します。
  3. 条件に「カスタム数式」を選択する
    データ検証ダイアログが開いたら、「条件」のドロップダウンから「カスタム数式です」を選びます。
  4. 数式ボックスにREGEXMATCH関数を入力する
    数式ボックスに次のように入力します:
    =REGEXMATCH(A1, "^[a-zA-Z0-9]+$")
    ここで、A1は選択範囲の左上のセルを表します。実際の範囲に合わせて調整してください。パターン ^[a-zA-Z0-9]+$ は「先頭から末尾までが半角英数字のみ」という意味です。
  5. 拒否メッセージを設定する(推奨)
    「無効なデータが入力されたとき」で「入力を拒否する」を選択し、任意のメッセージを入力します。たとえば「半角英数字のみ入力してください」と設定すると、ユーザーがルールに反する値を入力したときにそのメッセージが表示されます。
  6. 保存ボタンをクリックして完了
    設定が終わったら「保存」をクリックします。これで選択したセル範囲に正規表現マッチのデータ検証が適用されます。

この手順を応用すれば、様々なパターンに適応できます。たとえば、電話番号(ハイフンあり)を許可したい場合は =REGEXMATCH(A1, "^0\d-\d{4}-\d{4}$") のようにします。ただし、パターンは実際の要件に合わせて調整してください。

正規表現マッチを使う際の注意点とよくある失敗

パターンが複雑になりすぎて理解しづらい

正規表現は強力ですが、複雑なパターンは後から見たときに何をチェックしているかわかりにくくなります。パターンには必ずコメントを残すか、シンプルに分割することをおすすめします。また、テスト用のセルでREGEXMATCHだけを試してからデータ検証に適用するとミスを防げます。

先頭と末尾の指定を忘れる

多くの場合、セル全体がパターンに一致することを確認したいため、パターンの先頭に ^、末尾に $ を付けます。これを忘れると、セル内の一部が一致しただけでTRUEになってしまうため、意図しない入力を許可してしまうことがあります。

大文字小文字を区別するかどうかの考慮

REGEXMATCHはデフォルトで大文字小文字を区別します。区別したくない場合は、パターン内で (?i) フラグを使うか、あらかじめ入力値をUPPERやLOWERで変換してから比較する方法もあります。ただし、データ検証のカスタム数式では、別のセルを参照するなどの工夫が必要になる場合もあります。

エスケープが必要な文字がある

正規表現ではドット「.」やアスタリスク「*」など、特別な意味を持つ文字があります。これらをリテラルとして扱いたい場合は、バックスラッシュでエスケープします(例:\.)。エスケープを忘れると想定外のマッチングになるので注意してください。

ADVERTISEMENT

正規表現マッチと他のデータ検証方法の比較

方法 特徴 柔軟性 設定の難易度
正規表現マッチ(REGEXMATCH) 文字列のパターンを自由に定義可能 非常に高い 中程度(正規表現の知識が必要)
カスタム数式(IFなど) 論理条件を組み合わせてルールを作成 高い やや低い(関数の知識は必要)
リストからの選択 あらかじめ許可する値を列挙 低い(固定の値のみ) 低い
数値・日付の範囲指定 数値や日付の最小値・最大値を制限 中程度(数値・日付のみ) 低い

まとめ

この記事では、Googleスプレッドシートのデータ検証で正規表現マッチ(REGEXMATCH関数)を使う方法を解説しました。正規表現を活用することで、電話番号やメールアドレスなど、複雑なパターンを持つ入力値を簡単に制限できます。設定はカスタム数式にREGEXMATCHを記述するだけです。最初はパターンの記述に戸惑うかもしれませんが、よく使うパターンをテンプレートとして保存しておくと便利です。また、拒否メッセージを丁寧に設定することで、ユーザーに正しい入力を促せます。次は、正規表現を使って「URLのみ許可」や「特定の文字列を含まない」といった応用にも挑戦してみてください。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。