文字列
REGEXREPLACE関数の使い方・読み方
読み方:REGEXREPLACE は「レジェックスリプレイス」と読みます。(一般的な読み方です。公式に読み仮名の定めはありません)
REGEXREPLACEは、正規表現に一致した部分を、別の文字に置き換える関数です。
このページの中身(22項目)
この記事の書式と対応環境の出どころ(2026-08-26 確認)
- Google スプレッドシート ヘルプ:公式の書式は
REGEXREPLACE(テキスト, 正規表現, 置換)
https://support.google.com/docs/answer/3098245 - Microsoft サポート:REGEXREPLACE 関数(Microsoft 365 以降で使えます)
https://support.microsoft.com/ja-jp/excel/functions/regexreplace-function
関数の仕様は追加・変更されることがあります。書式が合わないときは、上の公式ページで最新をご確認ください。
SUBSTITUTE が「特定の文字」を置き換えるのに対し、REGEXREPLACEは「パターン」で置き換えます。 複数種類の文字をまとめて処理できるのが強みです。
Excelにはありません。 スプレッドシート固有の関数です。

書式
=REGEXREPLACE(文字列, 正規表現, 置換文字)
一致したすべての箇所が置き換わります。1箇所だけということはできません。
正規表現の最小限の知識
| 記号 | 意味 | |
|---|---|---|
\d | 数字1文字 | |
\D | 数字以外1文字 | |
\s | 空白1文字 | |
. | 任意の1文字 | |
+ | 直前を1回以上 | |
* | 直前を0回以上 | |
[abc] | a か b か c | |
[^abc] | a b c 以外 | |
^ | 先頭 | |
$ | 末尾 | |
(...) | キャプチャ(後で $1 で参照) | |
| `\ | ` | または |
. ( ) - などを文字そのものとして扱うときは、前に \ を付けます。

不要な文字を一括削除する
REGEXREPLACEの最頻出の用途です。
ハイフン・スペースをまとめて削除
=REGEXREPLACE(A1, "[- ]", "")
[- ] は「ハイフン、半角スペース、全角スペースのどれか」という意味です。
SUBSTITUTE だと入れ子が3重になります。
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1, "-", ""), " ", ""), " ", "")
削除対象が3つを超えたら、REGEXREPLACEに切り替えるのが実用的な目安です。
数字以外を全部削除する
=REGEXREPLACE(A1, "\D", "")
電話番号や郵便番号から記号を除いて、数字だけにできます。
計算に使うなら VALUE で数値化してください。
=VALUE(REGEXREPLACE(A1, "\D", ""))
全角数字を含めて処理する
=VALUE(REGEXREPLACE(ASC(A1), "\D", ""))
ASC で全角を半角に変換してから処理します。
記号だけ削除して文字は残す
=REGEXREPLACE(A1, "[^\w\sぁ-んァ-ン一-龥]", "")
連続する空白を1つにまとめる
=REGEXREPLACE(A1, "\s+", " ")
改行を削除する
=REGEXREPLACE(A1, "\n", "")
CSVやWebからコピーしたデータに紛れ込む改行を除去できます。
キャプチャで並べ替える
REGEXREPLACEの最も強力な機能です。
() で囲んだ部分を、置換文字の中で $1 $2 として参照できます。
姓名を入れ替える
=REGEXREPLACE(A1, "^(\S+)\s+(\S+)$", "$2 $1")
山田 太郎 → 太郎 山田
日付の形式を変える
=REGEXREPLACE(A1, "(\d{4})/(\d{1,2})/(\d{1,2})", "$1年$2月$3日")
2026/4/1 → 2026年4月1日
元が文字列の日付の場合に使えます。日付型なら TEXT を使ってください。
電話番号を整形する
=REGEXREPLACE(REGEXREPLACE(A1, "\D", ""), "^(\d{2,4})(\d{4})(\d{4})$", "$1-$2-$3")
内側でまず数字だけにして、外側でハイフンを入れています。
全行に適用する
ARRAYFORMULA が確実に効きます。
=ARRAYFORMULA(IF(A2:A="", "", REGEXREPLACE(A2:A, "[- ]", "")))
データ整形を1本の数式で全行に効かせられるので、CSVの前処理に強い組み合わせです。
REGEXEXTRACT・REGEXMATCHとの使い分け
| 関数 | 用途 | 一致しないとき |
|---|---|---|
| REGEXREPLACE | 置き換える | 元の文字列がそのまま返る |
| REGEXEXTRACT | 取り出す | #N/A |
REGEXMATCH | 判定する | FALSE |
REGEXREPLACEは一致しなくてもエラーになりません
元の文字列がそのまま返ります。IFERROR で包む必要がないのは、REGEXEXTRACT にはない利点です。
大文字小文字を区別しない
先頭に (?i) を付けます。
=REGEXREPLACE(A1, "(?i)tokyo", "東京")
SUBSTITUTE は大文字小文字を区別するので、区別せずに置換したいときはこちらを使ってください。
よくある問題
置き換わらない
- パターンが実際のデータと一致していない
- 全角と半角が違う(
ーと-、1と1) - 特殊文字をエスケープしていない(
.()[]*+?\)
. を文字として扱いたいなら \. と書いてください。
想定以上に置き換わる
.を「任意の1文字」として使ってしまっている+が貪欲に一致しすぎている →+?で最短一致に
結果が文字列になる
REGEXREPLACEの結果は常に文字列です。計算に使うなら VALUE で数値化してください。
#VALUE! が出る
正規表現の書き方が不正です。括弧の対応や、エスケープを確認してください。
単純な置換で足りるかを先に判断する
文字を置き換える方法には、文字列を指定する方法と、パターンを指定する方法があります。後者のほうが強力ですが、常に優れているわけではありません。
文字列を指定する置換で足りるのは、置き換える対象が固定の文字列である場合です。ハイフンを削除する、全角の空白を半角にする、特定の語を別の語に置き換える。こうした処理は、単純な置換のほうが読みやすく、意図も明確です。
パターンを指定する置換が必要なのは、対象が形でしか指定できない場合です。数字だけをすべて削除する、連続した空白を一つにまとめる、記号を種類ごとにまとめて処理する。こうした要求は、単純な置換では対応できません。
判断の目安は、置き換える対象を列挙できるかどうかです。列挙できるなら単純な置換、できないならパターン、と考えてください。
もうひとつ、環境の制約もあります。パターンを使う関数はスプレッドシート特有のものが多く、他の環境では動きません。ファイルを共有する予定があるなら、この点も考慮してください。→ SUBSTITUTE関数の使い方
実務で使うパターンは限られる
正規表現には多くの記号がありますが、データの整形で使うのは限られています。次の四つを覚えれば、実務の大半は書けます。
数字を表す記号
繰り返しの記号と組み合わせて、連続した数字を対象にできます。数字だけを削除する、数字部分を別の文字に置き換える、といった処理に使います。
空白を表す記号
半角の空白、全角の空白、タブ、改行をまとめて対象にできます。取り込んだデータの整形で頻繁に使います。
繰り返しの記号
零回以上と一回以上の二種類があります。連続した空白を一つにまとめる処理では、この記号が必須です。
いずれかを表す書き方
角括弧の中に候補を並べます。複数の記号をまとめて対象にできます。
これらを組み合わせれば、記号の除去、空白の正規化、数字の抽出といった処理が一つの数式で書けます。単純な置換を何重にも入れ子にするより、はるかに短く済みます。
整形の定番処理
取り込んだデータの整形では、次のような処理を組み合わせます。
連続した空白を一つにまとめる
空白を表す記号と繰り返しの記号を組み合わせ、単一の半角空白に置き換えます。全角と半角が混在していても、まとめて処理できます。
記号を除去する
電話番号や郵便番号から、ハイフンや括弧を取り除きます。突き合わせのキーとして使う場合、形式を揃えておく必要があります。
数字以外を除去する
「約1,200円」のような文字列から数字だけを取り出したい場合に使います。ただし、結果は文字列なので、数値として使うなら変換が必要です。
改行を除去する
フォームの回答から取り込んだデータには、セルの中に改行が入っていることがあります。改行を表す記号を指定して置き換えます。
これらを組み合わせた整形用の作業列を作っておけば、取り込みのたびに同じ処理が自動で行われます。数式の中で毎回処理するより、はるかに保守しやすくなります。
意図しない一致に注意する
パターンによる置換の危険は、想定していない部分にも一致してしまうことです。
たとえば、数字を削除するパターンを住所に適用すると、番地の数字も消えます。意図が「郵便番号だけを消す」だったなら、目印を含めたパターンにする必要があります。
また、パターンが緩すぎると、想定外のデータで誤動作します。テストしていない形式のデータが入ってきたときに、静かに間違った結果を返します。
対策としては、まず一致するかどうかを判定する関数で確認してから、置換に進むという手順があります。何件が対象になるかを事前に数えておけば、想定と違うときに気づけます。
もうひとつ、置換の前後で文字数を比較する方法もあります。想定より多く削られていれば、パターンが緩すぎるということです。
自動化する前に、実データの一部で必ず確認してください。パターンによる処理は、間違いに気づきにくいという性質があります。
検証してから本番に適用する
パターンによる置換は、想定外の部分に一致する危険があります。実データに適用する前に、必ず検証してください。
検証用の列を作り、置換前と置換後を並べて表示します。目で見て、意図どおりに変換されているかを確認します。
全件を目視するのは現実的でないので、いくつかの方法で絞り込みます。
第一に、置換前後で文字数が変わった行だけを抽出します。変換が起きた行が分かります。想定より多く変換されていれば、パターンが緩すぎます。
第二に、変換後の値の種類を数えます。想定される種類より多ければ、意図しない変換が起きています。重複を除く関数で一覧を出せば、異常な値が見つかります。
第三に、極端な例を探します。もっとも長い値、もっとも短い値、記号を含む値。これらは想定から外れやすいので、優先的に確認します。
第四に、変換前後で情報が失われていないかを確認します。必要な部分まで削っていないか。
この検証を経てから、本番のデータに適用してください。パターンによる処理は、間違いに気づきにくいという性質があります。
処理を段階に分ける
複雑な変換を一つのパターンで書こうとすると、読めなくなり、誤りも増えます。段階に分けてください。
たとえば、住所を正規化する場合。全角空白を半角にする、連続空白を一つにする、ハイフンを統一する、丁目番地の表記を揃える。これらを一つのパターンで書くのは無理があります。
作業列を段階ごとに用意し、順に処理します。各段階の結果が見えるので、どこで意図と違う変換が起きているかが分かります。
段階に分けると列が増えますが、非表示にできます。数式が読めなくなるコストのほうが、はるかに大きいものです。
動作が確認できた後で、必要ならまとめてください。ただし、まとめる前の段階分けの版はどこかに残しておきます。仕様が変わったときに、そこから修正するほうが早くなります。
もうひとつ、各段階に見出しを付けてください。「空白正規化」「記号統一」「桁揃え」。何をしている列なのかが分かれば、他人が引き継いだときにも扱えます。
「文字列」の関数を全体から見る
文字列は文字を加工する関数群です。同じカテゴリの関数は、つまずく場所も似ています。この記事のほかに31本あります。
| 記事 |
|---|
| CHAR |
| CLEAN |
| CODE |
| CONCAT |
| CONCATENATE |
| EXACT |
| FIND |
| FIXED |
| HYPERLINK |
| IMAGE |
| JIS |
| LEFT |
| LEN |
| LENB |
| LOWER |
| MID |
| NUMBERVALUE |
| PROPER |
| REGEXEXTRACT |
| REGEXMATCH |
| REPLACE |
| REPT |
| RIGHT |
| SEARCH |
| SPLIT |
| SUBSTITUTE |
| TEXT |
| TEXTJOIN |
| TRIM |
| UPPER |
| VALUE |
このカテゴリで共通するつまずき
全角と半角、前後の空白、改行。この3つが原因のほとんどです。1つで理解した内容は、同じカテゴリの他の関数にもそのまま使えます。
どれを使うかの決め方
位置で取るのか、記号を目印に取るのかで使う関数が変わります。関数の一覧を眺めて選ぼうとすると、どれも当てはまるように見えて決まりません。
迷ったときは
→ 全関数の一覧 に目的別の索引があります。
数式を書く前の手順
書き始める前に決めておくことがあります。ここが曖昧なまま書くと、途中で行き詰まります。
1. 出したい結果を一文で書く
「何を、どの条件で、どんな形で出したいか」。この一文が書ければ、関数はほぼ決まります。書けないなら、まだ要件が固まっていません。
2. 元データの型を確認する
全角と半角、前後の空白、改行。この3つが原因のほとんどです。=ISNUMBER(A2) で数値かどうかを確認できます。見た目が同じでも、数値と文字列は別物です。
3. 空欄と0の扱いを決める
未入力なのか、実績が0なのか。表の意味が変わります。どちらとして扱うかを決めてから書いてください。
4. 条件の数を数える
位置で取るのか、記号を目印に取るのかで使う関数が変わります。将来条件が増える可能性があるなら、最初から複数条件に対応する形にしてください。
5. 共有先の環境を確認する
新しい関数は、古い環境で開くとエラーになります。社外に渡すファイルでは、この一点で選択肢が変わります。
6. 1行だけ書いて確認する
全行にコピーする前に、1行分の結果が正しいかを見てください。間違ったまま広げると、直す手間が増えます。
どの関数でも共通する確認
関数を問わず、結果がずれる原因は限られています。この5つを確認すれば、大半が解決します。
参照を固定したか
下方向にコピーする数式では、動いてはいけない参照を固定します。上の数行だけ見て判断しないでください。ずれは下のほうで表面化します。
範囲の行数が揃っているか
複数の範囲を渡す関数では、行数がずれると結果が狂います。エラーにならず値が返るため、気づきにくい種類の間違いです。
型が揃っているか
=ISNUMBER(A2)
数値として入っているかを判定します。システムから書き出したデータでは、これが原因のことが多くあります。
前後に空白が入っていないか
=LEN(A2)&" / "&LEN(TRIM(A2))
数が違えば、余分な空白が入っています。見た目では判別できません。
別の方法で検算したか
同じ数字を別の関数でも出して、突き合わせてください。1つの結果だけを見ても、正しいかどうかは判断できません。
最終行まで確認したか
一番下までスクロールして、結果を見てください。途中から値が変わっていないかを確認します。
引き継ぐときに残すこと
数式は動いていても、意図は残りません。渡す前に、次の点をシート内にメモしてください。3分で終わります。
何を出している数式か
一行で構いません。読めば分かると思っても、数か月後の自分には分かりません。
どの表を参照しているか
参照先のシート名と、更新の担当。別ファイルなら、その場所も書いてください。
該当しないときの扱い
空欄にしているのか、文言を出しているのか、エラーのまま残しているのか。書いていないと、受け取った側は空欄をデータなしと読みます。
触ってはいけない場所
列を挿入すると壊れる数式がある場合、必ず書き残してください。この一行があるだけで、引き継ぎ後の事故が大きく減ります。
使った関数の対応環境
新しい関数を使っている場合、古い環境では開けません。共有の範囲が広がる可能性があるなら、明記してください。
確定した期間は値にする
締めた月の集計は、値貼り付けにしてください。参照元を消しても壊れなくなり、ファイルも軽くなります。
このサイトの収録状況
現在、201本の記事をカテゴリ別に整理しています。関数名が分からない場合は、カテゴリから探してください。
| カテゴリ | 記事数 |
|---|---|
| 目的別 | 51本 |
| 集計 | 47本 |
| 文字列 | 31本 ←この記事 |
| 日付 | 19本 |
| 検索・参照 | 15本 |
| 条件 | 15本 |
| 機能 | 12本 |
| 配列・抽出 | 10本 |
| 関数一覧 | 1本 |
探し方の順番
関数名が分かっているなら検索窓から。やりたいことだけ決まっているなら「目的別」から。近い関数を比べたいなら、同じカテゴリの一覧から入ってください。
記事の構成
どの記事も、書式・実例・つまずきやすいところ・似た関数との使い分けを同じ順番で並べています。1本読めば、他の記事も同じ場所を探せます。
よくある質問
Q. 何も置き換わりません
パターンが一致していません。一致を判定する関数で、まず確認してください。
Q. 想定より多く置き換わります
パターンが緩すぎます。目印になる文字を含めて、範囲を限定してください。
Q. 大文字と小文字は区別されますか
区別されます。区別しない指定を先頭に置く書き方もありますが、環境によって対応が違います。
Q. 削除したいのですが
置き換え後の文字列に空文字を指定してください。
Q. 日本語も扱えますか
扱えます。ただし文字の範囲を指定する書き方は、環境によって挙動が変わることがあります。
Q. Excelでも使えますか
スプレッドシート特有の関数です。他の環境では、単純な置換を組み合わせるか、別の手段が必要です。
Q. 一部だけ取り出したいのですが
取り出す専用の関数があります。→ REGEXEXTRACT関数の使い方
Q. パターンが複雑になりすぎます
処理を分けて、作業列で段階的に行ってください。一つの数式に詰め込むより、確認も修正も楽になります。
まとめ
- 書式は
=REGEXREPLACE(文字列, "正規表現", "置換文字") - 一致したすべての箇所が置き換わる
- 削除対象が3つを超えたら SUBSTITUTE から乗り換える
()と$1で並べ替えができる(姓名の入れ替えなど)- 一致しなくてもエラーにならない(元の文字列が返る)
- 全行適用は ARRAYFORMULA で確実に効く
- Excelには無い
関連する関数
- REGEXEXTRACT — 正規表現で取り出す
- SUBSTITUTE — 特定の文字を置き換える
- ARRAYFORMULA — 全行に効かせる
- TEXT — 日付や数値の書式を整える
- 関数一覧に戻る