shikumika’s diary

日々の事務作業で手間なことを簡単にできる仕組み(自動化、方法など)、困ったことの解決方法を調べた備忘録

【Excel】正規表現を使った電話番号、メールアドレス、URLの抽出方法と実例

Microsoft365などのExcelで利用できるREGEXEXTRACT関数は、特定のパターンに一致する文字列を効率的に抽出できる便利な関数です。今回はセル内の文章内から電話番号、メールアドレス、URLを抽出する方法と、その実際の利用例です。

内容:

動作確認のExcelは「Microsoft® Excel® for Microsoft 365 MSO」(バージョン2411)です。

REGEXEXTRACT関数について

REGEXEXTRACT 関数は、指定された正規表現(文字列パターン)に基づいて文字列からテキストを抽出する関数です。

「正規表現」というのは、文字列のパターンを定義するための特殊な文字列です。例えば、電話番号、メールアドレス、URLの抽出において、それぞれ異なるパターンを使用します。

基本構文は次のとおりです。

=REGEXEXTRACT(”抽出対象の文字列”,"抽出の文字列パターン(正規表現)")

参考: REGEXEXTRACT 関数 - Microsoft サポート

電話番号、メールアドレス、URLの抽出方法と実例

以下はREGEXEXTRACT 関数を利用し、A列の文字列からB列に電話番号、C列にメールアドレス、D列にURLを抽出した実例です。

REGEXEXTRACT関数で文字列から値を抽出しています

電話番号、メールアドレス、URLの抽出事例

電話番号、メールアドレス、URLの抽出に使用する文字列のパターンは上図で3行目にのとおりです。いずれも”抽出対象の文字列”以外は同じ文字列のパターンを利用しており、具体的には4行目は次の数式です。

電話番号を抽出する数式

=REGEXEXTRACT($A4,"\d{2,4}[-(]\d{1,4}[-)]\d{4}")

メールアドレスを抽出する数式

=REGEXEXTRACT($A4,"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}")

URLを抽出する数式

=REGEXEXTRACT($A4,"https?://[^\s/$.?#].[^\s]*")

上図のA列では、電話番号の位置の違い、電話番号のハイフンと括弧が混在しています。この場合も、正規表現で一つの文字列パターンを指定し、抽出ができています。

このような抽出ができるのがREGEXEXTRACT関数です。

文字列パターン(正規表現)の作成方法

文字列のパターンを示す正規表現部分は少し慣れが必要に感じますが、WEB検索等で代表的なものは確認できます。

また、現在はChatGPTやCopilotなどの生成AIに作成してもらうことも可能です。作成された文字列パターンが誤っているケースもありますが、作成されたパターンで適切に抽出されるか確認し、必要に応じて生成AI等で修正すれば容易に文字列パターンを作成することができます。

Excelで正規表現を利用した関数の活用例

以下は、REGEXEXTRACT関数を使った事例です。簡易なパターンは、TEXTBEFORE/TEXTAFTER関数が便利です。

shikumika.org

以下は、関連するREGEXREPLACE関数を活用した事例です。

shikumika.org

XLOOKUP関数でも利用できます。

shikumika.org

 

以上、Excelで正規表現を使った電話番号、メールアドレス、URLの抽出方法と実例でした。従来だと複雑な数式で抽出していたような文字列の抽出がREGEXEXTRACT関数で簡素化できる可能性があります。