Excelの正規表現の使い方をサンプル付きで解説【REGEXTEST,REGEXEXTRACT,REGEXREPLACE】

Excel

2024年5月、Excelの関数で正規表現が使えるようになりました。

本記事では、主に初心者の方向けに、Excelでの正規表現の使い方を具体例を交えて解説します。

そもそも「正規表現」ってなに!?

正規表現とは、文字列のパターンマッチング(検索、置換、抽出)に使われる表現のことです。

正規表現を用いることで、

  • 郵便番号になっている部分だけ抜き出す
  • 電話番号のハイフンを削除
  • 文末の「〜です。」を、一括で「〜だ。」に変換

など、文字列の操作を便利に行うことができます。

Excelのテキスト処理はLEFT, MID,FIND等で良いのでは!?

これまで、Excelでテキストを加工・抽出する際には、

  • LEFT関数(文字列の左側から指定した文字数分取得する)
  • RIGHT関数(文字列の右側から指定した文字数分取得する)
  • MID関数(指定した位置から指定した文字数分取得する)
  • FIND関数、SEARCH関数(検索したい文字列がある位置を取得する)

などの関数を駆使していました。(↓参考)

これらの関数で実現できるなら、別に正規表現なんて使わなくても良くない?とも思ってしまいますよね・・・!?正規表現に触れたことのない方は尚更かと思います。

しかし、正規表現を使うことには様々なメリットがあります。

Excelで正規表現(regex)を使うことのメリット

Excelに慣れている方なら使い慣れたこれらの関数を組み合わせてテキストの加工をしているかと思いますが、複雑なテキスト加工の際は関数がかなり複雑になり、

数式を作るのも大変、他の人がリプレイスする際にも難解だったりと色々と課題がありました。

正規表現を使うことで、複雑なテキスト加工にも対応できるようになりますし、正規表現はHTMLやJavaScript、Python、Google Apps Script(GAS)、VS CodeなどのIDE、テキストエディタ、コマンドラインなど幅広く使われているため、Excel独自の関数を使うよりも互換性・可読性の向上につながります。

Excelで正規表現(regex)を使う方法

Excelで正規表現(regex)を使うには、任意のセルにいずれかの数式を入力します。

Excelの正規表現関数
  • REGEXTEST関数
  • REGEXEXTRACT関数
  • REGEXREPLACE関数

具体的な使い方は、以下のとおりです。

セルに関数を入力する

任意のセルに、関数を入力します。半角イコール(=)のあとに、関数名を入力します。

途中まで入力すると、ガイドが出ます。

入力対象の部分は太字になるので、それに従って入力すると分かりやすいです。

【注意】正規表現はダブルクォーテーション(“)で囲むこと!

正規表現の部分は、必ずダブルクォーテーションで囲んでください。

正規表現は、ダブルクォーテーション(“)で囲んでください。(囲まないとエラーになります)

REGEXTEST関数:正規表現に一致するかどうかを判定

REGEXTEST関数は、指定されたテキストの一部が正規表現パターンにマッチするかどうかを調べる関数です。

REGEXTEST関数

REGEXTEST関数:正規表現パターンに一致するかどうかを判定する

REGEXEXTRACT(テキスト,正規表現,大文字小文字の区別)

※ 引数に何も指定しないと大文字・小文字を区別します。
  0:大文字・小文字を区別する
  1:大文字・小文字を区別しない

正規表現部分は、ダブルクォーテーション(“)で囲んでください!

参考:Microsoft公式サイト>REGEXTEST 関数

【具体例】テキストが数値かどうかを判定

以下は、REGEXTEST関数を用いて、テキストが数値かどうかを判定する例です。

=REGEXTEST(A2,"^\d+$")

上記の結果、数値であるA2セルのみが「TRUE」となります。

REGEXEXTRACT関数:正規表現に一致する箇所を抽出

REGEXEXTRACT関数は、対象の文字列のなかから、正規表現パターンに一致する文字列を取得するための関数です。

REGEXEXTRACT関数

REGEXEXTRACT関数:正規表現パターンに位置する文字列を抽出

REGEXEXTRACT(テキスト,正規表現,パターン,大文字小文字の区別)

※ 引数に何も指定しないと最初に見つかった文字列を返す。
  0:パターンに一致する最初の文字列
  1:パターンに一致する全ての文字列

正規表現部分は、ダブルクォーテーション(“)で囲んでください!

参考:Microsoft公式サイト>REGEXEXTRACT 関数

【具体例】電話番号を抽出

以下は、REGEXEXTRACT関数を用いて電話番号を抽出する例です。

=REGEXEXTRACT(A1,"\d{3}-\d{3,4}-\d{4}")

1つ目の引数で、検索対象となるテキストを指定、
2つ目の引数で、正規表現(取得したい文字列パターン)を指定
3つ目、4つ目の引数は省略

上記の関数の実行結果として、C3セルには電話番号のみ抽出されます。

REGEXREPLACE関数:正規表現パターンにマッチする箇所を別のテキストで置換

REGEXREPLACE関数は、指定したテキストのうち、正規表現パターンにマッチする箇所を別のテキストで置換する関数です。

REGEXREPLACE関数

REGEXREPLACE関数:正規表現パターンに一致する文字列部分を置き換える

REGEXREPLACE (テキスト, 正規表現, 置き換えるテキスト, 置き換え対象,大文字小文字の区別)

※ 引数に何も指定しないとパターンに一致する全てが置き換えられる。
  負の数値は、末尾から検索して一致する部分を置き換える。

正規表現部分は、ダブルクォーテーション(“)で囲んでください!

参考:Microsoft公式サイト>REGEXREPLACE関数

【具体例】テキスト内の空白文字を削除

以下は、REGEXREPLACE関数を用いて、空白文字を空文字に置き換える例です。

=REGEXREPLACE(A1,"(\s| )","")

4番目の引数の「置き換え対象」については、何も指定しなければ全てが置き換え対象となります。負の数値を指定すると、末尾から検索して該当部分を置き換えます。

=REGEXREPLACE(A1,"(\s| )","",-3)

上位の例では、引数に -3 を指定しているため、後ろから検索して3番目に該当する空白部分を空文字に置き換えています。

主な正規表現一覧

以下に、主な正規表現一覧を記載します。

文字列説明
.任意の1文字A.C:AあC、ABC、A★C
..定食:焼肉定食、唐揚定食
*直前のパターンの
0回以上の繰り返し
ABC*:AB、ABCC、ABCCC
(直前のCは一度もなくてもいい)
go*gle:ggle、gooooooogle
+直前のパターンの
1回以上の繰り返し
ABC+:ABC、ABCC、ABCCC
(直前のCは一度以上ないとだめ)
go+gle:google、gooooooogle
?直前のパターンの
0回か1回の繰り返し
ABC?:AB、ABC
(直前のCは0回か1回しかだめ)
go?gle:ggle、google
^先頭にマッチする^犬:「犬はかわいい」は該当
(「かわいい犬」はだめ)
$末尾にマッチするござる$:「拙者でござる」は該当
(「拙者でござるよ」はだめ)
\\をエスケープ\\:「\」を検索する
\n改行
\tタブ
\s空白文字半角の空白、タブ、改行が対象
\d半角数字“It’s 200 yen.”
\d:「2」が該当
\d+:「200」が該当
\w全ての半角英数字と
_(アンダースコア)
“あいうabc123”
\w:「あ」が該当
\w{4}:「abc1」が該当
()グループにまとめた
複数の文字
“おは!おはよ!おはよう!”
/(おは)/:「おは!」が該当
/(おはよ)/:「おはよ!」が該当
[]指定した文字の
いずれか
[あいう]:「あ」「い」「う」が該当
[A-Z]:A~Zのいずれか
[0-9]:0~9のいずれか
{n}直前の文字を
n回繰り返し
ABC{3}:ABCCC
[0-9]{4}:4桁の半角数字
|またはGoogle|Apple:「Google」か「Apple」

ChatGPTに生成してもらうのが楽なのでおすすめ

1から正規表現パターンを自分で作るのが面倒だという場合は、ChatGPTで正規表現を作成させたり、ネットで検索してそれをコピペすると早いです。

現在はアカウント登録なしで使えるのでおすすめです。

ChatGPT (別タブで開きます)

エラーになる場合はネット検索も活用してみよう

ただし、ChatGPTで生成された正規表現をそのまま使うと意図したとおりにテキスト加工ができない場合があります。

このような場合には、ネットで調べて他の書き方で試してみると良いでしょう。

上記のエラー原因としては、私が操作していたExcelファイルの文字コードがUTF-8だったため、\u(Unicodeエスケープシーケンス)に対応しておらずエラーになっていたのではないかと思われます。

まとめ

今回は、2024年5月から使えるようになった、Excelでの正規表現

Excelの正規表現関数
  • REGEXTEST関数
  • REGEXEXTRACT関数
  • REGEXREPLACE関数

について、具体的な使い方を交えて解説しました。

現在はデスクトップ版のExcelのみで使える関数となっていますが、Microsoftは「XLOOKUP関数」「XMATCH関数」の検索モードで正規表現も使えるようにする予定と発表しています。

今後はさらにExcelが便利になりそうですね!

▼関連記事

chaso

文系出身、数字が苦手な平凡主婦。塾講師、大手企業SE、不動産事務、Webライター、結婚後はパートタイムでエンジニアをしています。機械音痴だけど効率化や自動化をこよなく愛しています!お仕事の依頼・ご相談は問い合わせよりお願いいたします♪

chasoをフォローする

コメント

タイトルとURLをコピーしました