
この記事では、文字列の「削除・置換」に使うREGEXREPLACE関数と、「複雑なパターン抽出」に使うREGEXEXTRACT関数という2つの関数を解説します。基本の抜き出し方から、電話番号を複数のセルに分割する応用テクニックも解説しているので、ぜひ参考にしてみてください。
【基本】数字を抽出・削除する(REGEXREPLACE)
数字を抽出(数字以外を削除)

REGEXREPLACE関数は、文字列の中から特定のパターンに一致する部分を検索し、別の文字列に置き換えます。
たとえば、A列のテキストの中から数字だけ抽出したい場合、次のように、数字以外を空白("")に置換して削除します。
例:=REGEXREPLACE(A2,"\D","")
ポイント:\D が、正規表現で「数字ではない文字すべて」を表します。
REGEXREPLACE関数の引数:(テキスト, 正規表現, 置換後の文字列)
正規表現には、\D や \d のように特殊な意味を持つ文字の組み合わせ(メタ文字)が多数あります。より詳しく知りたい方は、【正規表現の基本と3つの活用】の記事をご覧ください。
文字を抽出(数字を削除)

逆に、文字列から数字だけを削除したい場合は、正規表現の\d を使います。
例:=REGEXREPLACE(A2,"\d","")
ポイント:\d が、正規表現で「数字(半角)すべて」を表します。
【応用】複雑な数字の抽出(REGEXEXTRACT)
REGEXEXTRACT関数を使うと、複雑な文字列の中から、必要な部分だけを抽出したりできます。

REGEXEXTRACT関数は、指定したテキストの中から、正規表現で指定したパターンに最初に合致する部分の文字列を抽出します。
たとえば、A列のテキストの中から「-より前の数字」だけを抽出したい場合、以下のようになります。
例:=REGEXEXTRACT(A2,"(\d+)-")
ポイント:
\d+は、数字(\d)が1回以上続くパターンを表します。()は、()内のパターンをグループ化し、結果としてその部分を抽出します。
REGEXEXTRACT関数の引数:(テキスト, 正規表現)
桁数を指定して抽出する

たとえば、A列のテキストの中から4桁の数字だけ抽出したい場合、数式は次のようになります。
例:=REGEXEXTRACT(A2,"\d{4}")
ポイント: {4} は直前の文字\d(半角数字)が4回繰り返されることを意味します。
数字のブロックを別々のセルに抽出する

たとえば、A列のテキストの中から数字の塊を隣接するセルに一度に抽出したい場合、数式は次のようになります。
例:=REGEXEXTRACT(A2,"(\d+).*?(\d+).*?(\d+)")
ポイント:
()は、連続する数字(\d+)をグループ化します。このグループの数だけ、結果が別々のセルに分割されて抽出されます。.*?は、数字の間に挟まれた任意の文字(ハイフンや括弧など)にマッチします。
より詳しく知りたい方は、REGEXEXTRACT関数の使い方(抽出)の記事をご覧ください。