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サンプル

公式情報・一次情報

文書情報

記事タイトル
ExcelだけでログからID・メール・IPを抜く ― REGEXEXTRACT / REGEXREPLACEを使う
作成日
更新日
Source URL
https://papanda925.com/?p=15187

ライセンス: 本記事のうち、当サイトが権利を有する本文・自作図表は、特記なき限り CC BY 4.0 で利用できます。生成AIを活用して作成・編集した内容を含みます。コードについて、別途ライセンス表示またはリンク先GitHubリポジトリのライセンスがある場合は、その条件を優先します。引用・第三者資料・画像・商標等は本ライセンスの対象外です。 利用ポリシー

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