<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>キャプチャグループ &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/%e3%82%ad%e3%83%a3%e3%83%97%e3%83%81%e3%83%a3%e3%82%b0%e3%83%ab%e3%83%bc%e3%83%97/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Tue, 26 May 2026 10:46:50 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>キャプチャグループ &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【Excel】REGEXREPLACE関数の使い方｜正規表現で文字列を置換する実務例10選</title>
		<link>https://mashukabu.com/excel-function-howto-use-regexreplace/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-regexreplace/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 09 Apr 2026 04:10:55 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[Microsoft 365]]></category>
		<category><![CDATA[REGEXREPLACE関数]]></category>
		<category><![CDATA[キャプチャグループ]]></category>
		<category><![CDATA[データクレンジング]]></category>
		<category><![CDATA[文字列置換]]></category>
		<category><![CDATA[正規表現]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=5892</guid>

					<description><![CDATA[ExcelのREGEXREPLACE関数の使い方を構文から実務応用まで解説。電話番号のハイフン除去、メール伏せ字、HTMLタグ削除、キャプチャグループ$1$2による並び替え、SUBSTITUTEとの使い分け、エラー対処までコピペで動く数式付きで紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「電話番号のハイフンを一気に消したい」「メールアドレスのドメインだけ伏せ字にしたい」。データ整理をしていると、こういう一括置換の場面はよくありますよね。</p>



<p class="wp-block-paragraph">これまでのExcelでは、SUBSTITUTE関数を何重にもネストしたり、マクロを書いたりするしかありませんでした。数式が長くなって、後から見直すのも一苦労です。</p>



<p class="wp-block-paragraph">そんな悩みを一発で解決してくれるのがREGEXREPLACE関数です。正規表現を使って、セルの文字列をパターン指定でまとめて置換できます。</p>



<p class="wp-block-paragraph">この記事では、ExcelのREGEXREPLACE関数の使い方を、構文から実務応用までまるごと解説します。コピペで動く数式とビフォーアフター表、キャプチャグループ（$1 $2）による並び替え、SUBSTITUTE関数との使い分け、思い通りに動かないときのデバッグ手順まで網羅しましたので、ぜひ参考にしてください。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-1" checked><label class="toc-title" for="toc-checkbox-1">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ExcelのREGEXREPLACE関数とは？正規表現で文字列を一括置換できる関数</a><ol><li><a href="#toc2" tabindex="0">どんな業務シーンで使うのか</a></li><li><a href="#toc3" tabindex="0">利用条件（Microsoft 365が必須）</a></li></ol></li><li><a href="#toc4" tabindex="0">REGEXREPLACE関数の構文と5つの引数</a><ol><li><a href="#toc5" tabindex="0">基本構文</a></li><li><a href="#toc6" tabindex="0">第1引数：テキスト</a></li><li><a href="#toc7" tabindex="0">第2引数：正規表現パターン</a></li><li><a href="#toc8" tabindex="0">第3引数：置換文字列</a></li><li><a href="#toc9" tabindex="0">第4引数：出現位置（occurrence）</a></li><li><a href="#toc10" tabindex="0">第5引数：大文字小文字の区別（case_sensitivity）</a></li></ol></li><li><a href="#toc11" tabindex="0">正規表現の基本パターン早見表（Excel REGEXREPLACE 対応）</a><ol><li><a href="#toc12" tabindex="0">文字種を表す記号</a></li><li><a href="#toc13" tabindex="0">量を表す記号（量指定子）</a></li><li><a href="#toc14" tabindex="0">位置・選択を表す記号</a></li></ol></li><li><a href="#toc15" tabindex="0">【基本編】REGEXREPLACE関数の使い方をコピペ数式で学ぶ</a><ol><li><a href="#toc16" tabindex="0">電話番号からハイフンを除去する</a></li><li><a href="#toc17" tabindex="0">数字以外を一括削除する</a></li><li><a href="#toc18" tabindex="0">余分な空白をまとめて削除する</a></li><li><a href="#toc19" tabindex="0">連続する空白を半角スペース1つにまとめる</a></li></ol></li><li><a href="#toc20" tabindex="0">【実務編】REGEXREPLACE関数の応用例7選</a><ol><li><a href="#toc21" tabindex="0">メールアドレスのドメイン部分をマスキングする</a></li><li><a href="#toc22" tabindex="0">HTMLタグを削除して本文だけ取り出す</a></li><li><a href="#toc23" tabindex="0">全角・半角・長音記号のハイフンをまとめて除去する</a></li><li><a href="#toc24" tabindex="0">日付の区切り文字を統一する</a></li><li><a href="#toc25" tabindex="0">全角スペースと半角スペースを統一する</a></li><li><a href="#toc26" tabindex="0">文字列の先頭・末尾の不要文字を削除する</a></li><li><a href="#toc27" tabindex="0">動的配列で列全体を一括処理する</a></li><li><a href="#toc28" tabindex="0">郵便番号を「123-4567」の形に統一する</a></li><li><a href="#toc29" tabindex="0">住所から都道府県名を取り除く</a></li><li><a href="#toc30" tabindex="0">社員番号の表記揺れを「EMP-001」に統一する</a></li></ol></li><li><a href="#toc31" tabindex="0">キャプチャグループ（ ）で並び順を入れ替える</a><ol><li><a href="#toc32" tabindex="0">「姓 名」を「名 姓」に入れ替える</a></li><li><a href="#toc33" tabindex="0">日付フォーマット yyyy/mm/dd を dd-mm-yyyy に変換</a></li><li><a href="#toc34" tabindex="0">電話番号にハイフンを付け直す</a></li></ol></li><li><a href="#toc35" tabindex="0">LAMBDA・LET関数でよく使うパターンを使い回す</a><ol><li><a href="#toc36" tabindex="0">LET関数で入力をまとめて読みやすくする</a></li><li><a href="#toc37" tabindex="0">複数パターンを段階的に連続置換する</a></li><li><a href="#toc38" tabindex="0">LAMBDA関数で「自分専用の関数」を作る</a></li></ol></li><li><a href="#toc39" tabindex="0">REGEXREPLACEとSUBSTITUTE関数の使い分け（4つの軸で比較）</a><ol><li><a href="#toc40" tabindex="0">速度・パフォーマンス</a></li><li><a href="#toc41" tabindex="0">可読性・メンテナンス性</a></li><li><a href="#toc42" tabindex="0">バージョン互換性</a></li><li><a href="#toc43" tabindex="0">使い分け早見表</a></li></ol></li><li><a href="#toc44" tabindex="0">数式が思い通りに動かないときのデバッグ手順</a><ol><li><a href="#toc45" tabindex="0">REGEXTEST関数で段階的にパターンを検証する</a></li><li><a href="#toc46" tabindex="0">REGEXEXTRACT関数で抽出結果を確認する</a></li><li><a href="#toc47" tabindex="0">貪欲マッチを最短マッチに変える</a></li></ol></li><li><a href="#toc48" tabindex="0">REGEXREPLACE関数のよくあるエラーと対処法</a><ol><li><a href="#toc49" tabindex="0">#VALUE! エラー：無効な正規表現・非文字列</a></li><li><a href="#toc50" tabindex="0">#NAME? エラー：非対応バージョン</a></li><li><a href="#toc51" tabindex="0">置換結果が意図と違う：貪欲マッチ・エスケープ</a></li></ol></li><li><a href="#toc52" tabindex="0">正規表現3関数（REGEXTEST / REGEXEXTRACT / REGEXREPLACE）の使い分け</a></li><li><a href="#toc53" tabindex="0">よくある質問（FAQ）</a></li><li><a href="#toc54" tabindex="0">まとめ：REGEXREPLACE関数で数式デバッグから解放されよう</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ExcelのREGEXREPLACE関数とは？正規表現で文字列を一括置換できる関数</span></h2>



<p class="wp-block-paragraph">REGEXREPLACE関数は、<strong>セルの文字列のうち正規表現パターンに一致した部分を、別の文字列に置換するExcelの関数</strong>です。読み方は「レジェックスリプレイス」です。</p>



<p class="wp-block-paragraph">2024年にMicrosoft 365へ追加された比較的新しい関数で、REGEXTEST・REGEXEXTRACTと合わせて「正規表現3関数」と呼ばれています。3関数とも同じPCRE2（Perl互換の正規表現）を採用しているので、覚えた書き方をそのまま使い回せますよ。</p>



<p class="wp-block-paragraph">固定の文字列を1種類だけ置換するならSUBSTITUTE関数で十分ですが、「数字をまとめて消したい」「特定パターンの部分を伏せ字にしたい」「複数の記号を1回の数式で削除したい」といったケースで、REGEXREPLACEが真価を発揮します。</p>



<h3 class="wp-block-heading"><span id="toc2">どんな業務シーンで使うのか</span></h3>



<p class="wp-block-paragraph">REGEXREPLACE関数は次のような業務シーンで活躍します。</p>



<ul class="wp-block-list"><li>電話番号・郵便番号からハイフンを一括で取り除きたいとき</li><li>メールアドレスや個人情報の一部を伏せ字にマスキングしたいとき</li><li>余分な空白・記号・改行をまとめて除去してデータクレンジングしたいとき</li><li>HTMLタグを取り除いて本文だけ取り出したいとき</li><li>日付の区切り文字を統一したい、姓と名を入れ替えたいとき</li></ul>



<p class="wp-block-paragraph">従来のSUBSTITUTE多重ネストと比べると、数式が見違えるほどスッキリします。後から見直す自分への思いやりにもなりますよ。</p>



<h3 class="wp-block-heading"><span id="toc3">利用条件（Microsoft 365が必須）</span></h3>



<p class="wp-block-paragraph">ExcelのREGEXREPLACE関数を使うには、Microsoft 365のサブスクリプションが必要です。Excel 2019やExcel 2021、Excel 2024などの永続ライセンス版では使えません。</p>



<p class="wp-block-paragraph">対応環境は次のとおりです。</p>



<ul class="wp-block-list"><li>Excel for Microsoft 365（Windows / Mac）</li><li>Excel for the web</li></ul>



<p class="wp-block-paragraph">お使いのバージョンが対応していないと <code>#NAME?</code> エラーになります。動かないときはまずバージョンを確認してみてくださいね。</p>



<h2 class="wp-block-heading"><span id="toc4">REGEXREPLACE関数の構文と5つの引数</span></h2>



<h3 class="wp-block-heading"><span id="toc5">基本構文</span></h3>



<pre class="wp-block-code"><code>=REGEXREPLACE(テキスト, 正規表現パターン, 置換文字列, [出現位置], [大文字小文字の区別])</code></pre>



<p class="wp-block-paragraph">必須の引数は最初の3つで、後ろの2つは省略できます。それぞれ詳しく見ていきましょう。</p>



<h3 class="wp-block-heading"><span id="toc6">第1引数：テキスト</span></h3>



<p class="wp-block-paragraph">置換対象となる文字列、またはセル参照を指定します。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(&quot;03-1234-5678&quot;, &quot;-&quot;, &quot;&quot;)
=REGEXREPLACE(A2, &quot;-&quot;, &quot;&quot;)</code></pre>



<p class="wp-block-paragraph">直接文字列を入れる場合はダブルクォーテーションで囲みます。実務ではセル参照を使うことがほとんどです。</p>



<p class="wp-block-paragraph">セルが数値型のとき（例: 電話番号を数値で入力した列）は <code>#VALUE!</code> エラーになります。<code>TEXT(A2, "0")</code> のように文字列化してから渡しましょう。</p>



<h3 class="wp-block-heading"><span id="toc7">第2引数：正規表現パターン</span></h3>



<p class="wp-block-paragraph">置換したい部分を表す正規表現を、ダブルクォーテーションで囲んで指定します。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(A2, &quot;d&quot;, &quot;*&quot;)</code></pre>



<p class="wp-block-paragraph">上の例は「A2の中の数字を1文字ずつアスタリスクに置き換える」という意味です。<code>d</code> は「数字1文字」を表す特殊記号ですね。</p>



<h3 class="wp-block-heading"><span id="toc8">第3引数：置換文字列</span></h3>



<p class="wp-block-paragraph">マッチした部分を何に置き換えるかを指定します。空文字列 <code>""</code> を指定すれば「削除」と同じ意味になります。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(A2, &quot;s&quot;, &quot;&quot;)</code></pre>



<p class="wp-block-paragraph">この例ではA2のすべての空白文字（半角・全角・タブ・改行）を削除します。<code>s</code> は「空白文字」を表すパターンです。</p>



<h3 class="wp-block-heading"><span id="toc9">第4引数：出現位置（occurrence）</span></h3>



<p class="wp-block-paragraph">何番目のマッチから置換するかを数値で指定します。省略すると0になり、<strong>すべてのマッチ</strong>を置換します。</p>



<ul class="wp-block-list"><li><strong>0</strong>（省略時）：すべてのマッチを置換</li><li><strong>1</strong>：1番目のマッチだけを置換</li><li><strong>2</strong>：2番目のマッチだけを置換</li></ul>



<pre class="wp-block-code"><code>=REGEXREPLACE(&quot;a-b-c-d&quot;, &quot;-&quot;, &quot;/&quot;, 0)  '結果: a/b/c/d
=REGEXREPLACE(&quot;a-b-c-d&quot;, &quot;-&quot;, &quot;/&quot;, 2)  '結果: a-b/c-d</code></pre>



<p class="wp-block-paragraph">「最初の1箇所だけ」「3番目だけ」のようにピンポイントで置換できる、意外と便利な引数です。指定した番号に該当するマッチがない場合は、元のテキストがそのまま返ります。</p>



<h3 class="wp-block-heading"><span id="toc10">第5引数：大文字小文字の区別（case_sensitivity）</span></h3>



<p class="wp-block-paragraph">英字を含むパターンで大文字と小文字を区別するかを指定します。省略すると0（区別する）です。</p>



<ul class="wp-block-list"><li><strong>0</strong>（省略時）：大文字と小文字を<strong>区別する</strong></li><li><strong>1</strong>：大文字と小文字を<strong>区別しない</strong></li></ul>



<pre class="wp-block-code"><code>=REGEXREPLACE(&quot;ABC abc&quot;, &quot;[a-z]&quot;, &quot;*&quot;)      '結果: ABC ***
=REGEXREPLACE(&quot;ABC abc&quot;, &quot;[a-z]&quot;, &quot;*&quot;, , 1) '結果: *** ***</code></pre>



<p class="wp-block-paragraph">第4引数を省略して第5引数だけ指定したいときは、コンマだけ書いて飛ばします（<code>, ,</code> のように）。</p>



<h2 class="wp-block-heading"><span id="toc11">正規表現の基本パターン早見表（Excel REGEXREPLACE 対応）</span></h2>



<p class="wp-block-paragraph">REGEXREPLACE関数で使える正規表現はPCRE2（Perl互換の正規表現）です。REGEXTEST・REGEXEXTRACTとも共通なので、一度覚えれば3関数すべてで使えますよ。</p>



<h3 class="wp-block-heading"><span id="toc12">文字種を表す記号</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>記号</th><th>意味</th><th>例</th></tr></thead><tbody><tr><td><code>d</code></td><td>数字1文字（0〜9）</td><td><code>d+</code> で「123」「2026」</td></tr><tr><td><code>D</code></td><td>数字以外の1文字</td><td><code>D+</code> で「ABC」「あ」</td></tr><tr><td><code>w</code></td><td>英数字またはアンダースコア</td><td><code>w+</code> で単語</td></tr><tr><td><code>W</code></td><td>単語文字以外</td><td>記号・空白など</td></tr><tr><td><code>s</code></td><td>空白文字（半角スペース・タブ・改行）</td><td>連続スペースの整形</td></tr><tr><td><code>S</code></td><td>空白以外の文字</td><td>単語の塊</td></tr><tr><td><code>.</code></td><td>任意の1文字（改行を除く）</td><td>ワイルドカード代わり</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc13">量を表す記号（量指定子）</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>記号</th><th>意味</th></tr></thead><tbody><tr><td><code>*</code></td><td>直前の0回以上の繰り返し</td></tr><tr><td><code>+</code></td><td>直前の1回以上の繰り返し</td></tr><tr><td><code>?</code></td><td>直前の0または1回</td></tr><tr><td><code>{n}</code></td><td>直前のn回の繰り返し</td></tr><tr><td><code>{n,m}</code></td><td>直前のn〜m回の繰り返し</td></tr><tr><td><code>*?</code> <code>+?</code></td><td>最短一致（後述の貪欲マッチ対策）</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc14">位置・選択を表す記号</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>記号</th><th>意味</th></tr></thead><tbody><tr><td><code>^</code></td><td>文字列の先頭</td></tr><tr><td><code>$</code></td><td>文字列の末尾</td></tr><tr><td><code></td><td></code></td><td>または（OR）</td></tr><tr><td><code>[abc]</code></td><td>a・b・cのいずれか1文字</td></tr><tr><td><code>[a-z]</code></td><td>a〜zのいずれか1文字</td></tr><tr><td><code>[^0-9]</code></td><td>0〜9以外の1文字</td></tr><tr><td><code>(...)</code></td><td>キャプチャグループ（後述）</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>「.」「(」「)」など正規表現の特殊記号そのものを置換対象にしたいときは <code></code> でエスケープします。「.」を消すなら <code>"."</code>、「(」を消すなら <code>"("</code> のように書きます。</p></blockquote>



<p class="wp-block-paragraph">置換文字列の側では、後述する <code>$1</code> <code>$2</code> といった「キャプチャグループ参照」が使えます。これがREGEXREPLACE関数の真骨頂ですよ。</p>



<h2 class="wp-block-heading"><span id="toc15">【基本編】REGEXREPLACE関数の使い方をコピペ数式で学ぶ</span></h2>



<p class="wp-block-paragraph">それでは実際に数式を組み立ててみましょう。まずは使用頻度の高い4パターンを紹介します。</p>



<h3 class="wp-block-heading"><span id="toc16">電話番号からハイフンを除去する</span></h3>



<p class="wp-block-paragraph">A列に入った電話番号からハイフンをまとめて削除します。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(A2, &quot;-&quot;, &quot;&quot;)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>A列（入力値）</th><th>B列（=REGEXREPLACEの結果）</th></tr></thead><tbody><tr><td>03-1234-5678</td><td>0312345678</td></tr><tr><td>090-1234-5678</td><td>09012345678</td></tr><tr><td>06-1111-2222</td><td>0611112222</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">SUBSTITUTE関数でも同じことはできますが、REGEXREPLACEなら次に紹介する「全角ハイフンや長音記号もまとめて消す」拡張がそのまま書けるのが強みです。</p>



<h3 class="wp-block-heading"><span id="toc17">数字以外を一括削除する</span></h3>



<p class="wp-block-paragraph">電話番号欄に括弧や全角スペースなどが混じっていても、一発で数字だけにできます。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(A2, &quot;D&quot;, &quot;&quot;)</code></pre>



<p class="wp-block-paragraph"><code>D</code> は「数字以外の1文字」を表す記号です。「03-1234-5678（内線1）」のような入力でも、ハイフン・括弧・空白・「内線」のような文字までまとめて消えて「031234567815」のように数字だけが残ります。逆に「数字だけ消す」なら <code>"d"</code> を指定します。</p>



<h3 class="wp-block-heading"><span id="toc18">余分な空白をまとめて削除する</span></h3>



<p class="wp-block-paragraph">セル内に混じった全角・半角スペース、タブ、改行をまとめて除去します。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(A2, &quot;s+&quot;, &quot;&quot;)</code></pre>



<p class="wp-block-paragraph"><code>s+</code> は「1文字以上の連続した空白」を表します。Webサイトや別ファイルからコピペしたデータに見えない空白が紛れているときの掃除にぴったりです。改行コードなどの制御文字だけを取り除きたい場合は、<a href="https://mashukabu.com/excel-function-howto-use-clean/">ExcelのCLEAN関数の使い方</a>もあわせて確認してみてください。</p>



<h3 class="wp-block-heading"><span id="toc19">連続する空白を半角スペース1つにまとめる</span></h3>



<p class="wp-block-paragraph">空白を完全に消すのではなく、連続分だけ1つに整えたい場合はこちらです。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(A2, &quot;s+&quot;, &quot; &quot;)</code></pre>



<p class="wp-block-paragraph">「Hello   World」→「Hello World」のように整形されます。レポートや議事録のコピペ整形で重宝しますよ。空白を完全に消したい場合とは置換文字列が違うだけなので、用途で使い分けてください。</p>



<h2 class="wp-block-heading"><span id="toc20">【実務編】REGEXREPLACE関数の応用例7選</span></h2>



<p class="wp-block-paragraph">基本パターンに慣れたら、実務でよく出てくるシーンを片付けていきましょう。コピペでそのまま使える数式を集めました。</p>



<h3 class="wp-block-heading"><span id="toc21">メールアドレスのドメイン部分をマスキングする</span></h3>



<p class="wp-block-paragraph">個人情報保護のために、メールアドレスの <code>@</code> より後ろを伏せ字にする例です。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(A2, &quot;@.+$&quot;, &quot;@***&quot;)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>A列（入力値）</th><th>B列（=REGEXREPLACEの結果）</th></tr></thead><tbody><tr><td>taro@example.com</td><td>taro@***</td></tr><tr><td>hanako@biz-tactics.co.jp</td><td>hanako@***</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><code>@.+$</code> は「アットマーク＋1文字以上の末尾まで」を意味します。資料公開やサンプルデータ作成のときに重宝するパターンです。</p>



<h3 class="wp-block-heading"><span id="toc22">HTMLタグを削除して本文だけ取り出す</span></h3>



<p class="wp-block-paragraph">Webから貼り付けた文字列からHTMLタグをまとめて除去する例です。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(A2, &quot;&lt;[^&gt;]+&gt;&quot;, &quot;&quot;)</code></pre>



<p class="wp-block-paragraph"><code><[^>]+></code> は「<code><</code> で始まり <code>></code> 以外の文字が1つ以上続き <code>></code> で閉じる部分」を表します。「<code><p>こんにちは<br>世界</p></code>」→「こんにちは世界」のように、タグだけがきれいに消えます。</p>



<h3 class="wp-block-heading"><span id="toc23">全角・半角・長音記号のハイフンをまとめて除去する</span></h3>



<p class="wp-block-paragraph">電話番号の表記揺れ対策です。半角ハイフン・全角ハイフン・マイナス記号・長音記号をまとめて削除します。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(A2, &quot;[-－−ー]&quot;, &quot;&quot;)</code></pre>



<p class="wp-block-paragraph">角括弧 <code>[...]</code> の中に「消したい文字」を並べるだけです。SUBSTITUTEでやろうとすると4重ネストが必要なところを、1つの数式で書けてしまいます。同じ要領でカンマ・ピリオド・スラッシュなど複数の記号もまとめて処理できますよ。</p>



<h3 class="wp-block-heading"><span id="toc24">日付の区切り文字を統一する</span></h3>



<p class="wp-block-paragraph"><code>/</code> <code>.</code> <code>-</code> など複数の区切りが混在した日付を、ハイフン区切りに統一する例です。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(A2, &quot;[/.-]&quot;, &quot;-&quot;)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>A列（入力値）</th><th>B列（=REGEXREPLACEの結果）</th></tr></thead><tbody><tr><td>2026/04/09</td><td>2026-04-09</td></tr><tr><td>2026.04.09</td><td>2026-04-09</td></tr><tr><td>2026-04-09</td><td>2026-04-09</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">角括弧内のハイフンは <code>-</code> とエスケープしておくと安全です。これで取引先ごとに表記がバラバラな日付も、後続の集計関数で扱える形に整います。</p>



<h3 class="wp-block-heading"><span id="toc25">全角スペースと半角スペースを統一する</span></h3>



<p class="wp-block-paragraph">日本語の名簿で「山田　太郎」と「山田 太郎」が混在しているときの整形です。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(A2, &quot;[ 　]+&quot;, &quot; &quot;)</code></pre>



<p class="wp-block-paragraph">角括弧の中に半角スペースと全角スペースを並べてあります。連続したスペースも半角1つに整います。並び替えや重複チェックの前処理に便利です。</p>



<h3 class="wp-block-heading"><span id="toc26">文字列の先頭・末尾の不要文字を削除する</span></h3>



<p class="wp-block-paragraph">データの先頭や末尾に紛れ込んだ記号を削るパターンです。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(A2, &quot;^[s]+|[s]+$&quot;, &quot;&quot;)</code></pre>



<p class="wp-block-paragraph"><code>^[s]+</code> で先頭の空白、<code>[s]+$</code> で末尾の空白を指定し、<code>|</code>（OR）で両方を対象にしています。<a href="https://mashukabu.com/excel-function-howto-use-trim/">ExcelのTRIM関数の使い方</a>でも前後の半角空白は削れますが、TRIM関数は全角空白には対応していません。REGEXREPLACE関数なら全角空白・タブ・改行まで一気に処理できますよ。</p>



<h3 class="wp-block-heading"><span id="toc27">動的配列で列全体を一括処理する</span></h3>



<p class="wp-block-paragraph">REGEXREPLACE関数は動的配列に対応しているので、範囲を渡すだけで列全体を処理できます。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(A2:A100, &quot;-&quot;, &quot;&quot;)</code></pre>



<p class="wp-block-paragraph">B2セルに上の数式を入れるだけで、A2〜A100のすべての電話番号からハイフンが消えてB列にスピルします。1行ずつ数式をコピーする手間が省けます。</p>



<h3 class="wp-block-heading"><span id="toc28">郵便番号を「123-4567」の形に統一する</span></h3>



<p class="wp-block-paragraph">7桁の数字だけで入力された郵便番号に、ハイフンを付け直す例です。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(A2, &quot;(d{3})(d{4})&quot;, &quot;$1-$2&quot;)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>A列（入力値）</th><th>B列（=REGEXREPLACEの結果）</th></tr></thead><tbody><tr><td>1234567</td><td>123-4567</td></tr><tr><td>1000001</td><td>100-0001</td></tr><tr><td>5300001</td><td>530-0001</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">先頭3桁を <code>(d{3})</code>、続く4桁を <code>(d{4})</code> でキャプチャして、置換側で <code>$1-$2</code> とハイフンを挟んで出力しています。すでにハイフン付きの「123-4567」が混ざっている名簿なら、先にハイフンを消してから付け直すと安全です。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(REGEXREPLACE(A2, &quot;D&quot;, &quot;&quot;), &quot;(d{3})(d{4})&quot;, &quot;$1-$2&quot;)</code></pre>



<p class="wp-block-paragraph">内側で数字以外を削除してから、外側で「3桁-4桁」に整える二段構えですね。郵便番号を数値型で入力していると先頭の0が落ちてしまうので、A列は文字列として扱ってください。</p>



<h3 class="wp-block-heading"><span id="toc29">住所から都道府県名を取り除く</span></h3>



<p class="wp-block-paragraph">「東京都千代田区」のような住所文字列から、先頭の都道府県名だけを削除して市区町村以降を取り出す例です。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(A2, &quot;^(東京都|北海道|京都府|大阪府|.{2,3}県)&quot;, &quot;&quot;)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>A列（入力値）</th><th>B列（=REGEXREPLACEの結果）</th></tr></thead><tbody><tr><td>東京都千代田区</td><td>千代田区</td></tr><tr><td>神奈川県横浜市西区</td><td>横浜市西区</td></tr><tr><td>鹿児島県鹿児島市</td><td>鹿児島市</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ここでひとつ落とし穴があります。「<code>^(..[都道府県])</code>（先頭の2文字＋都道府県）」のように手を抜くと、「神奈川県」「和歌山県」「鹿児島県」のような4文字の県名でうまく削れません。そこで、文字数が固定の「東京都・北海道・京都府・大阪府」だけを先に列挙し、残りの県を <code>.{2,3}県</code>（2〜3文字＋県）でまとめて拾っています。<code>|</code>（OR）で並べているだけなので、見た目ほど難しくありませんよ。</p>



<h3 class="wp-block-heading"><span id="toc30">社員番号の表記揺れを「EMP-001」に統一する</span></h3>



<p class="wp-block-paragraph">「EMP-001」「EMP001」「001」のように書式がバラバラな社員コードを、ハイフン付きの形にそろえる例です。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(A2, &quot;^(?:EMP-?)?(d+)$&quot;, &quot;EMP-$1&quot;)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>A列（入力値）</th><th>B列（=REGEXREPLACEの結果）</th></tr></thead><tbody><tr><td>EMP-001</td><td>EMP-001</td></tr><tr><td>EMP001</td><td>EMP-001</td></tr><tr><td>001</td><td>EMP-001</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><code>(?:EMP-?)?</code> は「『EMP』または『EMP-』があってもなくてもよい」という意味で、<code>(?:...)</code> は結果に取り込まない補助的なグループです。続く <code>(d+)</code> で数字部分だけをキャプチャし、置換側の <code>EMP-$1</code> で接頭辞とハイフンを付け直しています。「emp001」のように小文字も拾いたいときは、第5引数に1を指定して大文字小文字を区別しないようにすればOKです。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(A2, &quot;^(?:EMP-?)?(d+)$&quot;, &quot;EMP-$1&quot;, , 1)</code></pre>



<p class="wp-block-paragraph">部署コードや商品コードなど、社内の番号体系を整えるときにそのまま応用できますよ。</p>



<h2 class="wp-block-heading"><span id="toc31">キャプチャグループ（ ）で並び順を入れ替える</span></h2>



<p class="wp-block-paragraph">ここからはREGEXREPLACE関数の真骨頂、キャプチャグループを使った置換です。丸括弧 <code>()</code> で囲んだ部分は「キャプチャグループ」となり、置換文字列の中で <code>$1</code> <code>$2</code> <code>$3</code> … として参照できます。</p>



<h3 class="wp-block-heading"><span id="toc32">「姓 名」を「名 姓」に入れ替える</span></h3>



<p class="wp-block-paragraph">名簿の並び順を入れ替える例です。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(A2, &quot;^(S+)s+(S+)$&quot;, &quot;$2 $1&quot;)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>A列（入力値）</th><th>B列（=REGEXREPLACEの結果）</th></tr></thead><tbody><tr><td>山田 太郎</td><td>太郎 山田</td></tr><tr><td>Suzuki Hanako</td><td>Hanako Suzuki</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><code>(S+)</code> は「空白以外の1文字以上」をキャプチャするパターンで、置換側の <code>$2 $1</code> で順番を入れ替えています。海外向け資料を作るときの名前並び替えがワンクリックです。</p>



<h3 class="wp-block-heading"><span id="toc33">日付フォーマット yyyy/mm/dd を dd-mm-yyyy に変換</span></h3>



<p class="wp-block-paragraph"><code>yyyy/mm/dd</code> 形式の日付文字列を、<code>dd-mm-yyyy</code> 形式に並び替える例です。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(A2, &quot;(d{4})/(d{2})/(d{2})&quot;, &quot;$3-$2-$1&quot;)</code></pre>



<p class="wp-block-paragraph">「2026/04/09」→「09-04-2026」のように、年月日のパーツを順番入れ替えで出力できます。海外フォーマット対応のレポートを作るときに、元データを壊さず表示だけ整えられますよ。</p>



<h3 class="wp-block-heading"><span id="toc34">電話番号にハイフンを付け直す</span></h3>



<p class="wp-block-paragraph">ハイフンなしの番号にハイフンを再付与するパターンです。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(A2, &quot;^(d{2,4})(d{2,4})(d{4})$&quot;, &quot;$1-$2-$3&quot;)</code></pre>



<p class="wp-block-paragraph">「0312345678」→「03-1234-5678」のような出力になります。元データを壊さずに、見た目だけ揃えたいときに便利ですよ。</p>



<h2 class="wp-block-heading"><span id="toc35">LAMBDA・LET関数でよく使うパターンを使い回す</span></h2>



<p class="wp-block-paragraph">同じ正規表現を何度も書いていると、修正のたびにあちこち直すことになって大変です。LET関数やLAMBDA関数と組み合わせれば、よく使うパターンを一元管理できますよ。</p>



<h3 class="wp-block-heading"><span id="toc36">LET関数で入力をまとめて読みやすくする</span></h3>



<p class="wp-block-paragraph">LET関数を使うと、処理対象を変数に置いて数式を見通しよくできます。</p>



<pre class="wp-block-code"><code>=LET(
  input, A2:A100,
  REGEXREPLACE(input, &quot;[-－−ー]&quot;, &quot;&quot;)
)</code></pre>



<p class="wp-block-paragraph"><code>input</code> という名前でA2:A100の範囲を束ねてから、REGEXREPLACEに渡しています。範囲を何度も書かずに済むので、数式が長くなっても何をしているか一目で分かります。</p>



<h3 class="wp-block-heading"><span id="toc37">複数パターンを段階的に連続置換する</span></h3>



<p class="wp-block-paragraph">「空白を整えて → ハイフンを統一して → 全角カッコを消す」のように、複数の置換を順番に重ねたいときも、LET関数で段階を分けると読みやすくなります。</p>



<pre class="wp-block-code"><code>=LET(
  step1, REGEXREPLACE(A2, &quot;s+&quot;, &quot; &quot;),
  step2, REGEXREPLACE(step1, &quot;[-－−ー]&quot;, &quot;-&quot;),
  REGEXREPLACE(step2, &quot;[（）]&quot;, &quot;&quot;)
)</code></pre>



<p class="wp-block-paragraph"><code>step1</code> の結果を <code>step2</code> で受け取り、最後にもう一段かける流れです。REGEXREPLACEを直接3重にネストすると括弧だらけで読めなくなりますが、この書き方なら各ステップの意図がはっきりしますね。</p>



<h3 class="wp-block-heading"><span id="toc38">LAMBDA関数で「自分専用の関数」を作る</span></h3>



<p class="wp-block-paragraph">毎回書くのが面倒なパターンは、LAMBDA関数で名前を付けて自作の関数にしてしまいましょう。手順は次のとおりです。</p>



<ol class="wp-block-list"><li>リボンの「数式」タブ →「名前の定義」をクリック</li><li>「名前」に好きな関数名（例: <code>ハイフン除去</code>）を入力</li><li>「参照範囲」に <code>=LAMBDA(text, REGEXREPLACE(text, "[-－−ー]", ""))</code> と入力</li><li>これで <code>=ハイフン除去(A2)</code> のように、どのセルからでも呼び出せます</li></ol>



<p class="wp-block-paragraph">全角・半角・長音記号のハイフンをまとめて消す処理を、<code>ハイフン除去</code> という名前で何度でも使い回せるようになります。チームで共有するブックに登録しておけば、正規表現に不慣れな同僚も関数名を呼び出すだけで使えて便利ですよ。なお、LET関数・LAMBDA関数ともにREGEXREPLACE関数と同じくMicrosoft 365で利用できます。</p>



<h2 class="wp-block-heading"><span id="toc39">REGEXREPLACEとSUBSTITUTE関数の使い分け（4つの軸で比較）</span></h2>



<p class="wp-block-paragraph">REGEXREPLACEとよく比較されるのがSUBSTITUTE関数です。どちらも「文字列置換」が目的ですが、得意分野が異なります。4つの観点で整理しておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc40">速度・パフォーマンス</span></h3>



<p class="wp-block-paragraph">固定の1文字を置換するだけなら、SUBSTITUTEの方がわずかに高速です。10万行を超える大量データで処理速度が問題になるなら、SUBSTITUTEを選ぶ価値があります。</p>



<h3 class="wp-block-heading"><span id="toc41">可読性・メンテナンス性</span></h3>



<p class="wp-block-paragraph">複数の文字を消したい場合、SUBSTITUTEは多重ネストが必要で数式が読みにくくなります。一方REGEXREPLACEは <code>[abc]</code> の文字クラスで1行にまとめられるため、後から修正するのがラクです。</p>



<h3 class="wp-block-heading"><span id="toc42">バージョン互換性</span></h3>



<p class="wp-block-paragraph">SUBSTITUTEはExcel 全バージョンで使えます。REGEXREPLACEはMicrosoft 365（とExcel for the web）限定です。共有ファイルで相手のバージョンが不明なら、SUBSTITUTEの方が安全です。</p>



<h3 class="wp-block-heading"><span id="toc43">使い分け早見表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>置換対象</th><th>向いているケース</th><th>使えるバージョン</th></tr></thead><tbody><tr><td>SUBSTITUTE</td><td>固定文字列</td><td>「-」を「」に、など決まった文字の単純置換</td><td>全バージョン</td></tr><tr><td>REGEXREPLACE</td><td>正規表現パターン</td><td>パターン置換、複数文字まとめて削除、並び替え</td><td>M365 / Web</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">固定文字列の置換ならSUBSTITUTE、パターン置換と並び替えならREGEXREPLACE、と覚えておけば迷わずに済みますよ。SUBSTITUTEの基本も復習したい方は<a href="https://mashukabu.com/excel-function-howto-use-substitute/">ExcelのSUBSTITUTE関数の使い方</a>もあわせてご覧ください。</p>



<h2 class="wp-block-heading"><span id="toc44">数式が思い通りに動かないときのデバッグ手順</span></h2>



<p class="wp-block-paragraph">正規表現は強力ですが、最初は思った通りに動かないことも多いです。そんなときは姉妹関数を使った「三段検証」で原因を切り分けましょう。</p>



<h3 class="wp-block-heading"><span id="toc45">REGEXTEST関数で段階的にパターンを検証する</span></h3>



<p class="wp-block-paragraph">まずは「そもそもパターンが当たっているか」を確認します。</p>



<pre class="wp-block-code"><code>=REGEXTEST(A2, &quot;あなたのパターン&quot;)</code></pre>



<p class="wp-block-paragraph">TRUEが返るならパターンはマッチしています。FALSEが返るなら、パターンの記述ミス（エスケープ忘れ、文字クラスの書き間違いなど）を疑いましょう。詳しくは<a href="https://mashukabu.com/excel-function-howto-use-regextest/">ExcelのREGEXTEST関数の使い方</a>で解説しています。</p>



<h3 class="wp-block-heading"><span id="toc46">REGEXEXTRACT関数で抽出結果を確認する</span></h3>



<p class="wp-block-paragraph">パターンが当たっていることがわかったら、次は「どこを抽出しているか」を目で見て確認します。</p>



<pre class="wp-block-code"><code>=REGEXEXTRACT(A2, &quot;あなたのパターン&quot;)</code></pre>



<p class="wp-block-paragraph">抽出された部分が想定通りなら、REGEXREPLACE に切り替えれば成功します。想定より広い範囲が抽出されているなら「貪欲マッチ」が原因かもしれません（次項参照）。<a href="https://mashukabu.com/excel-function-howto-use-regexextract/">ExcelのREGEXEXTRACT関数の使い方</a>も参考にしてください。</p>



<h3 class="wp-block-heading"><span id="toc47">貪欲マッチを最短マッチに変える</span></h3>



<p class="wp-block-paragraph"><code>*</code> <code>+</code> <code>.+</code> などの量指定子はデフォルトで「最長一致（貪欲マッチ）」になります。たとえば <code><.+></code> は <code><p>本文</p></code> 全体にマッチしてしまうので、タグ単位で消したいなら最短マッチに変えましょう。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(A2, &quot;&lt;.+?&gt;&quot;, &quot;&quot;)    'OK：タグ単位で削除
=REGEXREPLACE(A2, &quot;&lt;[^&gt;]+&gt;&quot;, &quot;&quot;)  'OK：より厳密な書き方</code></pre>



<p class="wp-block-paragraph"><code>?</code> を付けると「できるだけ少なく一致」する最短マッチに変わります。<code>[^>]+</code> のような文字クラスで範囲を限定する書き方もよく使うテクニックです。</p>



<h2 class="wp-block-heading"><span id="toc48">REGEXREPLACE関数のよくあるエラーと対処法</span></h2>



<p class="wp-block-paragraph">REGEXREPLACE関数で表示されるエラーと対処法をまとめました。</p>



<h3 class="wp-block-heading"><span id="toc49">#VALUE! エラー：無効な正規表現・非文字列</span></h3>



<p class="wp-block-paragraph"><strong>原因</strong>: 第2引数に無効な正規表現を指定した、または第1引数に数値型のセルを直接渡した。</p>



<p class="wp-block-paragraph"><strong>対処法</strong>: パターンを見直し、特にカッコや特殊記号のエスケープ忘れに注意しましょう。数値セルを渡す場合はTEXT関数で文字列化してから渡します。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(TEXT(A2, &quot;0&quot;), &quot;0&quot;, &quot;*&quot;)</code></pre>



<h3 class="wp-block-heading"><span id="toc50">#NAME? エラー：非対応バージョン</span></h3>



<p class="wp-block-paragraph"><strong>原因</strong>: REGEXREPLACE関数に対応していないバージョンのExcelで使っている、または関数名のスペルミス。</p>



<p class="wp-block-paragraph"><strong>対処法</strong>: Microsoft 365のサブスクリプションで最新バージョンにアップデートしてください。Excel 2019・2021・2024（永続版）などでは使えません。関数名のスペルもあわせて確認しましょう。</p>



<h3 class="wp-block-heading"><span id="toc51">置換結果が意図と違う：貪欲マッチ・エスケープ</span></h3>



<p class="wp-block-paragraph"><strong>原因</strong>: 「貪欲マッチ」が想定より広く一致している、または特殊記号のエスケープ忘れ。</p>



<p class="wp-block-paragraph"><strong>対処法</strong>: <code>.+?</code> の最短マッチに変えるか、<code>[^>]+</code> のように文字クラスで範囲を限定します。エスケープが必要な記号は <code>.</code> <code>(</code> <code>)</code> のように <code></code> を前に付けます。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>#VALUE!</td><td>無効な正規表現・数値型セル</td><td>パターン見直し・TEXTで文字列化</td></tr><tr><td>#NAME?</td><td>非対応バージョン</td><td>Microsoft 365に更新</td></tr><tr><td>置換結果がおかしい</td><td>貪欲マッチ・エスケープ忘れ</td><td><code>.+?</code> か <code>[^>]+</code>、<code></code> でエスケープ</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">エラーの原因はほとんどが正規表現の記述ミスです。落ち着いて1行ずつ数式を見直せば大丈夫ですよ。</p>



<h2 class="wp-block-heading"><span id="toc52">正規表現3関数（REGEXTEST / REGEXEXTRACT / REGEXREPLACE）の使い分け</span></h2>



<p class="wp-block-paragraph">REGEXREPLACE関数には2つの姉妹関数があります。3つセットで覚えておくと、正規表現を使ったデータ処理が一気にラクになります。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>戻り値</th><th>用途</th></tr></thead><tbody><tr><td>REGEXTEST</td><td>TRUE / FALSE</td><td>パターンに一致するかを判定する</td></tr><tr><td>REGEXEXTRACT</td><td>一致した文字列</td><td>パターンに一致する部分を抜き出す</td></tr><tr><td>REGEXREPLACE</td><td>置換後の文字列</td><td>パターンに一致する部分を別の文字列に置き換える</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">使い分けのイメージは次のとおりです。</p>



<ul class="wp-block-list"><li>「メールアドレスとして正しいか？」→ REGEXTEST</li><li>「本文からメールアドレスだけ抜き出したい」→ REGEXEXTRACT</li><li>「メールアドレスのドメインを伏せ字にしたい」→ REGEXREPLACE</li></ul>



<p class="wp-block-paragraph">3つとも同じPCRE2の正規表現を使うので、パターンの書き方は共通です。REGEXTESTやREGEXEXTRACTで覚えた知識は、そのままREGEXREPLACEでも活きますよ。</p>



<p class="wp-block-paragraph">姉妹記事として、<a href="https://mashukabu.com/excel-function-howto-use-regextest/">ExcelのREGEXTEST関数の使い方</a>と<a href="https://mashukabu.com/excel-function-howto-use-regexextract/">ExcelのREGEXEXTRACT関数の使い方</a>もぜひ参考にしてください。3関数まとめて身につけると、データクレンジング作業の生産性がぐっと上がります。Googleスプレッドシートで同等の処理を行いたい場合は、<a href="https://mashukabu.com/spreadsheet-regexreplace-function/">スプレッドシートのREGEXREPLACE関数の使い方</a>もあわせてどうぞ。</p>



<h2 class="wp-block-heading"><span id="toc53">よくある質問（FAQ）</span></h2>



<p class="wp-block-paragraph">[faq q="REGEXREPLACE関数はExcel 2021で使えますか？" a="使えません。REGEXREPLACE関数はMicrosoft 365のサブスクリプション版（Windows/Mac/Web）でのみ利用できます。Excel 2021・2019などの買い切り版や旧バージョンでは#NAME?エラーになります。バージョンは「ファイル」→「アカウント」→「製品情報」で確認できます。"]</p>



<p class="wp-block-paragraph">[faq q="SUBSTITUTE関数とREGEXREPLACE関数はどう使い分けますか？" a="置換対象が固定の文字列（例: ハイフン「-」だけを削除）ならSUBSTITUTE関数が適しています。一方、パターンで置換したい場合（例: 連続した数字を*に置換、複数の記号をまとめて削除）はREGEXREPLACE関数が便利です。またSUBSTITUTEは全Excelバージョンで使えますが、REGEXREPLACEはMicrosoft 365専用という制約があります。"]</p>



<p class="wp-block-paragraph">[faq q="正規表現のパターンが合っているか確認する方法はありますか？" a="REGEXTEST関数で確認するのがおすすめです。=REGEXTEST(A2, "パターン")でTRUEが返れば、パターンは正しくマッチしています。FALSEの場合は正規表現の記述ミスを疑ってください。さらにREGEXEXTRACT関数で「どの部分がマッチしているか」を目で見て確認すると、REGEXREPLACE関数の置換結果のズレを特定しやすくなります。"]</p>



<p class="wp-block-paragraph">[faq q="全角・半角の文字を同時に置換できますか？" a="できます。文字クラス（角括弧 [ ]）を使って複数の文字をまとめて指定します。例えば半角ハイフンと全角ハイフンを両方削除したい場合は =REGEXREPLACE(A2, "[-－]", "") のように書きます。同様に、半角スペースと全角スペースを一度に削除する場合は =REGEXREPLACE(A2, "[ 　]+", "") と書けます。"]</p>



<p class="wp-block-paragraph">[faq q="GoogleスプレッドシートのREGEXREPLACE関数と同じ書き方で使えますか？" a="基本的な書き方はほぼ共通ですが、正規表現エンジンが異なる点に注意が必要です。ExcelのREGEXREPLACEはPCRE2（Perl互換）、GoogleスプレッドシートはRE2というGoogle製のエンジンを使っています。数字を表すパターンや文字クラス、キャプチャグループの $1 参照など日常的な書き方は両方で同じように動きますが、RE2は後読みなどの高度な機能に対応していません。またスプレッドシート版は引数がテキスト・パターン・置換の3つのみで、Excelの第4引数（出現位置）・第5引数（大文字小文字の区別）に相当するものはありません。"]</p>



<p class="wp-block-paragraph">[faq q="一つの数式で複数パターンを連続置換できますか？" a="できます。方法は2つあります。1つ目は文字クラス（角括弧）で複数の文字をまとめる方法で、同じ種類の削除ならこれが一番シンプルです。2つ目はREGEXREPLACE関数を入れ子（ネスト）にする方法で、ハイフン除去のあとに空白除去をかけるなど、異なる置換を順番に適用したいときに使います。ネストが深くなって読みにくいときは、LET関数で処理を段階に分けると見通しがよくなります。"]</p>



<h2 class="wp-block-heading"><span id="toc54">まとめ：REGEXREPLACE関数で数式デバッグから解放されよう</span></h2>



<p class="wp-block-paragraph">REGEXREPLACE関数は、Excelのセル上で正規表現を使った柔軟な文字列置換ができる関数です。</p>



<p class="wp-block-paragraph">この記事のポイントを整理します。</p>



<ul class="wp-block-list"><li>構文は <code>=REGEXREPLACE(テキスト, 正規表現パターン, 置換文字列, [出現位置], [大文字小文字の区別])</code></li><li>Microsoft 365のサブスクリプションが必要（Excel 2019・2021・2024の永続版は不可）</li><li>第4引数でN番目のマッチだけを置換することも可能</li><li>電話番号のハイフン除去・空白削除・HTMLタグ削除などデータクレンジングで大活躍</li><li>全角・半角・長音記号など日本語特有の表記揺れも <code>[...]</code> でまとめて処理できる</li><li>キャプチャグループ <code>()</code> と <code>$1</code> <code>$2</code> で並び順の入れ替えやフォーマット変換ができる</li><li>固定文字列ならSUBSTITUTE、パターン置換ならREGEXREPLACEと使い分ける</li><li>思い通りに動かないときはREGEXTEST→REGEXEXTRACTで段階的に検証する</li><li>姉妹関数にREGEXTEST（判定）とREGEXEXTRACT（抽出）がある</li></ul>



<p class="wp-block-paragraph">まずは <code>=REGEXREPLACE("03-1234-5678", "-", "")</code> のようなシンプルな置換から試してみてください。一度コツをつかめば、SUBSTITUTEの多重ネストとは比較にならない便利さを実感できますよ。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-regexreplace/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
