この記事について
この記事は、生成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-123 や status=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など別の機微情報も混ざり得ます。メールだけ消えたから安全とは判断せず、共有前に人が変換後を再確認します。
