REGEXEXTRACTは最初の一致を取り出し、REGEXMATCHは一致するかを判定し、REGEXREPLACEは一致した部分を置換します。
伝票風の文字列から番号を取り出す例で、未一致や空欄も分けて確認します。
練習ブック・Google用の数式・入力データをダウンロード(ZIP)できます。
新規の練習ブックで試し、既存の入力や計算列へ貼り付ける前にコピーを保存してください。
確認日は2026年10月2日です。
2026年10月2日、同じ練習データと本稿の数式をGoogle Sheetsで検証しました。
XLSXをGoogle Sheetsへ変換し、Google用TXTの数式を適用した結果と実画面を確認しています。
入力例:文字抽出シートのB2:B7
| セル | 入力 |
|---|---|
| B2 | INV-001 |
| B3 | ABC 12-34 |
| B4 | 文字のみ |
| B5 | 空欄 |
| B6 | INV-999 |
| B7 | INV-12 |
これらは練習用の架空の文字列です。
B列へ入力し、C1を数字抽出、D1をINV判定、E1を空白・ハイフン除去にします。
配布XLSXのC~E列は案内文なので、Google Sheetsに取り込んだ後、各式をC2・D2・E2へ入力して7行目までコピーします。
Googleで計算する場合は、次の式で案内を置き換えます。
3つの式を別の列へ入れる
C2へ次の式を入れ、C7までコピーします。
[0-9]+で数字の連続を取り出し、空欄は空欄のままにします。
=IF(B2="","",IFNA(REGEXEXTRACT(B2,"[0-9]+"),"該当なし"))D2へ次の式を入れ、D7までコピーします。
^と$で文字列全体を指定し、INV-に続く3桁の数字だけを対象にします。
=IF(B2="","",REGEXMATCH(B2,"^INV-[0-9]{3}$"))E2へ次の式を入れ、E7までコピーします。
[ -]は半角スペースまたはハイフンで、GoogleのREGEXREPLACEでは一致した箇所を置換します。
=IF(B2="","",REGEXREPLACE(B2,"[ -]",""))確認結果と切り分け
| 入力 | C列/D列/E列の期待結果 |
|---|---|
| INV-001 | 文字列001/TRUE/INV001 |
| ABC 12-34 | 文字列12/FALSE/ABC1234 |
| 文字のみ | 該当なし/FALSE/文字のみ |
| 空欄 | 空欄/空欄/空欄 |
| INV-999 | 文字列999/TRUE/INV999 |
| INV-12 | 文字列12/FALSE/INV12 |
RE2のパターンについて、最初の数字、全体一致、複数箇所の置換、空欄、キャプチャグループなど11件をローカルで確認しました。
同じ式をGoogle Sheetsで実行し、先頭のゼロを含む「001」、数字がない場合の「該当なし」、空欄、複数箇所の置換を確認しました。
先頭の0を識別子として残す場合は文字列で扱い、数値が必要な場合だけVALUEなどで変換します。
入力が数値なら、Googleの仕様に従ってTEXTで文字列へ変換してから渡します。
RE2の制約と複数列への展開
Google Sheetsの正規表現はRE2で、Unicode文字クラスのマッチングには制約があります。
先読み・後読みやパターン内の後方参照はRE2では使えません。
JavaScriptの正規表現と同じ書き方が使えるとは仮定しないでください。
REGEXEXTRACTで複数のキャプチャグループを使うと結果が複数列へ広がります。
出力先を空けて、既存の列と重ならない場所で試します。
置換文字列でグループを参照する書き方は、パターン内の後方参照とは別なので混同しません。
元の状態に戻す
追加したC~E列の式を元のコピーへ戻せば、B列の入力は残ります。
金額や品番の検索・集計には条件付き集計や検索関数を使い、文字列の処理と役割を分けます。
公式資料
仕様はREGEXEXTRACT、REGEXMATCH、REGEXREPLACE、RE2の制約を参照してください。

練習ファイルの使い方
練習の入力と出力は本文のセル番地でそろえています。
Google用TXTとXLSXの互換性の違いは、各記事とZIPのREADMEで確認してください。
