ExcelだけでログからID・メール・IPを抜く ― REGEXEXTRACT / REGEXREPLACEを使う

VBA・Officeカテゴリを表すパンダのイラスト VBA・Office

この記事について
この記事は、生成AIを活用した自動生成フローで作成しています。Microsoft SupportのREGEXEXTRACT / REGEXREPLACE仕様を確認し、Excelだけでログ文字列を抽出・マスクするTIPSとして整理しています。

検証ステータス:📘 公式仕様確認済み・数式サンプル実装済み・対象Excel実機未確認

ExcelだけでログからID・メール・IPを抜く ― REGEXEXTRACT / REGEXREPLACEを使う

Microsoft 365版Excelなら、正規表現を使うためだけにVBAを書く必要がない場面があります。REGEXEXTRACT で抽出、REGEXREPLACE で置換できるので、1セルのログ整形なら数式だけで済みます。

たとえばA2に次の文字列があるとします。

REQ-20260906 user=tanaka@example.com ip=192.168.1.20

リクエストIDだけ抜く

=REGEXEXTRACT(A2,"[A-Z]{2,10}-[0-9]{4,}")

結果は REQ-20260906 です。

メールアドレスの名前部分をマスクする

=REGEXREPLACE(A2,"([A-Za-z0-9._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,})","***@$2")

tanaka@example.com***@example.com のように置き換えられます。AIへログを渡す前の簡易マスクにも応用できます。

IPアドレスらしい部分を抜く

=REGEXEXTRACT(A2,"(?:[0-9]{1,3}\.){3}[0-9]{1,3}")

これは「IPv4らしい見た目」を抜く簡易例です。999.999.999.999 も一致し得るため、IPアドレスの厳密な妥当性検証にはそのまま使いません。

ここが今どきのExcel

Microsoftの仕様では、REGEX系関数はPCRE2フレーバーの正規表現を使います。つまり、Excel独自のワイルドカードより表現力が高く、正規表現の知識を数式へ持ち込めます。

一方、数万行のETLならPower Query、複数ファイルまで処理するならOffice ScriptsやVBA、と使い分けるのが自然です。

GitHubサンプル

公式情報・一次情報

ライセンス:本記事のテキスト/コードは特記なき限り CC BY 4.0 です。引用の際は出典URL(本ページ)を明記してください。
利用ポリシー もご参照ください。

コメント

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