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

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

この記事について
この記事は、生成AIを活用した自動生成フローで作成しています。MicrosoftのREGEXEXTRACT / REGEXREPLACE公式資料を確認し、実在データを使わずダミーログから必要項目を抽出・マスクする形に整理しています。

検証ステータス:📘 Microsoft公式仕様確認済み・Excel実機未確認

Microsoft 365版Excelの正規表現関数を使うと、ログを別ツールへ移さなくても「IDだけ抜く」「メールアドレスを伏せる」といった前処理をセル上で試せます。ポイントは、最初から複雑な正規表現を書かず、ダミー1行で結果を見てから1か所ずつ広げることです。

まず試す

A2に次のダミーログを入れます。

2026-09-13 user=demo@example.com id=AB-123 ip=192.0.2.10 status=500

B2に次の式を入れます。

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

期待する結果は次です。

id=AB-123

ここを見る

正規表現を分解すると意味が見えます。

部分意味
id=文字どおりの id=
[A-Z]{2}英大文字を2文字
-ハイフン
[0-9]{3}数字を3桁

MicrosoftのREGEX系関数はPCRE2系の正規表現を利用します。正規表現は強力ですが、入力形式を決めずに万能パターンを作ろうとすると誤検知が増えます。

メールアドレスをマスクしてみる

C2には次を入れます。

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

demo@example.com***@*** に置き換わり、id=AB-123status=500 は残ります。

ここで大事なのは、元セルを書き換えず、別セルへ変換結果を出すことです。ログ調査では元データを残し、加工結果と比較できるようにします。

1か所変えてみる

A2のIDを次へ変えます。

id=ABC-123

最初の式では期待どおりに取れなくなります。理由は [A-Z]{2} が「大文字2文字」と決めているからです。

3文字も許可したいなら、そこだけ次へ変えます。

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

{2,3} は「2回以上3回以下」です。1か所変えて結果差を見ると、正規表現を丸暗記せず量指定子の意味を理解できます。

正規表現でメールの正しさを完全判定しようとしない

今回のメール用パターンは、ダミーログから「メールらしい文字列を見つけて伏せる」教材です。世の中のすべての有効なメールアドレスを厳密に検証する式ではありません。

同じようにIPアドレスも \d+\.\d+\.\d+\.\d+ と書けば形は拾えますが、999.999.999.999 まで拾います。抽出と妥当性検証は別問題です。

仕事で使うなら

事務職や問い合わせ担当でも、たとえば次の作業に使えます。

  • システム部門から受け取ったログ一覧から受付IDだけ抜く

  • ベンダーやAIへ渡す前にメールアドレスをマスクする

  • エラーコードだけ別列へ抽出して件数集計する

  • 数百行の自由記述から一定形式の管理番号を拾う

ただし、本番ログには氏名、内部ホスト名、URLのquery string、tokenなど別の機微情報も混ざり得ます。メールだけ消えたから安全とは判断せず、共有前に人が変換後を再確認します。

公式情報・一次情報

GitHubサンプル

文書情報

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

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

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