- 作成日 : 2025年12月2日
スプレッドシートで正規表現を活用する方法とは?基本パターンと実用的な関数の使い方完全ガイド
Googleスプレッドシート(Google Sheets)では、正規表現(Regular Expression、regex)を使うことで、文字列の検索・抽出・置換といった処理を効率的に行えます。
電話番号やメールアドレスの形式統一、特定パターンのデータ抽出など、手作業では時間がかかる作業も自動化できるのが特徴です。
本記事では、スプレッドシートで利用できる正規表現の基本構文から、REGEXMATCH・REGEXEXTRACT・REGEXREPLACE関数の使い方までをわかりやすく整理。実務で役立つ具体的な応用例も交えて、正規表現を日常業務で活用するためのポイントを解説します。
目次
スプレッドシートにおける正規表現の基礎知識
正規表現とは、文字列のパターンを指定して検索や抽出、置換を行うための表記方法です。
Googleスプレッドシートでは、主に REGEXMATCH、REGEXEXTRACT、REGEXREPLACE といった「REGEX系関数」と組み合わせて使用します。
通常の検索機能では「完全一致」や「部分一致」に限られますが、正規表現を使うと「数字が3桁続く」「@を含むメールアドレス形式」など、より柔軟な条件で文字列を扱うことができます。
たとえば、電話番号が「090-1234-5678」「09012345678」「090(1234)5678」など異なる形式で入力されていても、正規表現を使えば1つのパターンでまとめて処理できます。
また、大量のテキストから特定のパターンを抽出する作業や、形式の異なるデータを統一する作業にも適しています。
スプレッドシートで正規表現を扱う際は、基本的に次の2つの考え方を押さえると分かりやすいでしょう。
- パターンの定義:検索や抽出の対象となる条件を設定する
- 操作の実行:定義したパターンに対して「一致の判定」「抽出」「置換」を行う
この2つを理解しておくと、さまざまな文字列処理を効率的に行えるようになります。
正規表現が有効なケース
正規表現は、データの形式がばらついている場合や、入力内容の確認・抽出を自動化したい場面で特に役立ちます。
たとえば、全角・半角の混在や区切り文字の不統一、余分なスペースなどを一括で修正したいとき、正規表現を使えば簡潔に処理できます。
また、データ検証にも活用でき、メールアドレス・URL・郵便番号などが正しい形式で入力されているかをすぐに確認できます。
さらに、情報抽出やデータクレンジングの場面でも有効です。電話番号や金額、日付など特定のパターンを抽出したり、不要な記号やスペースを取り除いたりといった処理を効率的に行えます。
たとえば、商品コードに不要な文字が混ざっている、住所データに不規則な空白が含まれている場合でも、正規表現を使うことで短時間で整えることが可能です。
スプレッドシートでよく使う正規表現パターン
スプレッドシートで頻繁に使用される正規表現の基本パターンを理解することで、日常的なデータ処理の大部分に対応でき、これらを組み合わせることでより複雑な処理も実現できます。 ここでは、実務で特に利用頻度の高いパターンを詳しく解説します。
文字クラスと数量指定子
基本的なパターンは文字クラスです。dは任意の数字(0-9)、wは英数字とアンダースコア、sは空白文字(スペース、タブ、改行)を表します。これらの大文字版(D、W、S)は、それぞれの否定(数字以外、英数字以外、空白以外)を意味します。
数量指定子は、文字の繰り返しを表現します。*は0回以上の繰り返し、+は1回以上の繰り返し、?は0回または1回、{n}はちょうどn回、{n,}はn回以上、{n,m}はn回以上m回以下の繰り返しを表します。例えば、d{3}は「数字がちょうど3桁」、w+は「1文字以上の英数字」を意味します。
角括弧[]を使用すると、文字の集合を定義できます。[abc]はa、b、cのいずれか1文字、[a-z]は小文字のアルファベット、[0-9]は数字を表します。[^abc]のように先頭に^を付けると、指定文字以外を意味します。
位置指定とグループ化
位置を指定するアンカーも重要です。^は文字列の先頭、$は文字列の末尾を表します。例えば、^Aは「Aで始まる」、Z$は「Zで終わる」、^A.*Z$は「Aで始まりZで終わる」を意味します。単語境界を表すbも便利で、bwordbとすると、「word」という完全な単語のみにマッチし、「wordpress」の一部にはマッチしません。
括弧()によるグループ化は、複数の文字をまとめて扱うために使用します。(abc)+は「abc」の1回以上の繰り返し、(日本|アメリカ|中国)は「日本」「アメリカ」「中国」のいずれかを表します。グループ化した部分は後で参照することもでき、REGEXEXTRACT関数で特定部分のみを抽出する際に活用されます。
実用的なパターン例
電話番号のパターン:^0d{1,4}-?d{1,4}-?d{4}$ このパターンは、0で始まり、ハイフンがあってもなくても対応できる日本の電話番号形式を表現しています。
メールアドレスのパターン:^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$ 一般的なメールアドレス形式を検証するパターンです。
郵便番号のパターン:^d{3}-?d{4}$ 日本の郵便番号(ハイフンあり・なし両対応)を表現しています。
日付のパターン:^d{4}[/-]d{1,2}[/-]d{1,2}$ YYYY/MM/DDまたはYYYY-MM-DD形式の日付を表現しています。
REGEXMATCH関数でパターンの一致を判定
REGEXMATCH関数は、指定したテキストが正規表現パターンに一致するかを判定し、TRUE/FALSEを返す関数で、データ検証や条件分岐の基礎となる重要な機能です。 この関数により、大量のデータから特定のパターンを持つデータを効率的に識別できます。
REGEXMATCH関数の基本構文
=REGEXMATCH(テキスト, 正規表現)
この関数は、第1引数のテキストが第2引数の正規表現パターンに部分的にでも一致すればTRUE、一致しなければFALSEを返します。例えば、=REGEXMATCH(A1,”d{3}-d{4}”)は、A1セルに郵便番号形式の文字列が含まれているかを判定します。
実践的な使用例として、メールアドレスの形式チェックがあります。
=REGEXMATCH(A1,”^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$”)
この数式により、A1セルの内容が正しいメールアドレス形式であるかを検証できます。
条件付き書式との組み合わせ
REGEXMATCH関数は条件付き書式と組み合わせることで、視覚的なデータ検証が可能になります。
例えば、電話番号が正しい形式でない場合に赤色でハイライトする設定:
- 対象範囲を選択
- 「表示形式」→「条件付き書式」を選択
- カスタム数式として=NOT(REGEXMATCH(A1,”^0d{9,10}$”))を入力
- 書式設定で背景色を赤に設定
これにより、不正な形式の電話番号が自動的に赤色で表示され、入力ミスを即座に発見できます。
フィルタ機能での活用
REGEXMATCH関数をフィルタ条件として使用することで、複雑な抽出条件を設定できます。
例えば、特定のドメインのメールアドレスのみを抽出する場合:
=FILTER(A:B,REGEXMATCH(B:B,”@example.com$”))
この数式は、B列のメールアドレスが「@example.com」で終わる行のみを抽出します。複数の条件を組み合わせることも可能で、AND関数やOR関数と併用することで、より精密なフィルタリングが実現できます。
REGEXEXTRACT関数で必要な部分を抽出
REGEXEXTRACT関数は、テキストから正規表現パターンに一致する部分を抽出する関数で、長い文字列から必要な情報のみを取り出す際に非常に有効です。 この関数により、構造化されていないテキストデータから、体系的な情報を効率的に抽出できます。
REGEXEXTRACT関数の基本構文と使い方
=REGEXEXTRACT(テキスト, 正規表現)
この関数は、パターンに最初に一致した部分を返します。グループ化(括弧)を使用すると、特定の部分のみを抽出できます。
例えば、「2024年3月15日」から年月日を個別に抽出する場合:
=REGEXEXTRACT(A1,”(d{4})年(d{1,2})月(d{1,2})日”)
この数式では、先頭のキャプチャグループ (d{4}) にマッチした部分(西暦4桁)だけが返されます。
年・月・日をそれぞれ取得したい場合は、別々の REGEXEXTRACT を使うか、パターンを変えて抽出します。
例えば:
年:
=REGEXEXTRACT(A1,”(d{4})年”)
月:
=REGEXEXTRACT(A1,”年(d{1,2})月”)
日:
=REGEXEXTRACT(A1,”月(d{1,2})日”)
このように、1つのREGEXEXTRACTにつき1つの項目を取り出すイメージで使うと、仕様どおりの結果が得られます。
URLからドメイン名を抽出
WebサイトのURLから、ドメイン名やパラメータを抽出する実用例:
=REGEXEXTRACT(A1,”https?://([^/]+)”)
この数式は、URLからドメイン名部分のみを抽出します。
例えば、「https://www.example.com/page」から「www.example.com」を取り出します。
さらに、www. を除いたホスト名だけを取得したい場合の例:
=REGEXEXTRACT(A1,”https?://(?:www.)?([^/]+)”)
この数式は、
https://www.example.com/page → example.com
のように、www. が付いている場合はそれを取り除き、残りのホスト部分を抽出します。
ただし、https://app.example.com/page のように www 以外のサブドメインが付いている場合は、app.example.com がそのまま取得されます。
「すべてのサブドメインを除いた純粋なメインドメイン(example.com だけ)を抽出したい」場合は、さらに SPLIT や REGEXREPLACE を組み合わせるなど、別途ロジックを追加する必要があります。
商品コードや注文番号の抽出
混在したテキストから特定形式のコードを抽出する場合の例:
=REGEXEXTRACT(A1,”[A-Z]{2}-d{6}”)
この数式は、「AB-123456」のような形式(大文字2文字-数字6桁)のコードを抽出します。複数のコードが含まれる場合は、最初に見つかったものが返されます。
住所から郵便番号を抽出する例:
=REGEXEXTRACT(A1,”〒?(d{3}-?d{4})”)
この数式は、「〒」記号の有無、ハイフンの有無に関わらず郵便番号を抽出します。
REGEXREPLACE関数でパターンを置換
REGEXREPLACE関数は、正規表現パターンに一致する部分を別の文字列に置換する関数で、データのクレンジングや形式統一において最も強力なツールの一つです。この関数により、複雑な置換ルールも簡潔に記述でき、大量のデータ処理を効率化できます。
REGEXREPLACE関数の基本構文
=REGEXREPLACE(テキスト, 正規表現, 置換文字列)
この関数は、テキスト内のパターンに一致するすべての部分を置換文字列で置き換えます。
全角数字を半角数字に変換したい場合の例
REGEXREPLACE 1本でスマートに書くのは難しいため、ここでは動作が分かりやすく、確実に変換できる SUBSTITUTE を使った例に差し替えます。
例:A1 の全角数字をすべて半角数字に置き換える数式
=SUBSTITUTE(
SUBSTITUTE(
SUBSTITUTE(
SUBSTITUTE(
SUBSTITUTE(
SUBSTITUTE(
SUBSTITUTE(
SUBSTITUTE(
SUBSTITUTE(
SUBSTITUTE(A1,
“0”,”0″),
“1”,”1″),
“2”,”2″),
“3”,”3″),
“4”,”4″),
“5”,”5″),
“6”,”6″),
“7”,”7″),
“8”,”8″),
“9”,”9″))
この数式なら、
- 「12345」 → 「12345」
- 「売上:321,098円」 → 「売上:321,098円」
のように、複数の数字が混在していても1桁ごとに正しく全角→半角変換されます。
不要な文字の削除
データクレンジングでよく使用される、不要な文字を削除するパターン:
余分なスペースの削除:
=REGEXREPLACE(A1,”s+”,” “)
この数式は、連続するスペース(全角・半角含む)を1つの半角スペースに置換します。
特殊文字の削除:
=REGEXREPLACE(A1,”[^ws]”,””)
英数字とスペース以外のすべての文字を削除します。
HTMLタグの削除:
=REGEXREPLACE(A1,”<[^>]+>”,””)
HTMLタグをすべて削除して、テキストのみを残します。
後方参照を使った高度な置換
後方参照($1, $2など)を使用すると、マッチした部分を再利用できます。
日付形式の変換(YYYY/MM/DD → DD-MM-YYYY):
=REGEXREPLACE(A1,”(d{4})[/-](d{2})[/-](d{2})”,”$3-$2-$1″)
氏名の順序変換(姓名 → 名, 姓):
=REGEXREPLACE(A1,”^(S+)s+(S+)$”,”$2, $1″)
金額にカンマを追加:
=REGEXREPLACE(TEXT(A1,”0″),”(d)(?=(d{3})+$)”,”$1,”)
実践的な活用例と応用テクニック
正規表現関数を組み合わせることで、より複雑なデータ処理を自動化でき、実務における様々な課題を効率的に解決できます。 ここでは、実際の業務で頻繁に遭遇するケースとその解決方法を紹介します。
データ検証システムの構築
複数の検証条件を組み合わせた包括的なデータ検証システムの例:
=IF(AND(
REGEXMATCH(A2,”^d{3}-?d{4}$”), // 郵便番号
REGEXMATCH(B2,”^0d{9,10}$”), // 電話番号
REGEXMATCH(C2,”@.*.”) // メールアドレス
),”OK”,”要確認”)
この数式により、複数項目の形式を一度にチェックし、すべて正しい場合のみ「OK」を表示します。
ログファイルの解析
アクセスログやエラーログから必要な情報を抽出する例:
IPアドレスの抽出:
=REGEXEXTRACT(A1,”b(?:[0-9]{1,3}.){3}[0-9]{1,3}b”)
タイムスタンプの抽出:
=REGEXEXTRACT(A1,”d{4}-d{2}-d{2}s+d{2}:d{2}:d{2}”)
エラーコードの集計:
エラーコードの集計例は、SUMPRODUCT を使って「マッチした行の数だけ 1 を足し込む」形にするとシンプルです。
=SUMPRODUCT(–REGEXMATCH(A:A,”ERRORs+d{3}”))
- REGEXMATCH(A:A,”ERRORs+d{3}”)
→ 各行について「ERROR + 空白 + 3桁の数字」にマッチするかを TRUE/FALSE で返す - –(二重の単項マイナス)
→ TRUE を 1、FALSE を 0 に変換 - SUMPRODUCT(…)
→ それらをすべて足し合わせて、「ERROR 123」「ERROR 404」などのエラー行の件数を返す
範囲をフル列にすると重くなる場合は、A2:A1000 のように必要な行だけに絞るとパフォーマンス面でも安全です。
住所データの標準化
不規則な住所表記を統一する処理:
全角数字を半角に変換する処理は、別途 SUBSTITUTE などで行う前提にして、住所の標準化例は「実際に動く式」にしておくと安全です。
例:番地の「-/-/の」を統一し、余分なスペースを削除するパターン
=REGEXREPLACE(
REGEXREPLACE(A1,”(d+)[--の](d+)”,”$1-$2″),
“s+”,””)
ここでは:
1つ目の REGEXREPLACE
(d+)[--の](d+) にマッチする部分(例:1-2、1-2、1の2)を $1-$2 に統一
2つ目の REGEXREPLACE
s+(連続する空白)を空文字に置き換えて、スペースを削除
全角数字→半角数字 の変換も行いたい場合は、別途
=SUBSTITUTE(
SUBSTITUTE(
SUBSTITUTE(
SUBSTITUTE(
SUBSTITUTE(
SUBSTITUTE(
SUBSTITUTE(
SUBSTITUTE(
SUBSTITUTE(
SUBSTITUTE(上記の結果,
“0”,”0″),
“1”,”1″),
“2”,”2″),
“3”,”3″),
“4”,”4″),
“5”,”5″),
“6”,”6″),
“7”,”7″),
“8”,”8″),
“9”,”9″))
のように SUBSTITUTE をネストして全角数字を半角に変えるか、その処理を別の列で行う、という形で分けて記述しておくと、読者が混乱せず安全に利用できます。
動的なデータ分類
商品名から自動的にカテゴリーを判定する例:
=IFS(
REGEXMATCH(A1,”(?i)iphone|ipad|mac”),”Apple製品”,
REGEXMATCH(A1,”(?i)windows|surface”),”Microsoft製品”,
REGEXMATCH(A1,”(?i)pixel|chrome”),”Google製品”,
TRUE,”その他”)
(?i)は大文字小文字を無視するフラグで、柔軟なマッチングが可能になります。
正規表現のデバッグとトラブルシューティング
正規表現を使用する際は、パターンの複雑さゆえにエラーが発生しやすいため、段階的なテストとデバッグが重要です。 効果的なデバッグ方法を理解することで、正確で効率的な正規表現を作成できます。
よくあるエラーとその対処法
- エスケープ忘れ:特殊文字(. * + ? など)を文字として扱いたい場合は、バックスラッシュでエスケープする必要があります。
誤:=REGEXMATCH(A1,”example.com”) 正:=REGEXMATCH(A1,”example.com”) - 欲張りマッチと最小マッチ:.*は欲張り(最長一致)、.*?は最小一致です。 例:HTMLタグ内のテキスト抽出では<.+?>を使用
- 文字クラスの誤用:角括弧内では多くの特殊文字がリテラルとして扱われます。 [.]はピリオド文字、.はエスケープされたピリオド
パフォーマンスの最適化
- 具体的なパターンを優先:d{3}は.*より高速
- 不要な後方参照を避ける:グループ化が不要な場合は(?:…)を使用
- アンカーを活用:^や$で検索範囲を限定
大量データを処理する場合の工夫:
=ARRAYFORMULA(IF(A2:A=””,””,REGEXEXTRACT(A2:A,”d+”)))
ARRAYFORMULA関数と組み合わせることで、列全体を一度に処理できます。
正規表現を活用してデータ処理をより効率的に
Googleスプレッドシートの正規表現機能を使いこなすことで、データの検証や整形、抽出といった文字列処理を簡潔に記述できるようになります。
まずは基本的なパターン(数字・文字・位置指定など)を理解し、REGEXMATCHで判定、REGEXEXTRACTで抽出、REGEXREPLACEで置換するという流れを習得するとよいでしょう。
また、複雑な表現を使う際は、少しずつテストしながらパターンを調整することが大切です。
正規表現を上手に取り入れることで、データ整理や入力チェックの作業をより正確かつ効率的に進められるようになります。
この記事をお読みの方におすすめのガイド5選【部署別紹介】
最後に、この記事をお読みの方によく活用いただいている人気の資料・ガイドを紹介します。すべて無料ですので、ぜひお気軽にご活用ください。
経理担当者向け
①Excel関数集 32選まとめブック
経理担当者の方をはじめ、ビジネスパーソンが知っておきたい便利なExcel関数集を初級~上級までギュッと網羅。新人社員の研修用などにもお使いいただけます。Google スプレッドシートならではの関数もご紹介しています。
②勘定科目・仕訳辞典(税理士監修)
勘定科目・仕訳に関する基本知識、および各勘定科目の仕訳例を具体的かつ網羅的にまとめた、50ページを超えるガイドを無料で提供しております。お手元における保存版としてでだけでなく、従業員への印刷・配布用としてもぜひご活用ください。
人事労務担当者向け
①入社・退職・異動の手続きガイドブック
書類の回収・作成・提出など手間のかかる入社・退職・異動(昇給・昇格、転勤)の手続き。
最新の制度をもとに、よくある質問やチェックポイントを交えながら、各手続きに必要な情報をまとめた人気のガイドですす。
②社会保険・労働保険の手続きガイド
企業において社会保険および労働保険の加入・喪失手続きは必ず発生し、手続きを誤れば保険事故が発生した際に従業員が不利益を被る可能性があります。
各保険の基本的な手続き方法を入社・退職・異動のシーン別にギュッとまとめた分かりやすいガイドです。
総務・法務担当者向け
契約書ひな形まとめ30選
業務委託契約書や工事請負契約書…など各種契約書や、誓約書、念書・覚書、承諾書・通知書…など、使用頻度の高い30個のテンプレートをまとめた、無料で使えるひな形パックです。
※ 掲載している情報は記事更新時点のものです。
※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。
関連記事
ExcelのDAYS関数とは?日数計算の使い方やエラー対策を解説
「プロジェクトの締切まであと何日?」「商品の保管期間は何日だった?」 そんな日付に関する計算は、ExcelのDAYS関数(デイズ関数)を使えばあっという間に求められます。手作業では煩雑になりがちな経過日数計算を効率よく行えるため、業務の正確…
詳しくみるスプレッドシートのショートカットまとめ- 初心者から上級者まで使える時短テクニック集
Googleスプレッドシートの作業効率を高めるショートカットキーは、マウス操作を減らし、データ入力や編集作業をスピーディーに行うための必須スキルです。 本記事では、初心者がまず覚えるべき基本操作から、上級者向けの複合ショートカットまで、実務…
詳しくみるエクセルで円を千円単位に変換する方法をわかりやすく解説
エクセルを使って円を千円単位に変換するのは、実務において非常に便利な操作です。特に、予算や売上の集計時に千円単位で表示することは、視覚的にもわかりやすくなります。本記事では、エクセルで円を千円単位に変換する方法を、ステップバイステップで解説…
詳しくみるエクセル(Excel)を開くのが遅い!原因と調べ方、軽くする対策を徹底解説
エクセル(Excel)を使っていると、ファイルを開くのに時間がかかったり、計算がなかなか終わらなかったり、セルを移動するだけで固まってしまったりと、動作が重くてイライラした経験は誰にでもあるのではないでしょうか。 この記事では、Excelの…
詳しくみるエクセルで名前を付けて保存するショートカットとは
エクセルを使う際、効率的に作業を進めるためには、ショートカットキーを活用することが非常に重要です。特に「名前を付けて保存」機能は、作成したファイルを適切に管理するために欠かせません。このプロセスを相対的にスピーディに行うためのショートカット…
詳しくみるスプレッドシートのプルダウン活用術:業務効率化のための実践ガイド
Googleスプレッドシートのプルダウン機能は、選択式でデータを入力できる便利な仕組みです。手入力による表記ゆれや入力ミスを防ぎ、作業のスピードと精度を高められます。 この記事では、バックオフィス業務を想定し、プルダウンの基本的な作り方から…
詳しくみる



