この記事について
この記事は、生成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、と使い分けるのが自然です。

コメント