
- REGEXREPLACE関数とは?読み方と使いどころ
- 結論:基本の書き方と実務パターン早見表
- REGEXREPLACE関数の構文と引数
- 実務活用例1:電話番号の表記ゆれを一括統一する
- 実務活用例2:個人情報をマスキングする(一部を***に置換)
- 実務活用例3:商品コードの形式を一括変換する(キャプチャグループ)
- 実務活用例4:日付の表記形式を変換する
- 実務活用例5:余分な空白・スペースを整理する
- 実務活用例6:メールアドレスの一部を隠す
- 要注意:「.*」の削りすぎ(貪欲マッチ)に気をつける
- SUBSTITUTE・REPLACEとの違い
- よく使う正規表現トークン早見表
- 保存版:目的別パターン集
- Copilotに数式のたたき台を作ってもらう
- 対応バージョン:Microsoft 365専用(買い切り版は不可)
- エラーが出るときのチェックポイント
- よくある質問(FAQ)
- まとめ
REGEXREPLACE関数とは?読み方と使いどころ
REGEXREPLACE関数は、一般に「レジェックスリプレース」と読まれます。REGEXは「Regular Expression(レギュラー・エクスプレッション)=正規表現」の略です。
正規表現とは、文字そのものではなく「文字のパターン」を指定する書き方のことです。たとえば[0-9]と書くと「0〜9のどれか1文字」という意味になります。「03-1234-5678」という特定の文字列ではなく、「数字」「英字と数字の組み合わせ」といったパターンで検索・置換できるのが最大の特徴です。
使いどころは、次のような「置換したい文字が1種類に決まっていない」場面です。
- 電話番号のハイフン・カッコ・スペースをまとめて削除して表記を統一したい
- 資料共有前に、電話番号やメールアドレスの一部を***で隠したい
- 「ABC12345」のような商品コードを「ABC-12345」の形式に一括変換したい
置換したい文字が「株式会社」のように1つに決まっているならSUBSTITUTE関数で十分です。対象が複数・不定形になった時点でREGEXREPLACEの出番と覚えておくと迷いません。
結論:基本の書き方と実務パターン早見表
基本の書き方は次のとおりです。
=REGEXREPLACE(文字列, パターン, 置換文字列, [置換対象], [大文字小文字の区別])重要:REGEXREPLACE関数はMicrosoft 365(Windows・Mac)とExcel for the web専用です。Excel 2024・2021・2019などの買い切り版では使えず、#NAME?エラーになります(詳細は後述の対応バージョン表を参照)。
この記事で紹介する実務パターンの早見表です。数式はそのままコピーして使えます(対象セルはA2の想定)。
| やりたいこと | 数式 | 難易度 |
|---|---|---|
| 電話番号から数字以外を削除して統一 | =REGEXREPLACE(A2,"[^0-9]","") | ★ |
| 連続した空白を1つにまとめる | =REGEXREPLACE(A2," +"," ") | ★ |
| 電話番号の先頭ブロックを***でマスキング | =REGEXREPLACE(A2,"[0-9]+-","***-",1) | ★★ |
| メールアドレスのドメイン部を隠す | =REGEXREPLACE(A2,"@.+","@***") | ★★ |
| 日付表記を「2026/7/4」→「2026年7月4日」に変換 | =REGEXREPLACE(A2,"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})","$1年$2月$3日") | ★★★ |
| 商品コードの英字と数字の間にハイフンを挿入 | =REGEXREPLACE(A2,"([A-Z]+)([0-9]+)","$1-$2") | ★★★ |
REGEXREPLACE関数の構文と引数
Microsoft公式の構文は次のとおりです。
=REGEXREPLACE(text, pattern, replacement, [occurrence], [case_sensitivity])| 引数 | 必須/省略可 | 意味 |
|---|---|---|
| text(文字列) | 必須 | 置換対象の文字列、またはセル参照 |
| pattern(パターン) | 必須 | 置き換えたい部分を表す正規表現 |
| replacement(置換文字列) | 必須 | 一致した部分と置き換えるテキスト |
| occurrence(置換対象) | 省略可 | 何番目の一致を置換するか。既定は0(すべて置換)。負の数を指定すると末尾から数えて置換 |
| case_sensitivity(大文字小文字の区別) | 省略可 | 0=区別する(既定)、1=区別しない |
REGEXREPLACEは「PCRE2」という種類の正規表現を使っています。複雑なパターンを試したい場合は、PCRE2対応のテストサイト(regex101など)を使うと、Excelと同じ結果を事前に確認できます。
実務活用例1:電話番号の表記ゆれを一括統一する
顧客リストの電話番号が「03-1234-5678」「(03)1234-5678」のようにバラバラなとき、次の数式で数字だけを残して統一できます。
=REGEXREPLACE(A2,"[^0-9]","")パターン[^0-9]は「0〜9の数字以外」という意味です。数字以外をすべて空文字(””)に置換するため、ハイフン・カッコ・スペースがまとめて削除されます。
| 変換前(A2) | 変換後 |
|---|---|
| 03-1234-5678 | 0312345678 |
| (03)1234-5678 | 0312345678 |
注意:結果は文字列として返されるため、先頭の「0」は消えません。ただし別のセルに数値としてコピーし直すと0落ちすることがあるので、貼り付け先の表示形式は「文字列」にしておくと安全です。
実務活用例2:個人情報をマスキングする(一部を***に置換)
資料の共有前に電話番号の一部を隠したいときは、Microsoft公式ドキュメントでも紹介されている次のパターンが使えます。
=REGEXREPLACE(A2,"[0-9]+-","***-",1)| 変換前(A2) | 変換後 |
|---|---|
| 090-1234-5678 | ***-1234-5678 |
[0-9]+は「1文字以上の連続する数字」、直後の-と合わせて「数字のかたまり+ハイフン」に一致します。第4引数に1を指定しているため、最初の1か所だけが置換されます。
第4引数を省略(または0)にすると、「***-***-5678」のように一致箇所がすべて置換される点に注意してください。ここが第4引数(occurrence)の使いどころです。
実務活用例3:商品コードの形式を一括変換する(キャプチャグループ)
「ABC12345」のような商品コードを「ABC-12345」に整形するには、カッコで囲んだキャプチャグループを使います。
=REGEXREPLACE(A2,"([A-Z]+)([0-9]+)","$1-$2")| 変換前(A2) | 変換後 |
|---|---|
| ABC12345 | ABC-12345 |
パターン内のカッコ( )で囲んだ部分は、置換文字列の中で$1、$2…として参照できます(Microsoft公式の仕様)。この例では、
$1=1番目のグループ([A-Z]+)=英字部分「ABC」$2=2番目のグループ([0-9]+)=数字部分「12345」
となり、元の文字を活かしたまま間にハイフンを挿入できます。
実務活用例4:日付の表記形式を変換する
文字列として入力された「2026/7/4」を「2026年7月4日」に変換する例です。キャプチャグループの応用で、順番の入れ替えや区切り文字の差し替えが自由にできます。
=REGEXREPLACE(A2,"([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})","$1年$2月$3日")| 変換前(A2) | 変換後 |
|---|---|
| 2026/7/4 | 2026年7月4日 |
{4}は「ちょうど4文字」、{1,2}は「1〜2文字」の繰り返しを表します。年(4桁)・月(1〜2桁)・日(1〜2桁)をそれぞれグループで捕まえ、区切りだけを差し替えています。
同じ考え方で、姓と名の順序入れ替え("$2, $1"のような置換)もMicrosoft公式ドキュメントで例示されています。
実務活用例5:余分な空白・スペースを整理する
他システムから貼り付けたデータにありがちな「連続スペース」は、次の数式で1つにまとめられます。
=REGEXREPLACE(A2," +"," ") +(スペース+プラス)は「1個以上連続するスペース」の意味です。TRIM関数と違い、全角スペースも対象にしたい場合はパターンを"[ ]+"(半角と全角スペースを角カッコ内に並べる)に変えれば対応できます。
実務活用例6:メールアドレスの一部を隠す
顧客リストの共有時に、メールアドレスのドメイン部(@より後ろ)を隠す例です。
=REGEXREPLACE(A2,"@.+","@***")| 変換前(A2) | 変換後 |
|---|---|
| taro@example.com | taro@*** |
.は「任意の1文字」、+は「1回以上の繰り返し」なので、@.+で「@とそれ以降のすべて」に一致します。逆にユーザー名側を隠したい場合は、キャプチャグループを使って=REGEXREPLACE(A2,".+(@.+)","***$1")のように書けます。
要注意:「.*」の削りすぎ(貪欲マッチ)に気をつける
正規表現でつまずきやすいのが、.*や.+ができるだけ長く一致しようとする性質(貪欲マッチ)です。
たとえば「営業部(東京)担当(山田)」からカッコと中身を削除しようとして、次のように書いたとします。
=REGEXREPLACE(A2,"(.*)","")| パターン | 結果 | 説明 |
|---|---|---|
(.*) | 営業部 | 失敗例。最初の「(」から最後の「)」までが1つの一致とみなされ、「担当」まで消えてしまう |
(.*?) | 営業部担当 | 成功例。*?と書くと最短一致になり、カッコごとに分けて削除される |
*や+の直後に?を付けると「できるだけ短く一致する」(最短マッチ)動作に変わります。「対象と対象の間に同じ文字が複数回出てくる」データを扱うときは、最短マッチを検討してください。
SUBSTITUTE・REPLACEとの違い
従来の置換関数との使い分けは次のとおりです。
| 関数 | 置換の指定方法 | 得意な場面 | 対応バージョン |
|---|---|---|---|
| SUBSTITUTE | 「この文字列」を指定 | 特定の決まった文字の置換(例:「株式会社」→「(株)」) | 全バージョン |
| REPLACE | 「何文字目から何文字」を指定 | 位置が固定されている置換 | 全バージョン |
| REGEXREPLACE | 「このパターン」を指定 | 表記ゆれの統一、形式変換、マスキングなどパターンが不定の置換 | Microsoft 365のみ |
よく使う正規表現トークン早見表
| トークン | 意味 |
|---|---|
[0-9] | 任意の半角数字1文字 |
[a-z] | aからzの小文字1文字 |
[^0-9] | 数字「以外」の1文字(^を角カッコ内の先頭に置くと否定) |
\d | 数字1文字。[0-9]と似ているが、環境によっては全角数字にも一致するという報告があるため、半角数字だけを対象にしたい場合は[0-9]が確実 |
\s | 空白文字(スペース・タブ・改行など)1文字 |
\w | 英数字とアンダースコア1文字 |
. | 任意の1文字 |
a* | 直前の文字(a)の0回以上の繰り返し |
a+ | 直前の文字(a)の1回以上の繰り返し |
*? +? | 最短マッチ(できるだけ短く一致) |
{4} / {1,2} | 直前の要素のちょうど4回 / 1〜2回の繰り返し |
^ | 文字列の先頭(角カッコの外で使った場合) |
$ | パターン内では文字列の末尾。置換文字列内では$1のようにキャプチャ参照の意味になるので混同に注意 |
( ) | キャプチャグループ。置換文字列で$1、$2…として参照 |
\( \) | カッコそのものを文字として一致させたいときのエスケープ |
保存版:目的別パターン集
本文で紹介した例に加えて、そのまま使えるパターンをまとめました。いずれも置換文字列は空文字(””)で「削除」に使えます。
| やりたいこと | パターン | 置換文字列 |
|---|---|---|
| 英字だけを残す(数字・記号を削除) | [^A-Za-z] | "" |
| 空白(半角・全角)をすべて削除 | [ ]+ | "" |
| カッコと中身を削除(複数あっても個別に) | (.*?) | "" |
| 数字だけを残す | [^0-9] | "" |
Copilotに数式のたたき台を作ってもらう
正規表現のパターンを一から書くのが難しい場合は、Microsoft 365のCopilotに「REGEXREPLACEで電話番号から数字以外を削除する数式を作成して」のように日本語で指示すると、数式のたたき台を作ってもらえます。ただし生成された数式が意図どおり動くとは限らないため、必ず少量のデータでテストしてから本番のリストに適用してください。
対応バージョン:Microsoft 365専用(買い切り版は不可)
Microsoft公式ドキュメントの「適用先」に基づく対応状況です。
| バージョン | REGEXREPLACE |
|---|---|
| Excel for Microsoft 365(Windows) | ○ 使える |
| Excel for Microsoft 365 for Mac | ○ 使える |
| Excel for the web | ○ 使える |
| Excel 2024 / 2021 / 2019 / 2016(買い切り版) | × 使えない(#NAME?エラー) |
ファイルを共有する際の注意:自分の環境で動いても、相手がExcel 2021などの場合は数式部分が#NAME?エラーになります。共有前に「コピー→値として貼り付け」で計算結果を固定しておくと確実です。
エラーが出るときのチェックポイント
| 症状 | 主な原因 | 対処 |
|---|---|---|
#NAME?が表示される | REGEXREPLACE非対応のバージョンで開いている | Microsoft 365版またはExcel for the webで開く。共有用は値貼り付けに変換 |
| エラーになる/意図しない結果になる | 正規表現パターンの記述ミス(カッコの閉じ忘れ、エスケープ漏れなど) | カッコ( )を文字として一致させたい場合は\( \)とエスケープする。少量のデータでテストしてから本番に適用する |
| 置換されすぎる | 第4引数を省略しているため全一致が置換されている/.*の貪欲マッチ | 第4引数に1など置換したい番目を指定する。.*?の最短マッチを検討する |
| 大文字・小文字が思いどおりに一致しない | 既定では大文字小文字を区別する | 第5引数に1を指定して区別しない設定にする |
よくある質問(FAQ)
Q. 作った正規表現を事前にテストする方法はありますか?
A. 正規表現テストサイト(regex101など)でフレーバーに「PCRE2」を選ぶと、Excelと同じ方式で動作を確認できます。複雑なパターンは本番データに適用する前にテストするのがおすすめです。
Q. Googleスプレッドシートにも同名の関数がありますが、同じものですか?
A. 名前は同じREGEXREPLACEでも、Googleスプレッドシートは「RE2」という別方式の正規表現を使っており、引数構成も異なります(スプレッドシート版に第4・第5引数はありません)。基本的なパターンは共通で使えますが、完全互換ではない点に注意してください。
Q. Excel 2021で正規表現置換をしたい場合の代替手段は?
A. 関数としては使えないため、Power Queryでの変換、またはVBA(正規表現ライブラリ)を使う方法が代替になります。単発の作業なら、Microsoft 365環境で処理して値貼り付けした結果だけを渡すのが最も手軽です。
まとめ
- REGEXREPLACE(レジェックスリプレース)は正規表現パターンで一括置換できる関数。構文は
=REGEXREPLACE(文字列, パターン, 置換文字列, [置換対象], [大文字小文字]) - 実務では「表記ゆれの統一(
[^0-9])」「マスキング」「キャプチャグループ$1を使った形式変換」の3パターンを押さえれば大半をカバーできる - 第4引数の既定は0(すべて置換)。1か所だけ置換したいときは番目を指定する。
.*の削りすぎには.*?(最短マッチ)で対処 - Microsoft 365専用。Excel 2024・2021・2019などの買い切り版では
#NAME?になるため、共有時は値貼り付けで固定する












コメント