<?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/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Mon, 13 Apr 2026 10:00:16 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</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のREGEXEXTRACT関数の使い方｜正規表現で文字列を抽出する</title>
		<link>https://mashukabu.com/excel-function-howto-use-regexextract/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-regexextract/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 09 Apr 2026 04:11:05 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[Microsoft 365]]></category>
		<category><![CDATA[REGEXEXTRACT関数]]></category>
		<category><![CDATA[REGEXTEST]]></category>
		<category><![CDATA[データクレンジング]]></category>
		<category><![CDATA[文字列抽出]]></category>
		<category><![CDATA[正規表現]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=5896</guid>

					<description><![CDATA[ExcelのREGEXEXTRACT関数の使い方を初心者向けに解説。構文・引数（テキスト・パターン・return_mode・大文字小文字の区別）の基本から、メールアドレス・電話番号・URLドメイン・日付分解などの実務例を数式付きで紹介。キャプチャグループの使い方、#VALUE!や#N/Aエラーの対処、REGEXTEST・REGEXREPLACEとの使い分けもまとめました。]]></description>
										<content:encoded><![CDATA[
<p>「長い文字列の中からメールアドレスだけ取り出したい」「URLからドメイン部分だけを抜き出したい」。データ整理をしていると、こんな場面に出くわしますよね。</p>



<p>これまでのExcelでは、LEFT・RIGHT・MID・FINDを組み合わせた長い数式を書くしかありませんでした。位置がズレるだけで壊れてしまう、あの面倒な数式ですね。</p>



<p>そんなときに便利なのがExcelのREGEXEXTRACT関数です。正規表現を使って、狙った文字列を一発で抜き出せますよ。</p>



<p>この記事では、ExcelのREGEXEXTRACT関数の使い方を基本から実務例まで解説します。キャプチャグループの使い方や姉妹関数との使い分けもまとめましたので、ぜひ参考にしてください。</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のREGEXEXTRACT関数とは？</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">REGEXEXTRACT関数の構文と引数</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引数：戻り値モード（return_mode）</a></li><li><a href="#toc9" tabindex="0">第4引数：大文字小文字の区別</a></li></ol></li><li><a href="#toc10" tabindex="0">Excel REGEXEXTRACT関数の基本的な使い方</a><ol><li><a href="#toc11" tabindex="0">文字列から最初の数字列を取り出す</a></li><li><a href="#toc12" tabindex="0">郵便番号を抜き出す</a></li><li><a href="#toc13" tabindex="0">本文からメールアドレスを抽出する</a></li><li><a href="#toc14" tabindex="0">IFERRORでエラーを隠す</a></li></ol></li><li><a href="#toc15" tabindex="0">実践的な使い方・応用例</a><ol><li><a href="#toc16" tabindex="0">電話番号の市外局番だけを抽出する</a></li><li><a href="#toc17" tabindex="0">URLからドメイン部分を取得する</a></li><li><a href="#toc18" tabindex="0">日付文字列から年・月・日を分離する</a></li><li><a href="#toc19" tabindex="0">本文中のハッシュタグをすべて抽出する</a></li><li><a href="#toc20" tabindex="0">メールアドレスからユーザー名とドメインを分ける</a></li></ol></li><li><a href="#toc21" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc22" tabindex="0">#N/A エラー</a></li><li><a href="#toc23" tabindex="0">#VALUE! エラー</a></li><li><a href="#toc24" tabindex="0">#NAME? エラー</a></li><li><a href="#toc25" tabindex="0">エラー一覧表</a></li></ol></li><li><a href="#toc26" tabindex="0">REGEXTEST・REGEXREPLACEとの使い分け</a></li><li><a href="#toc27" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ExcelのREGEXEXTRACT関数とは？</span></h2>



<p>REGEXEXTRACT関数は、<strong>文字列の中から正規表現パターンに一致する部分を抜き出すExcelの関数</strong>です。読み方は「レジェックスエクストラクト」で、メールアドレスやURL、日付など狙った形式の文字列をピンポイントで取り出せます。</p>



<p>2024年にMicrosoft 365へ追加された新しい関数で、REGEXTEST・REGEXREPLACEとともに「正規表現3関数」と呼ばれています。姉妹関数のREGEXTESTがパターンの「判定」を担うのに対し、REGEXEXTRACTは「抽出」を担当します。</p>



<p>LEFT・MID・FINDを組み合わせた長い数式に悩まされてきた方には、まさに救世主のような関数ですよ。</p>



<h3 class="wp-block-heading"><span id="toc2">どんなときに使う関数か</span></h3>



<p>REGEXEXTRACT関数は次のようなシーンで活躍します。</p>



<ul class="wp-block-list"><li>問い合わせ本文からメールアドレスだけを取り出したいとき</li><li>電話番号の市外局番だけを抜き出したいとき</li><li>URLからドメイン部分を取得したいとき</li><li>日付文字列を年・月・日に分解したいとき</li><li>商品コードから特定の桁だけを抽出したいとき</li></ul>



<p>LEFT・RIGHT・MIDの入れ子から解放されて、数式がすっきりしますよ。</p>



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



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



<p>対応環境は次のとおりです。</p>



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



<p>お使いのバージョンが対応しているか、事前に確認しておきましょう。バージョンが古いと <code>#NAME?</code> エラーになってしまいます。</p>



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



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



<pre class="wp-block-code"><code>=REGEXEXTRACT(テキスト, 正規表現パターン, [戻り値モード], [大文字小文字の区別])</code></pre>



<p>第3引数と第4引数は省略可能です。まずは第1・第2引数だけで十分使えますよ。</p>



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



<p>抽出元の文字列またはセル参照を指定します。</p>



<pre class="wp-block-code"><code>=REGEXEXTRACT(&quot;お問い合わせ: taro@example.com まで&quot;, &quot;[w.+-]+@[w.-]+&quot;)
=REGEXEXTRACT(A2, &quot;d+&quot;)</code></pre>



<p>実務ではセル参照を使うのが一般的です。セルが数値型の場合はそのままでは使えないので、TEXT関数（数値を指定した書式の文字列に変換する関数）で文字列化してから渡しましょう。</p>



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



<p>抜き出したい形式を正規表現でダブルクォーテーションで囲んで指定します。</p>



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



<p>上の例は「数字3桁＋ハイフン＋数字4桁」、つまり郵便番号の形式を取り出す数式です。正規表現の記号は、姉妹記事の<a href="https://mashukabu.com/excel-function-howto-use-regextest/">ExcelのREGEXTEST関数の使い方</a>で早見表にまとめていますので、あわせて確認してみてください。</p>



<h3 class="wp-block-heading"><span id="toc8">第3引数：戻り値モード（return_mode）</span></h3>



<p>どのように抽出するかを数値で指定します。省略時は0です。</p>



<ul class="wp-block-list"><li><strong>0</strong>（省略時）：<strong>最初に一致した1つ</strong>を返す</li><li><strong>1</strong>：<strong>すべての一致</strong>を配列で返す（スピル）</li><li><strong>2</strong>：<strong>キャプチャグループ</strong>（括弧で囲んだ部分）を配列で返す</li></ul>



<p>この第3引数こそがREGEXEXTRACT関数の真骨頂です。後ほど具体例で詳しく見ていきます。</p>



<h3 class="wp-block-heading"><span id="toc9">第4引数：大文字小文字の区別</span></h3>



<p>大文字と小文字を区別するかを数値で指定します。省略すると0（区別する）です。</p>



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



<p>英字を含むパターンを使うときだけ気にすれば大丈夫ですよ。</p>



<pre class="wp-block-code"><code>=REGEXEXTRACT(&quot;HELLO world&quot;, &quot;[a-z]+&quot;)      '&quot;world&quot;
=REGEXEXTRACT(&quot;HELLO world&quot;, &quot;[a-z]+&quot;, 0, 1) '&quot;HELLO&quot;</code></pre>



<h2 class="wp-block-heading"><span id="toc10">Excel REGEXEXTRACT関数の基本的な使い方</span></h2>



<p>それでは実際に数式を組み立ててみましょう。</p>



<h3 class="wp-block-heading"><span id="toc11">文字列から最初の数字列を取り出す</span></h3>



<p>もっともシンプルな例です。文字列に含まれる数字をまとめて抽出します。</p>



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



<p>A2が「商品コード12345番」なら結果は「12345」、「2026年4月」なら「2026」が返ります。<code>d+</code> は「数字1文字以上の繰り返し」を表します。</p>



<p>抽出結果は常にテキスト型で返るので、数値として計算に使いたい場合はVALUE関数（文字列を数値に変換する関数）でラップしましょう。</p>



<pre class="wp-block-code"><code>=VALUE(REGEXEXTRACT(A2, &quot;d+&quot;))</code></pre>



<h3 class="wp-block-heading"><span id="toc12">郵便番号を抜き出す</span></h3>



<p>住所の中から郵便番号だけを取り出す例です。</p>



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



<p>A2が「〒100-0001 東京都千代田区」なら「100-0001」が返ります。<code>{3}</code> は「直前の要素の3回繰り返し」を意味する記号です。</p>



<h3 class="wp-block-heading"><span id="toc13">本文からメールアドレスを抽出する</span></h3>



<p>問い合わせメールの本文などからメールアドレスだけを抜き出す例です。</p>



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



<p>A2が「ご連絡は taro@example.com までお願いします」なら「taro@example.com」が返ります。実務レベルのメールアドレス抽出にはこれで十分ですよ。</p>



<h3 class="wp-block-heading"><span id="toc14">IFERRORでエラーを隠す</span></h3>



<p>パターンが見つからないと <code>#N/A</code> エラーになります。IFERROR関数（エラー時に代替値を返す関数）でラップすると、空欄や任意のメッセージに置き換えられます。</p>



<pre class="wp-block-code"><code>=IFERROR(REGEXEXTRACT(A2, &quot;d+&quot;), &quot;&quot;)</code></pre>



<p>データにばらつきがある実務では、IFERRORとのセット使いをおすすめします。</p>



<h2 class="wp-block-heading"><span id="toc15">実践的な使い方・応用例</span></h2>



<h3 class="wp-block-heading"><span id="toc16">電話番号の市外局番だけを抽出する</span></h3>



<p>電話番号の先頭部分だけを取り出す例です。</p>



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



<p>「03-1234-5678」なら「03」、「0120-999-888」なら「0120」が返ります。<code>^</code> は「文字列の先頭」、<code>d{1,4}</code> は「数字1〜4桁」を意味します。</p>



<p>市外局番と市内局番・加入者番号に分けたい場合は、次のキャプチャグループの例が便利です。</p>



<h3 class="wp-block-heading"><span id="toc17">URLからドメイン部分を取得する</span></h3>



<p>URLからホスト名（ドメイン）だけを取り出す例です。キャプチャグループ（括弧 <code>()</code> で囲んだ部分）と第3引数 <code>2</code> を組み合わせます。</p>



<pre class="wp-block-code"><code>=REGEXEXTRACT(A2, &quot;https?://([^/]+)&quot;, 2)</code></pre>



<p>A2が「https://www.mashukabu.com/excel-tips/」なら「www.mashukabu.com」が返ります。括弧で囲んだ <code>[^/]+</code>（スラッシュ以外の1文字以上）の部分だけが抽出されるイメージです。</p>



<p>第3引数を <code>2</code> にすることで、括弧で囲んだキャプチャグループの中身だけを取り出せるのがポイントですよ。</p>



<h3 class="wp-block-heading"><span id="toc18">日付文字列から年・月・日を分離する</span></h3>



<p>「2026-04-09」のような文字列を年・月・日の3つに分解する例です。</p>



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



<p>この数式はスピル（数式が自動で配列に展開される機能）に対応していて、1つのセルに入力すると右方向に3つのセルへ「2026」「04」「09」が展開されます。</p>



<p>括弧を3つ書いてそれぞれの部分をキャプチャしているのがコツです。スラッシュ区切りの日付なら次のように書きます。</p>



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



<p>LEFT・MID・RIGHTで3つのセルに分解していた従来の方法と比べて、圧倒的にシンプルですよね。</p>



<h3 class="wp-block-heading"><span id="toc19">本文中のハッシュタグをすべて抽出する</span></h3>



<p>SNS投稿の文字列からハッシュタグをまとめて取り出す例です。第3引数に <code>1</code> を指定すると、一致するものをすべて配列として返します。</p>



<pre class="wp-block-code"><code>=REGEXEXTRACT(A2, &quot;#w+&quot;, 1)</code></pre>



<p>A2が「今日の学び #Excel #REGEXEXTRACT #正規表現」なら、下方向に「#Excel」「#REGEXEXTRACT」「#正規表現」の3つがスピルします。ハッシュタグの棚卸しやSNS運用のレポートで重宝しますよ。</p>



<h3 class="wp-block-heading"><span id="toc20">メールアドレスからユーザー名とドメインを分ける</span></h3>



<p>アットマークの前後を分けて取り出す例です。</p>



<pre class="wp-block-code"><code>=REGEXEXTRACT(A2, &quot;([w.+-]+)@([w.-]+)&quot;, 2)</code></pre>



<p>A2が「taro@example.com」なら「taro」「example.com」の2つに分かれてスピルします。顧客リストのドメインごとの集計などに便利ですよ。</p>



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



<p>REGEXEXTRACT関数で表示されるエラーと対処法をまとめました。</p>



<h3 class="wp-block-heading"><span id="toc22">#N/A エラー</span></h3>



<p><strong>原因</strong>: 指定した正規表現パターンに一致する部分が見つからない。</p>



<p><strong>対処法</strong>: IFERROR関数で代替値を返すようにします。データ全体でパターンが統一されていない場合の定番対処です。</p>



<pre class="wp-block-code"><code>=IFERROR(REGEXEXTRACT(A2, &quot;d+&quot;), &quot;該当なし&quot;)</code></pre>



<p>パターン自体が間違っていないか、サンプルデータで動作を確認してから本番データに適用するのがおすすめです。</p>



<h3 class="wp-block-heading"><span id="toc23">#VALUE! エラー</span></h3>



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



<p><strong>対処法</strong>: 正規表現パターンを見直しましょう。特にエスケープ忘れ（<code>(</code> をそのまま使うなど）が多いので注意してください。数値セルを渡す場合はTEXT関数で文字列化します。</p>



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



<h3 class="wp-block-heading"><span id="toc24">#NAME? エラー</span></h3>



<p><strong>原因</strong>: REGEXEXTRACT関数に対応していないバージョンのExcelで使っている。または関数名のスペルミス。</p>



<p><strong>対処法</strong>: Microsoft 365のサブスクリプションで最新版にアップデートしてください。Excel 2019・2021・LTSC 2024などでは使えません。</p>



<h3 class="wp-block-heading"><span id="toc25">エラー一覧表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>#N/A</td><td>パターン不一致</td><td>IFERRORで代替値</td></tr><tr><td>#VALUE!</td><td>無効な正規表現・非文字列</td><td>パターン見直し・TEXTで変換</td></tr><tr><td>#NAME?</td><td>非対応バージョン</td><td>Microsoft 365に更新</td></tr></tbody></table></figure>



<p>エラーが出ても原因は限られているので、落ち着いて確認すれば大丈夫ですよ。</p>



<h2 class="wp-block-heading"><span id="toc26">REGEXTEST・REGEXREPLACEとの使い分け</span></h2>



<p>REGEXEXTRACT関数には2つの姉妹関数があります。用途が異なるので、目的に合わせて使い分けましょう。</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>使い分けのフローは次のとおりです。</p>



<ul class="wp-block-list"><li>「メールアドレスとして正しいか？」→ REGEXTEST</li><li>「本文からメールアドレスだけ抜き出したい」→ REGEXEXTRACT</li><li>「電話番号のハイフンを削除したい」→ REGEXREPLACE</li></ul>



<p>3つとも同じPCRE2（Perl互換の正規表現）の書き方に対応しているので、パターンの知識はそのまま共通で使えます。REGEXTESTの詳しい使い方は<a href="https://mashukabu.com/excel-function-howto-use-regextest/">ExcelのREGEXTEST関数の使い方</a>でも解説していますので、あわせて読んでみてください。</p>



<h2 class="wp-block-heading"><span id="toc27">まとめ</span></h2>



<p>REGEXEXTRACT関数は、Excelのセル上で正規表現を使って文字列を抜き出せる関数です。</p>



<p>この記事のポイントを整理します。</p>



<ul class="wp-block-list"><li>構文は <code>=REGEXEXTRACT(テキスト, 正規表現パターン, [戻り値モード], [大文字小文字の区別])</code></li><li>Microsoft 365のサブスクリプションが必要</li><li>第3引数 <code>0</code> で最初の一致、<code>1</code> で全一致、<code>2</code> でキャプチャグループを取得</li><li>キャプチャグループ（括弧）を使うと日付やURLを複数パートに分解できる</li><li>戻り値は常にテキスト型なので数値計算ではVALUE関数でラップする</li><li><code>#N/A</code> エラーはIFERROR関数で代替値を返すのが定番対処</li><li>姉妹関数のREGEXTEST（判定）・REGEXREPLACE（置換）と使い分けると便利</li></ul>



<p>まずは <code>=REGEXEXTRACT("価格1200円", "d+")</code> のようなシンプルな式から試してみてください。LEFTやMIDを組み合わせた長い数式から解放されて、データ整理がぐっとラクになりますよ。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-regexextract/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのREGEXTEST関数の使い方｜正規表現でセルのパターンをチェック</title>
		<link>https://mashukabu.com/excel-function-howto-use-regextest/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-regextest/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 09 Apr 2026 04:10:58 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[Microsoft 365]]></category>
		<category><![CDATA[REGEXEXTRACT]]></category>
		<category><![CDATA[REGEXTEST関数]]></category>
		<category><![CDATA[データクレンジング]]></category>
		<category><![CDATA[入力チェック]]></category>
		<category><![CDATA[正規表現]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=5894</guid>

					<description><![CDATA[ExcelのREGEXTEST関数の使い方を初心者向けに解説。構文・引数（テキスト・パターン・大文字小文字区別）の基本から、メールアドレス・電話番号・郵便番号のバリデーション、数字のみチェックなど実務ユースケースを数式付きで紹介。正規表現の早見表、REGEXEXTRACT・REGEXREPLACEとの使い分け、エラー対処法もまとめました。]]></description>
										<content:encoded><![CDATA[
<p>「このセルに入っている文字列、メールアドレスとして正しい形式かな？」「電話番号の列に変な文字が混じっていないかチェックしたい」。データの入力チェックをしていると、こんな場面によく出くわしますよね。</p>



<p>これまでのExcelでは、ISNUMBERやSEARCH関数を組み合わせたり、長い条件式を書いたりするしかありませんでした。かなり面倒ですよね。</p>



<p>そんなときに便利なのがREGEXTEST関数です。正規表現を使って、セルの文字列が特定のパターンに一致するかを一発でチェックできます。</p>



<p>この記事では、ExcelのREGEXTEST関数の使い方を基本から実務例まで解説します。正規表現の早見表や姉妹関数との使い分けもまとめましたので、ぜひ参考にしてください。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ExcelのREGEXTEST関数とは？</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">REGEXTEST関数の構文と引数</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></ol></li><li><a href="#toc9" tabindex="0">正規表現の基本パターン早見表</a><ol><li><a href="#toc10" tabindex="0">文字クラス</a></li><li><a href="#toc11" tabindex="0">位置と繰り返し</a></li></ol></li><li><a href="#toc12" tabindex="0">Excel REGEXTEST関数の基本的な使い方</a><ol><li><a href="#toc13" tabindex="0">文字列に数字が含まれるかチェックする</a></li><li><a href="#toc14" tabindex="0">数字のみで構成されているかチェックする</a></li><li><a href="#toc15" tabindex="0">大文字のアルファベットが含まれるかチェックする</a></li><li><a href="#toc16" tabindex="0">IF関数と組み合わせて判定結果を表示する</a></li></ol></li><li><a href="#toc17" tabindex="0">実践的な使い方・応用例</a><ol><li><a href="#toc18" tabindex="0">メールアドレスの形式をチェックする</a></li><li><a href="#toc19" tabindex="0">電話番号が数字とハイフンのみか確認する</a></li><li><a href="#toc20" tabindex="0">郵便番号の形式をチェックする</a></li><li><a href="#toc21" tabindex="0">セルに特定キーワードが含まれるか判定する</a></li><li><a href="#toc22" tabindex="0">FILTER関数と組み合わせて条件抽出する</a></li></ol></li><li><a href="#toc23" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc24" tabindex="0">#VALUE! エラー</a></li><li><a href="#toc25" tabindex="0">#NAME? エラー</a></li><li><a href="#toc26" tabindex="0">意図したとおりにマッチしない</a></li></ol></li><li><a href="#toc27" tabindex="0">REGEXEXTRACT・REGEXREPLACEとの使い分け</a></li><li><a href="#toc28" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ExcelのREGEXTEST関数とは？</span></h2>



<p>REGEXTEST関数は、<strong>セルの文字列が指定した正規表現パターンに一致するかを判定するExcelの関数</strong>です。読み方は「レジェックステスト」で、結果は TRUE または FALSE で返ります。</p>



<p>2024年にMicrosoft 365へ追加された比較的新しい関数で、REGEXEXTRACT・REGEXREPLACEと合わせて「正規表現3関数」と呼ばれています。</p>



<p>正規表現というと難しそうに感じますが、使うパターンは意外と限られています。この記事のサンプルをコピーすれば、実務で十分使えますよ。</p>



<h3 class="wp-block-heading"><span id="toc2">どんなときに使う関数か</span></h3>



<p>REGEXTEST関数は次のようなシーンで活躍します。</p>



<ul class="wp-block-list"><li>メールアドレスが正しい形式で入力されているかチェックしたいとき</li><li>電話番号や郵便番号が数字のみか確認したいとき</li><li>セルに特定のキーワードや文字パターンが含まれるか判定したいとき</li><li>FILTER関数と組み合わせて条件に合う行だけ抽出したいとき</li></ul>



<p>従来のISNUMBER＋SEARCH構文と比べて、数式が圧倒的にスッキリしますよ。</p>



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



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



<p>対応環境は次のとおりです。</p>



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



<p>お使いのバージョンが対応しているか、事前に確認しておきましょう。バージョンが古いと <code>#NAME?</code> エラーになってしまいます。</p>



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



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



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



<p>カッコ内に、チェックしたいテキストと正規表現パターンを指定します。第3引数は省略可能です。</p>



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



<p>チェック対象の文字列またはセル参照を指定します。</p>



<pre class="wp-block-code"><code>=REGEXTEST(&quot;abc123&quot;, &quot;[0-9]&quot;)
=REGEXTEST(A2, &quot;[0-9]&quot;)</code></pre>



<p>直接文字列を入れる場合はダブルクォーテーションで囲みます。実務ではセル参照を使うのが一般的です。</p>



<p>なお、セルが数値型の場合はそのままでは使えません。TEXT関数（数値を指定した書式の文字列に変換する関数）で文字列化してから渡しましょう。</p>



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



<p>マッチさせたい正規表現をダブルクォーテーションで囲んで指定します。</p>



<pre class="wp-block-code"><code>=REGEXTEST(A2, &quot;^[0-9]+$&quot;)</code></pre>



<p>上の例は「A2が数字だけで構成されているか」をチェックする数式です。記号の意味は後ほど早見表で整理します。</p>



<h3 class="wp-block-heading"><span id="toc8">第3引数：大文字小文字の区別</span></h3>



<p>大文字と小文字を区別するかを数値で指定します。省略すると0（区別する）が使われます。</p>



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



<p>英字を含むパターンを使うときだけ気にすれば大丈夫ですよ。</p>



<pre class="wp-block-code"><code>=REGEXTEST(&quot;ABC&quot;, &quot;[a-z]&quot;)      'FALSE（小文字のみにマッチ）
=REGEXTEST(&quot;ABC&quot;, &quot;[a-z]&quot;, 1)   'TRUE（区別しないのでマッチ）</code></pre>



<h2 class="wp-block-heading"><span id="toc9">正規表現の基本パターン早見表</span></h2>



<p>REGEXTEST関数で使える正規表現は、PCRE2（Perl互換の正規表現）と呼ばれるものです。まずはよく使う記号だけ押さえておけば十分です。</p>



<h3 class="wp-block-heading"><span id="toc10">文字クラス</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>dd</code> は「12」にマッチ</td></tr><tr><td><code>D</code></td><td>数字以外の1文字</td><td><code>D</code> は「a」にマッチ</td></tr><tr><td><code>w</code></td><td>英数字またはアンダースコア</td><td><code>w+</code> は「hello_1」にマッチ</td></tr><tr><td><code>s</code></td><td>空白文字（半角スペース・タブ）</td><td><code>s</code> は半角スペースにマッチ</td></tr><tr><td><code>.</code></td><td>任意の1文字</td><td><code>a.c</code> は「abc」「a1c」にマッチ</td></tr><tr><td><code>[abc]</code></td><td>a・b・cのいずれか1文字</td><td><code>[abc]</code> は「a」にマッチ</td></tr><tr><td><code>[a-z]</code></td><td>a〜zのいずれか1文字</td><td>小文字の英字にマッチ</td></tr><tr><td><code>[0-9]</code></td><td>0〜9のいずれか1文字</td><td><code>d</code> と同じ</td></tr><tr><td><code>[^0-9]</code></td><td>0〜9以外の1文字</td><td>数字以外にマッチ</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc11">位置と繰り返し</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>記号</th><th>意味</th><th>例</th></tr></thead><tbody><tr><td><code>^</code></td><td>文字列の先頭</td><td><code>^abc</code> は「abc」で始まる文字列</td></tr><tr><td><code>$</code></td><td>文字列の末尾</td><td><code>xyz$</code> は「xyz」で終わる文字列</td></tr><tr><td><code>*</code></td><td>直前の0回以上の繰り返し</td><td><code>a*</code> は「」「a」「aaa」にマッチ</td></tr><tr><td><code>+</code></td><td>直前の1回以上の繰り返し</td><td><code>a+</code> は「a」「aaa」にマッチ</td></tr><tr><td><code>?</code></td><td>直前の0回または1回</td><td><code>colou?r</code> は「color」「colour」</td></tr><tr><td><code>{n}</code></td><td>直前のn回の繰り返し</td><td><code>d{4}</code> は数字4桁</td></tr><tr><td><code>{n,m}</code></td><td>直前のn回以上m回以下</td><td><code>d{3,5}</code> は数字3〜5桁</td></tr><tr><td>`</td><td>`</td><td>または</td><td>`cat</td><td>dog` は「cat」か「dog」</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> と書きます。</p></blockquote>



<p><code>^</code> と <code>$</code> を両方付けると「文字列全体が完全一致するか」をチェックできます。部分一致でよいなら両方とも省略しましょう。</p>



<h2 class="wp-block-heading"><span id="toc12">Excel REGEXTEST関数の基本的な使い方</span></h2>



<p>それでは実際に数式を組み立ててみましょう。</p>



<h3 class="wp-block-heading"><span id="toc13">文字列に数字が含まれるかチェックする</span></h3>



<p>もっともシンプルな例です。A列の文字列に数字が1文字でも含まれるかを判定します。</p>



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



<p>「abc」ならFALSE、「abc123」ならTRUEが返ります。<code>d</code> は「数字1文字」を表す記号です。</p>



<h3 class="wp-block-heading"><span id="toc14">数字のみで構成されているかチェックする</span></h3>



<p>文字列全体が数字だけでできているかを判定します。郵便番号や電話番号の入力チェックに便利です。</p>



<pre class="wp-block-code"><code>=REGEXTEST(A2, &quot;^d+$&quot;)</code></pre>



<p><code>^</code> と <code>$</code> で文字列全体を挟み、<code>d+</code> で「数字1文字以上の繰り返し」を表しています。「123456」ならTRUE、「123-456」はハイフンが含まれるのでFALSEになります。</p>



<h3 class="wp-block-heading"><span id="toc15">大文字のアルファベットが含まれるかチェックする</span></h3>



<p>パスワードチェックなどで使うパターンです。</p>



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



<p>A2に「password」が入っていればFALSE、「Password」ならTRUEです。大文字が1文字でもあればTRUEを返します。</p>



<h3 class="wp-block-heading"><span id="toc16">IF関数と組み合わせて判定結果を表示する</span></h3>



<p>TRUE・FALSEだけだとわかりにくいので、IF関数と組み合わせてメッセージで返すのがおすすめです。</p>



<pre class="wp-block-code"><code>=IF(REGEXTEST(A2, &quot;^d+$&quot;), &quot;数字のみ&quot;, &quot;数字以外を含む&quot;)</code></pre>



<p>見た目もわかりやすくなり、チェック結果の確認がラクになりますよ。</p>



<h2 class="wp-block-heading"><span id="toc17">実践的な使い方・応用例</span></h2>



<h3 class="wp-block-heading"><span id="toc18">メールアドレスの形式をチェックする</span></h3>



<p>顧客リストや問い合わせフォームのデータで、メールアドレスが正しい形式かをチェックする例です。</p>



<pre class="wp-block-code"><code>=REGEXTEST(A2, &quot;^[w.+-]+@[w-]+.[w.-]+$&quot;)</code></pre>



<p>一見複雑ですが、分解すると次のような意味になります。</p>



<ul class="wp-block-list"><li><code>^[w.+-]+</code> ：先頭は英数字・ドット・プラス・ハイフンの1文字以上</li><li><code>@</code> ：アットマーク</li><li><code>[w-]+</code> ：ドメイン名部分（英数字とハイフン）</li><li><code>.[w.-]+$</code> ：ドット＋トップレベルドメインで終わる</li></ul>



<figure class="wp-block-table"><table><thead><tr><th>A列（入力値）</th><th>B列（=REGEXTESTの結果）</th></tr></thead><tbody><tr><td>taro@example.com</td><td>TRUE</td></tr><tr><td>hanako.suzuki@biz-tactics.co.jp</td><td>TRUE</td></tr><tr><td>info@example</td><td>FALSE</td></tr><tr><td>taro[at]example.com</td><td>FALSE</td></tr></tbody></table></figure>



<p>厳密なRFC準拠ではありませんが、実務レベルのチェックには十分です。IF関数と組み合わせて「要確認」のラベルを付けておくと、修正漏れを防げますよ。</p>



<h3 class="wp-block-heading"><span id="toc19">電話番号が数字とハイフンのみか確認する</span></h3>



<p>電話番号欄に余計な文字（全角やスペース）が入っていないかチェックする例です。</p>



<pre class="wp-block-code"><code>=REGEXTEST(A2, &quot;^[0-9-]+$&quot;)</code></pre>



<p>「03-1234-5678」はTRUE、「03-1234-5678（内線1）」は括弧が含まれるのでFALSEになります。</p>



<p>ハイフンなしの数字のみに統一したい場合は次の数式を使います。</p>



<pre class="wp-block-code"><code>=REGEXTEST(A2, &quot;^d{10,11}$&quot;)</code></pre>



<p><code>d{10,11}</code> は「数字10桁〜11桁」を意味します。携帯番号（11桁）と固定電話（10桁）の両方に対応できます。</p>



<h3 class="wp-block-heading"><span id="toc20">郵便番号の形式をチェックする</span></h3>



<p>日本の郵便番号（7桁、ハイフン区切り）のチェックです。</p>



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



<p>「100-0001」はTRUE、「1000001」や「100-001」はFALSEになります。ハイフンの位置までしっかりチェックできるのがポイントです。</p>



<h3 class="wp-block-heading"><span id="toc21">セルに特定キーワードが含まれるか判定する</span></h3>



<p>複数のキーワードのいずれかが含まれるかを判定する例です。「緊急」「至急」「重要」のどれかが本文に含まれるメールを検出するイメージです。</p>



<pre class="wp-block-code"><code>=REGEXTEST(A2, &quot;緊急|至急|重要&quot;)</code></pre>



<p><code>|</code>（パイプ）は「または」を意味します。IF関数と組み合わせれば、優先度の自動仕分けにも使えますよ。</p>



<pre class="wp-block-code"><code>=IF(REGEXTEST(A2, &quot;緊急|至急|重要&quot;), &quot;優先対応&quot;, &quot;&quot;)</code></pre>



<h3 class="wp-block-heading"><span id="toc22">FILTER関数と組み合わせて条件抽出する</span></h3>



<p>REGEXTEST関数のすごいところは、FILTER関数と組み合わせて行単位の抽出ができる点です。</p>



<p>A2:B100のデータから、A列が「東京」で始まる行だけを抽出する例です。</p>



<pre class="wp-block-code"><code>=FILTER(A2:B100, REGEXTEST(A2:A100, &quot;^東京&quot;))</code></pre>



<p>スピル（数式が自動で配列に展開される機能）に対応しているので、1つの数式で複数行を一気に絞り込めます。「東京都」「東京支店」などを一括で拾えますよ。</p>



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



<p>REGEXTEST関数で表示されるエラーと対処法をまとめました。</p>



<h3 class="wp-block-heading"><span id="toc24">#VALUE! エラー</span></h3>



<p><strong>原因</strong>: 第2引数に無効な正規表現を指定した。または第1引数に数値や日付などの非文字列を直接渡した。</p>



<p><strong>対処法</strong>: 正規表現パターンを見直しましょう。特にエスケープ忘れ（<code>(</code> をそのまま使うなど）が多いので注意してください。数値セルを渡す場合はTEXT関数で文字列化しましょう。</p>



<pre class="wp-block-code"><code>=REGEXTEST(TEXT(A2, &quot;0&quot;), &quot;^d+$&quot;)</code></pre>



<h3 class="wp-block-heading"><span id="toc25">#NAME? エラー</span></h3>



<p><strong>原因</strong>: REGEXTEST関数に対応していないバージョンのExcelで使っている。または関数名のスペルミス。</p>



<p><strong>対処法</strong>: Microsoft 365のサブスクリプションで最新版にアップデートしてください。Excel 2019・2021・LTSC 2024などでは使えません。関数名のスペルも確認しましょう。</p>



<h3 class="wp-block-heading"><span id="toc26">意図したとおりにマッチしない</span></h3>



<p><strong>原因</strong>: 日付セルが対象になっている。日付はExcel内部ではシリアル値（数値）として扱われるため、表示形式とは異なる値が渡されます。</p>



<p><strong>対処法</strong>: TEXT関数で文字列化してから渡します。</p>



<pre class="wp-block-code"><code>=REGEXTEST(TEXT(A2, &quot;yyyy/mm/dd&quot;), &quot;^2026&quot;)</code></pre>



<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>意図しないFALSE</td><td>日付シリアル値が対象</td><td>TEXT関数で文字列化</td></tr></tbody></table></figure>



<p>エラーが出ても原因は限られているので、落ち着いて確認すれば大丈夫ですよ。</p>



<h2 class="wp-block-heading"><span id="toc27">REGEXEXTRACT・REGEXREPLACEとの使い分け</span></h2>



<p>REGEXTEST関数には2つの姉妹関数があります。用途が異なるので、目的に合わせて使い分けましょう。</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>使い分けのイメージは次のとおりです。</p>



<ul class="wp-block-list"><li>「メールアドレスとして正しいか？」→ REGEXTEST</li><li>「本文からメールアドレスだけ抜き出したい」→ REGEXEXTRACT</li><li>「電話番号のハイフンを削除したい」→ REGEXREPLACE</li></ul>



<p>3つとも同じPCRE2の正規表現を使うので、パターンの書き方は共通です。REGEXTESTで覚えた知識はそのまま他の2関数でも活きますよ。</p>



<h2 class="wp-block-heading"><span id="toc28">まとめ</span></h2>



<p>REGEXTEST関数は、Excelのセル上で正規表現を使ったパターンチェックができる関数です。</p>



<p>この記事のポイントを整理します。</p>



<ul class="wp-block-list"><li>構文は <code>=REGEXTEST(テキスト, 正規表現パターン, [大文字小文字の区別])</code></li><li>Microsoft 365のサブスクリプションが必要</li><li>戻り値はTRUE / FALSEのシンプルな形</li><li>第3引数を1にすると大文字小文字を区別しない</li><li>正規表現は <code>d</code>（数字）<code>^</code> <code>$</code>（先頭・末尾）あたりから覚えるのがおすすめ</li><li>メールアドレス・電話番号・郵便番号の形式チェックに便利</li><li>FILTER関数と組み合わせると条件抽出にも使える</li><li>姉妹関数にREGEXEXTRACT（抽出）とREGEXREPLACE（置換）がある</li></ul>



<p>まずは <code>=REGEXTEST("123abc", "d")</code> のようなシンプルな式から試してみてください。データクレンジングや入力チェックの作業がぐっとラクになりますよ。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-regextest/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのREGEXREPLACE関数の使い方｜正規表現で文字列を置換する</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[REGEXTEST]]></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>「電話番号のハイフンをまとめて消したい」「メールアドレスのドメイン部分だけを伏せ字にしたい」。データ整理をしていると、こういう一括置換の場面はよくありますよね。</p>



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



<p>そんな悩みを一発で解決してくれるのがREGEXREPLACE関数です。正規表現を使って、セルの文字列を柔軟に置換できます。</p>



<p>この記事では、ExcelのREGEXREPLACE関数の使い方を基本から実務例まで解説します。キャプチャグループを使った高度な置換や、SUBSTITUTE関数との使い分けもまとめましたので、ぜひ参考にしてください。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-3" checked><label class="toc-title" for="toc-checkbox-3">目次</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関数の構文と引数</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引数：出現位置</a></li><li><a href="#toc10" tabindex="0">第5引数：大文字小文字の区別</a></li></ol></li><li><a href="#toc11" tabindex="0">正規表現の基本パターン早見表</a></li><li><a href="#toc12" tabindex="0">Excel REGEXREPLACE関数の基本的な使い方</a><ol><li><a href="#toc13" tabindex="0">電話番号からハイフンを除去する</a></li><li><a href="#toc14" tabindex="0">数字以外を一括削除する</a></li><li><a href="#toc15" tabindex="0">余分な空白をまとめて削除する</a></li><li><a href="#toc16" tabindex="0">連続する空白を半角1つにまとめる</a></li></ol></li><li><a href="#toc17" tabindex="0">実践的な使い方・応用例</a><ol><li><a href="#toc18" tabindex="0">メールアドレスのドメイン部分をマスキングする</a></li><li><a href="#toc19" tabindex="0">HTMLタグを削除して本文だけ取り出す</a></li><li><a href="#toc20" tabindex="0">全角・半角・長音記号のハイフンをまとめて除去する</a></li><li><a href="#toc21" tabindex="0">日付の区切り文字を統一する</a></li><li><a href="#toc22" tabindex="0">キャプチャグループで並び順を入れ替える</a></li><li><a href="#toc23" tabindex="0">日付のフォーマットを変換する</a></li></ol></li><li><a href="#toc24" tabindex="0">REGEXREPLACEとSUBSTITUTE関数の使い分け</a></li><li><a href="#toc25" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc26" tabindex="0">#VALUE! エラー</a></li><li><a href="#toc27" tabindex="0">#NAME? エラー</a></li><li><a href="#toc28" tabindex="0">置換結果が意図と違う</a></li></ol></li><li><a href="#toc29" tabindex="0">REGEXTEST・REGEXEXTRACTとの使い分け</a></li><li><a href="#toc30" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ExcelのREGEXREPLACE関数とは？</span></h2>



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



<p>2024年にMicrosoft 365へ追加された新しい関数で、REGEXTEST・REGEXEXTRACTと合わせて「正規表現3関数」と呼ばれています。</p>



<p>固定の文字列を置換するだけならSUBSTITUTE関数で十分ですが、「数字だけまとめて消したい」「特定パターンの部分を伏せ字にしたい」といったパターン指定が必要なケースで、REGEXREPLACE関数が真価を発揮しますよ。</p>



<h3 class="wp-block-heading"><span id="toc2">どんなときに使う関数か</span></h3>



<p>REGEXREPLACE関数は次のようなシーンで活躍します。</p>



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



<p>従来のSUBSTITUTEネストと比べると、数式がすっきりして読みやすくなりますよ。</p>



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



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



<p>対応環境は次のとおりです。</p>



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



<p>お使いのバージョンが対応しているか、確認しておきましょう。バージョンが古いと <code>#NAME?</code> エラーになってしまいます。</p>



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



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



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



<p>必須の引数は最初の3つで、後ろの2つは省略できます。</p>



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



<p>置換対象となる文字列またはセル参照を指定します。</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>直接文字列を入れる場合はダブルクォーテーションで囲みます。実務ではセル参照を使うことがほとんどです。</p>



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



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



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



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



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



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



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



<p>この例ではすべての空白文字を削除します。</p>



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



<p>何番目のマッチから置換するかを数値で指定します。省略すると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>最初の1箇所だけ置換したい場面でも使える、意外と便利な引数ですよ。</p>



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



<p>英字を含むパターンで大文字と小文字を区別するかを指定します。省略すると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>



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



<p>REGEXREPLACE関数で使える正規表現は、REGEXTEST・REGEXEXTRACTと同じPCRE2（Perl互換の正規表現）です。よく使う記号をまとめておきます。</p>



<figure class="wp-block-table"><table><thead><tr><th>記号</th><th>意味</th></tr></thead><tbody><tr><td><code>d</code></td><td>数字1文字（0〜9）</td></tr><tr><td><code>D</code></td><td>数字以外の1文字</td></tr><tr><td><code>w</code></td><td>英数字またはアンダースコア</td></tr><tr><td><code>s</code></td><td>空白文字（半角スペース・タブ・改行）</td></tr><tr><td><code>.</code></td><td>任意の1文字</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><tr><td><code>$</code></td><td>文字列の末尾</td></tr><tr><td><code>*</code></td><td>直前の0回以上の繰り返し</td></tr><tr><td><code>+</code></td><td>直前の1回以上の繰り返し</td></tr><tr><td><code>{n}</code></td><td>直前のn回の繰り返し</td></tr><tr><td><code></td><td></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> と書きます。</p></blockquote>



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



<h2 class="wp-block-heading"><span id="toc12">Excel REGEXREPLACE関数の基本的な使い方</span></h2>



<p>それでは実際に数式を組み立ててみましょう。</p>



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



<p>もっとも使用頻度が高いパターンです。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>SUBSTITUTE関数でも同じことはできますが、REGEXREPLACEなら全角ハイフンや長音記号まで一度に消せる柔軟性が魅力です（後述）。</p>



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



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



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



<p><code>D</code> は「数字以外の1文字」を表す記号です。「03-1234-5678（内線1）」のような入力でも、「0312345678 1」のように数字と元の配置を保ったまま、不要な記号をまとめて消せますよ。</p>



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



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



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



<p><code>s+</code> は「1文字以上の連続した空白」を表します。貼り付けたデータに見えない空白が入っているときの掃除にぴったりですよ。</p>



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



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



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



<p>「Hello   World」→「Hello World」のように整形されます。コピペ由来のズレを直すのに便利ですよ。</p>



<h2 class="wp-block-heading"><span id="toc17">実践的な使い方・応用例</span></h2>



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



<p>個人情報保護のために、メールアドレスの <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><code>@.+$</code> は「アットマーク＋1文字以上の末尾まで」を意味します。会議資料やサンプルデータを作成するときに重宝しますよ。</p>



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



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



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



<p><code><[^>]+></code> は「<code><</code> で始まり <code>></code> 以外の文字が1つ以上続き <code>></code> で閉じる部分」を表します。</p>



<p>「<code><p>こんにちは<br>世界</p></code>」→「こんにちは世界」のように、タグだけがきれいに消えます。</p>



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



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



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



<p>角括弧の中に「消したい文字」を並べるだけでOKです。SUBSTITUTEでやろうとすると4重ネストが必要なところを、1つの数式で書けますよ。</p>



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



<p><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>角括弧内のハイフンは <code>-</code> とエスケープしておくと安全です。</p>



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



<p>REGEXREPLACE関数の真骨頂が、キャプチャグループを使った高度な置換です。丸括弧 <code>()</code> で囲んだ部分は「キャプチャグループ」となり、置換文字列側で <code>$1</code> <code>$2</code> として参照できます。</p>



<p>「姓 名」を「名 姓」に入れ替える例です。</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><code>(S+)</code> は「空白以外の1文字以上」をキャプチャするパターンで、置換文字列の <code>$2 $1</code> で順番を入れ替えています。慣れると応用が効くので、ぜひ覚えておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc23">日付のフォーマットを変換する</span></h3>



<p><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>「2026/04/09」→「09-04-2026」のように、年月日のパーツを順番入れ替えで出力できます。元データを壊さずに表示形式を変えたいときに便利ですよ。</p>



<h2 class="wp-block-heading"><span id="toc24">REGEXREPLACEとSUBSTITUTE関数の使い分け</span></h2>



<p>REGEXREPLACE関数とよく比較されるのがSUBSTITUTE関数です。どちらも「文字列置換」が目的ですが、得意分野が異なります。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>置換対象</th><th>向いているケース</th></tr></thead><tbody><tr><td>SUBSTITUTE</td><td>固定文字列</td><td>「-」を「」に、など決まった文字の置換</td></tr><tr><td>REGEXREPLACE</td><td>正規表現パターン</td><td>「数字全般」「記号全般」などのパターン置換</td></tr></tbody></table></figure>



<p>使い分けの目安は次のとおりです。</p>



<ul class="wp-block-list"><li><strong>固定文字列の置換</strong> → SUBSTITUTEが速くてシンプル</li><li><strong>パターンに基づく置換</strong> → REGEXREPLACEの独壇場</li><li><strong>複数の文字をまとめて消す</strong> → REGEXREPLACE（<code>[abc]</code> 形式）</li><li><strong>並び順の入れ替え</strong> → REGEXREPLACEのキャプチャグループ</li></ul>



<p>SUBSTITUTEは全バージョンのExcelで使えるのが強みです。共有ファイルで相手のバージョンが不明な場合は、SUBSTITUTEのネストで対応した方が安全な場面もありますよ。</p>



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



<p>REGEXREPLACE関数で表示されるエラーと対処法をまとめました。</p>



<h3 class="wp-block-heading"><span id="toc26">#VALUE! エラー</span></h3>



<p><strong>原因</strong>: 第2引数に無効な正規表現を指定した。または第1引数に数値や日付などの非文字列を直接渡した。</p>



<p><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="toc27">#NAME? エラー</span></h3>



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



<p><strong>対処法</strong>: Microsoft 365のサブスクリプションで最新版にアップデートしてください。Excel 2019・2021・LTSC 2024などでは使えません。関数名のスペルも確認しましょう。</p>



<h3 class="wp-block-heading"><span id="toc28">置換結果が意図と違う</span></h3>



<p><strong>原因</strong>: 正規表現の「貪欲マッチ」が想定より広く一致している。たとえば <code><.+></code> は <code><p>本文</p></code> 全体にマッチしてしまいます。</p>



<p><strong>対処法</strong>: <code>.+?</code>（最短マッチ）を使うか、<code>[^>]+</code> のように文字クラスで範囲を限定します。</p>



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



<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> を使う</td></tr></tbody></table></figure>



<p>エラーの原因はパターン記述ミスであることがほとんどです。落ち着いて数式を見直せば大丈夫ですよ。</p>



<h2 class="wp-block-heading"><span id="toc29">REGEXTEST・REGEXEXTRACTとの使い分け</span></h2>



<p>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>使い分けのイメージは次のとおりです。</p>



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



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



<p>姉妹記事として、<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関数をまとめて身につけると、データクレンジング作業がぐっと効率化されますよ。</p>



<h2 class="wp-block-heading"><span id="toc30">まとめ</span></h2>



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



<p>この記事のポイントを整理します。</p>



<ul class="wp-block-list"><li>構文は <code>=REGEXREPLACE(テキスト, 正規表現パターン, 置換文字列, [出現位置], [大文字小文字の区別])</code></li><li>Microsoft 365のサブスクリプションが必要</li><li>第4引数でN番目のマッチだけを置換することも可能</li><li>電話番号のハイフン除去・空白削除・HTMLタグ削除などデータクレンジングで大活躍</li><li><code>()</code> と <code>$1</code> <code>$2</code> のキャプチャグループで並び順の入れ替えもできる</li><li>固定文字列ならSUBSTITUTE、パターン置換ならREGEXREPLACEと使い分ける</li><li>姉妹関数にREGEXTEST（判定）とREGEXEXTRACT（抽出）がある</li></ul>



<p>まずは <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>
		<item>
		<title>スプレッドシートのREGEXEXTRACT関数の使い方｜正規表現で文字列を抽出</title>
		<link>https://mashukabu.com/spreadsheet-regexextract-function/</link>
					<comments>https://mashukabu.com/spreadsheet-regexextract-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 11:31:11 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[FIND関数]]></category>
		<category><![CDATA[MID関数]]></category>
		<category><![CDATA[REGEXEXTRACT関数]]></category>
		<category><![CDATA[REGEXMATCH関数]]></category>
		<category><![CDATA[REGEXREPLACE関数]]></category>
		<category><![CDATA[文字列操作]]></category>
		<category><![CDATA[正規表現]]></category>
		<category><![CDATA[関数の使い方]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4779</guid>

					<description><![CDATA[スプレッドシートのREGEXEXTRACT関数は、正規表現で文字列から必要な部分だけを抽出する関数です。メールアドレスからドメイン抽出、注文番号の取り出し、電話番号の分解など実務パターンや、MID+FINDとの比較、REGEXMATCH・REGEXREPLACEとの使い分けまで解説します。]]></description>
										<content:encoded><![CDATA[
<p>スプレッドシートで「住所から都道府県だけ取り出したい」「メールアドレスの@以降を抜き出したい」と思ったことはありませんか？ <a href="https://mashukabu.com/spreadsheet-mid-function/">MID関数</a>と<a href="https://mashukabu.com/spreadsheet-find-function/">FIND関数</a>を組み合わせれば文字の位置指定で抽出できます。でも、文字数がバラバラなデータには対応しきれないのが現実です。</p>



<p>REGEXEXTRACT関数を使えば、<strong>正規表現のパターンに一致する部分だけ</strong>をピンポイントで抽出できます。この記事ではREGEXEXTRACT関数の基本から実務パターンまで丁寧に解説しますね。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">REGEXEXTRACT関数とは？正規表現で文字列を抽出する関数</a><ol><li><a href="#toc2" tabindex="0">「正規表現」って何？</a></li></ol></li><li><a href="#toc3" tabindex="0">REGEXEXTRACT関数の書き方（構文と引数）</a><ol><li><a href="#toc4" tabindex="0">基本構文</a></li><li><a href="#toc5" tabindex="0">キャプチャグループ（括弧）の使い方</a></li></ol></li><li><a href="#toc6" tabindex="0">REGEXEXTRACT関数の基本的な使い方</a><ol><li><a href="#toc7" tabindex="0">数字だけを抽出する</a></li><li><a href="#toc8" tabindex="0">特定のパターンを抽出する</a></li><li><a href="#toc9" tabindex="0">複数のキャプチャグループで分割抽出する</a></li><li><a href="#toc10" tabindex="0">大文字・小文字を区別せずに抽出する</a></li></ol></li><li><a href="#toc11" tabindex="0">実務で使えるパターン集</a><ol><li><a href="#toc12" tabindex="0">メールアドレスからドメインを抽出する</a></li><li><a href="#toc13" tabindex="0">URLからドメイン名を抽出する</a></li><li><a href="#toc14" tabindex="0">住所から都道府県を抽出する</a></li><li><a href="#toc15" tabindex="0">電話番号からエリアコードを抽出する</a></li><li><a href="#toc16" tabindex="0">IFERROR関数と組み合わせてエラーを回避する</a></li><li><a href="#toc17" tabindex="0">ARRAYFORMULA関数と組み合わせて一括抽出する</a></li></ol></li><li><a href="#toc18" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc19" tabindex="0">数値セルで#VALUE!エラーになるケース</a></li><li><a href="#toc20" tabindex="0">パターン不一致で#N/Aエラーになるケース</a></li></ol></li><li><a href="#toc21" tabindex="0">MID+FIND関数との比較</a><ol><li><a href="#toc22" tabindex="0">同じ処理を両方で書いてみる</a></li><li><a href="#toc23" tabindex="0">比較表</a></li><li><a href="#toc24" tabindex="0">どちらを使うべき？</a></li></ol></li><li><a href="#toc25" tabindex="0">REGEXMATCH・REGEXREPLACEとの使い分け</a><ol><li><a href="#toc26" tabindex="0">具体例で比較</a></li></ol></li><li><a href="#toc27" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">REGEXEXTRACT関数とは？正規表現で文字列を抽出する関数</span></h2>



<p>REGEXEXTRACT関数は、セルの文字列から<strong>正規表現パターンに一致する部分を抽出</strong>して返す関数です。読み方は「レジェックスエクストラクト」。「Regex（正規表現）」+「Extract（抽出）」が語源です。</p>



<p>たとえば「tanaka@example.com」から <code>@(.+)</code> のパターンで抽出すると「example.com」が返ります。@以降のドメイン部分だけを取り出せるわけです。</p>



<p>REGEXEXTRACT関数は<strong>Googleスプレッドシート独自の関数</strong>で、Excelには存在しません。Excelで同じことをするにはVBAが必要です。スプレッドシートなら関数だけで正規表現抽出ができるのが大きな強みですよ。</p>



<h3 class="wp-block-heading"><span id="toc2">「正規表現」って何？</span></h3>



<p>正規表現とは、文字列のパターンを記号で表すルールです。たとえば <code>[0-9]+</code> は「1文字以上の数字」を意味します。最初はとっつきにくく感じるかもしれません。でも、よく使うパターンは決まっています。この記事で紹介するパターンをコピーして使えばOKです。正規表現の記号一覧は<a href="https://mashukabu.com/spreadsheet-regexmatch-function/">REGEXMATCH関数の記事</a>でまとめていますので、そちらも参考にしてください。</p>



<h2 class="wp-block-heading"><span id="toc3">REGEXEXTRACT関数の書き方（構文と引数）</span></h2>



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



<pre class="wp-block-code"><code>=REGEXEXTRACT(テキスト, 正規表現)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略可</th><th>説明</th></tr></thead><tbody><tr><td>テキスト</td><td>必須</td><td>抽出元の文字列またはセル参照</td></tr><tr><td>正規表現</td><td>必須</td><td>抽出したいパターンの正規表現</td></tr></tbody></table></figure>



<p>戻り値は<strong>パターンに一致した文字列</strong>です。一致する部分がなければ#N/Aエラーになります。</p>



<h3 class="wp-block-heading"><span id="toc5">キャプチャグループ（括弧）の使い方</span></h3>



<p>REGEXEXTRACT関数の正規表現に<strong>括弧 <code>()</code></strong> を使うと、括弧内に一致した部分だけを返します。これを「キャプチャグループ」と呼びます。</p>



<pre class="wp-block-code"><code>=REGEXEXTRACT(&quot;tanaka@example.com&quot;, &quot;@(.+)&quot;)
  → &quot;example.com&quot;（@の後ろだけを抽出）

=REGEXEXTRACT(&quot;tanaka@example.com&quot;, &quot;.+@(.+)&quot;)
  → &quot;example.com&quot;（同じ結果）

=REGEXEXTRACT(&quot;tanaka@example.com&quot;, &quot;(.+)@&quot;)
  → &quot;tanaka&quot;（@の前だけを抽出）</code></pre>



<p>括弧なしの場合はパターン全体に一致した文字列を返します。括弧ありの場合は括弧内の部分だけを返します。この違いがポイントですよ。</p>



<h2 class="wp-block-heading"><span id="toc6">REGEXEXTRACT関数の基本的な使い方</span></h2>



<h3 class="wp-block-heading"><span id="toc7">数字だけを抽出する</span></h3>



<p>セルA2に「商品コード: ABC-123」が入っているとします。</p>



<pre class="wp-block-code"><code>=REGEXEXTRACT(A2, &quot;[0-9]+&quot;)   → &quot;123&quot;（数字部分を抽出）
=REGEXEXTRACT(A2, &quot;[A-Z]+&quot;)   → &quot;ABC&quot;（英大文字部分を抽出）</code></pre>



<p><code>[0-9]+</code> は「1文字以上の数字」を意味します。最初に一致した部分が返ります。</p>



<h3 class="wp-block-heading"><span id="toc8">特定のパターンを抽出する</span></h3>



<p>セルA2に「受付番号: ORD-2024-0456」が入っているとします。</p>



<pre class="wp-block-code"><code>=REGEXEXTRACT(A2, &quot;ORD-d{4}-d{4}&quot;)
  → &quot;ORD-2024-0456&quot;（注文番号パターンを抽出）</code></pre>



<p><code>d{4}</code> は「数字がちょうど4桁」を意味します。パターン全体に一致する文字列がそのまま返ります。</p>



<h3 class="wp-block-heading"><span id="toc9">複数のキャプチャグループで分割抽出する</span></h3>



<p>括弧を複数使うと、それぞれのグループが<strong>別々のセルに展開</strong>されます。</p>



<p>セルA2に「山田太郎 03-1234-5678」が入っているとします。</p>



<pre class="wp-block-code"><code>=REGEXEXTRACT(A2, &quot;(.+)s(d{2,4}-d{1,4}-d{3,4})&quot;)
  → &quot;山田太郎&quot; と &quot;03-1234-5678&quot; が隣り合う2つのセルに展開</code></pre>



<p>名前と電話番号を一度に分割できるのが便利ですね。複数グループの結果は横方向のセルに出力されます。</p>



<h3 class="wp-block-heading"><span id="toc10">大文字・小文字を区別せずに抽出する</span></h3>



<p>REGEXEXTRACT関数はデフォルトで<strong>大文字と小文字を区別</strong>します。区別せずに抽出したいときは <code>(?i)</code> を先頭に付けます。</p>



<pre class="wp-block-code"><code>=REGEXEXTRACT(&quot;Hello World&quot;, &quot;(?i)hello&quot;)
  → &quot;Hello&quot;（大文字小文字を無視してマッチ・抽出）</code></pre>



<h2 class="wp-block-heading"><span id="toc11">実務で使えるパターン集</span></h2>



<h3 class="wp-block-heading"><span id="toc12">メールアドレスからドメインを抽出する</span></h3>



<p>顧客リストのメールアドレスからドメイン部分だけを取り出します。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>セルの値</th><th>結果</th><th>説明</th></tr></thead><tbody><tr><td>tanaka@example.com</td><td>example.com</td><td>@以降を抽出</td></tr><tr><td>sato@company.co.jp</td><td>company.co.jp</td><td>@以降を抽出</td></tr><tr><td>info@test.org</td><td>test.org</td><td>@以降を抽出</td></tr></tbody></table></figure>



<p>ドメイン別に顧客を集計したいときに便利です。<a href="https://mashukabu.com/spreadsheet-countif-function/">COUNTIF関数</a>と組み合わせれば、ドメイン別の件数集計もできます。</p>



<h3 class="wp-block-heading"><span id="toc13">URLからドメイン名を抽出する</span></h3>



<p>Webサイトの一覧からドメイン名だけを取り出します。</p>



<pre class="wp-block-code"><code>=REGEXEXTRACT(A2, &quot;https?://([^/]+)&quot;)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>セルの値</th><th>結果</th></tr></thead><tbody><tr><td>https://www.example.com/page</td><td>www.example.com</td></tr><tr><td>http://blog.test.jp/article/123</td><td>blog.test.jp</td></tr></tbody></table></figure>



<p><code>https?://</code> は「httpまたはhttps」を意味します。<code>([^/]+)</code> は「スラッシュ以外の文字が1文字以上」です。</p>



<h3 class="wp-block-heading"><span id="toc14">住所から都道府県を抽出する</span></h3>



<p>住所データから都道府県名だけを取り出します。</p>



<pre class="wp-block-code"><code>=REGEXEXTRACT(A2, &quot;^(.{2,3}[都道府県])&quot;)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>セルの値</th><th>結果</th></tr></thead><tbody><tr><td>東京都渋谷区神南1-2-3</td><td>東京都</td></tr><tr><td>神奈川県横浜市西区</td><td>神奈川県</td></tr><tr><td>大阪府大阪市北区</td><td>大阪府</td></tr><tr><td>北海道札幌市中央区</td><td>北海道</td></tr></tbody></table></figure>



<p><code>.{2,3}</code> は「任意の文字が2〜3文字」を意味します。「東京（2文字）」から「神奈川（3文字）」まで対応できます。</p>



<h3 class="wp-block-heading"><span id="toc15">電話番号からエリアコードを抽出する</span></h3>



<p>電話番号の先頭部分（エリアコード）だけを取り出します。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>セルの値</th><th>結果</th></tr></thead><tbody><tr><td>03-1234-5678</td><td>03</td></tr><tr><td>090-1234-5678</td><td>090</td></tr><tr><td>0120-123-456</td><td>0120</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc16">IFERROR関数と組み合わせてエラーを回避する</span></h3>



<p>REGEXEXTRACT関数はパターンに一致しないと#N/Aエラーを返します。<a href="https://mashukabu.com/spreadsheet-iferror-function/">IFERROR関数</a>で囲めばエラーを回避できます。</p>



<pre class="wp-block-code"><code>=IFERROR(REGEXEXTRACT(A2, &quot;@(.+)&quot;), &quot;ドメインなし&quot;)</code></pre>



<p>パターンに一致しないセルには「ドメインなし」と表示されます。一覧表で使うときは必ずIFERRORで囲むのがおすすめですよ。</p>



<h3 class="wp-block-heading"><span id="toc17">ARRAYFORMULA関数と組み合わせて一括抽出する</span></h3>



<p><a href="https://mashukabu.com/spreadsheet-arrayformula-function/">ARRAYFORMULA関数</a>と組み合わせれば、複数行を一括で処理できます。</p>



<pre class="wp-block-code"><code>=ARRAYFORMULA(IFERROR(REGEXEXTRACT(A2:A100, &quot;@(.+)&quot;), &quot;&quot;))</code></pre>



<p>この数式をB2セルに1つ入れるだけで、A2からA100までのメールアドレスからドメインを一括抽出できます。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>#N/A</td><td>パターンに一致する部分がない</td><td>IFERRORで囲む。正規表現の見直しも確認</td></tr><tr><td>#VALUE!</td><td>テキストが数値</td><td><code>=REGEXEXTRACT(TEXT(A2,"0"), "パターン")</code> で文字列に変換</td></tr><tr><td>#VALUE!</td><td>テキストが空セル</td><td><code>=IF(A2="", "", REGEXEXTRACT(A2, "パターン"))</code> で空チェック</td></tr><tr><td>#REF!</td><td>正規表現の構文エラー</td><td>括弧の閉じ忘れ・エスケープ漏れを確認</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc19">数値セルで#VALUE!エラーになるケース</span></h3>



<p>REGEXEXTRACT関数の第1引数は<strong>文字列</strong>が必要です。セルに数値が入っている場合は#VALUE!エラーです。</p>



<pre class="wp-block-code"><code>=REGEXEXTRACT(A2, &quot;d+&quot;)           → A2が数値だと #VALUE!
=REGEXEXTRACT(TEXT(A2, &quot;0&quot;), &quot;d+&quot;) → TEXT関数で文字列に変換すればOK</code></pre>



<p>数値から一部を抽出したい場合は、<a href="https://mashukabu.com/spreadsheet-text-function/">TEXT関数</a>で文字列に変換してから渡しましょう。</p>



<h3 class="wp-block-heading"><span id="toc20">パターン不一致で#N/Aエラーになるケース</span></h3>



<p><a href="https://mashukabu.com/spreadsheet-regexmatch-function/">REGEXMATCH関数</a>はパターン不一致でFALSEを返します。一方、REGEXEXTRACT関数は<strong>#N/Aエラー</strong>を返します。</p>



<pre class="wp-block-code"><code>=REGEXEXTRACT(&quot;abc&quot;, &quot;d+&quot;)  → #N/A（数字が含まれない）</code></pre>



<p>一覧表で使うときは <code>=IFERROR(REGEXEXTRACT(A2, "パターン"), "")</code> のようにIFERRORで囲むのが定番です。</p>



<h2 class="wp-block-heading"><span id="toc21">MID+FIND関数との比較</span></h2>



<p>文字列の抽出は<a href="https://mashukabu.com/spreadsheet-mid-function/">MID関数</a>と<a href="https://mashukabu.com/spreadsheet-find-function/">FIND関数</a>の組み合わせでもできます。REGEXEXTRACTとの違いを比較しましょう。</p>



<h3 class="wp-block-heading"><span id="toc22">同じ処理を両方で書いてみる</span></h3>



<p>メールアドレス「tanaka@example.com」から@以降を抽出する場合です。</p>



<p><strong>MID+FIND関数の場合:</strong></p>



<pre class="wp-block-code"><code>=MID(A2, FIND(&quot;@&quot;, A2)+1, LEN(A2)-FIND(&quot;@&quot;, A2))</code></pre>



<p><strong>REGEXEXTRACT関数の場合:</strong></p>



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



<p>REGEXEXTRACT関数のほうがシンプルですね。MID+FINDは「@の位置を探す→その後ろから末尾までを取る」と2段階の計算が必要です。</p>



<h3 class="wp-block-heading"><span id="toc23">比較表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>REGEXEXTRACT</th><th>MID + FIND</th></tr></thead><tbody><tr><td>数式の長さ</td><td>短い</td><td>長い（3関数の組み合わせ）</td></tr><tr><td>パターン抽出</td><td>得意（正規表現で柔軟）</td><td>苦手（固定位置のみ）</td></tr><tr><td>可変長データ</td><td>対応できる</td><td>文字数計算が必要</td></tr><tr><td>複数パターン</td><td>1つの数式で対応</td><td>複数のFINDが必要</td></tr><tr><td>Excel互換</td><td>なし（Sheets独自）</td><td>あり</td></tr><tr><td>学習コスト</td><td>正規表現の知識が必要</td><td>低い</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc24">どちらを使うべき？</span></h3>



<ul class="wp-block-list"><li><strong>固定位置から切り出す</strong>（左から3文字、5文字目から8文字）→ <a href="https://mashukabu.com/spreadsheet-mid-function/">MID関数</a>・<a href="https://mashukabu.com/spreadsheet-left-function/">LEFT関数</a>・<a href="https://mashukabu.com/spreadsheet-right-function/">RIGHT関数</a>で十分</li><li><strong>パターンで抽出する</strong>（メールのドメイン、URLのパス）→ <strong>REGEXEXTRACT関数</strong>一択</li><li><strong>Excelとの互換性が必要</strong> → MID + FINDを使う</li></ul>



<p>データの形式がバラバラなときほど、REGEXEXTRACT関数の威力を発揮します。</p>



<h2 class="wp-block-heading"><span id="toc25">REGEXMATCH・REGEXREPLACEとの使い分け</span></h2>



<p>スプレッドシートには正規表現を使う関数が3つあります。目的で使い分けましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>目的</th><th>戻り値</th><th>使用例</th></tr></thead><tbody><tr><td><a href="https://mashukabu.com/spreadsheet-regexmatch-function/">REGEXMATCH</a></td><td>パターンに<strong>一致するか判定</strong></td><td>TRUE / FALSE</td><td>入力チェック、条件分岐</td></tr><tr><td>REGEXEXTRACT</td><td>パターンに一致する部分を<strong>抽出</strong></td><td>一致した文字列</td><td>ドメイン抽出、番号取り出し</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-regexreplace-function/">REGEXREPLACE</a></td><td>パターンに一致する部分を<strong>置換</strong></td><td>置換後の文字列</td><td>ハイフン除去、書式統一</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc26">具体例で比較</span></h3>



<p>セルA2に「注文番号: ORD-2024-0123」が入っているとします。</p>



<pre class="wp-block-code"><code>=REGEXMATCH(A2, &quot;ORD-d{4}-d{4}&quot;)
  → TRUE（注文番号パターンに一致するか判定）

=REGEXEXTRACT(A2, &quot;ORD-d{4}-d{4}&quot;)
  → &quot;ORD-2024-0123&quot;（注文番号部分を抽出）

=REGEXREPLACE(A2, &quot;ORD-&quot;, &quot;&quot;)
  → &quot;注文番号: 2024-0123&quot;（「ORD-」を除去）</code></pre>



<p><strong>判定</strong>は<a href="https://mashukabu.com/spreadsheet-regexmatch-function/">REGEXMATCH</a>、<strong>抽出</strong>はREGEXEXTRACT、<strong>置換</strong>はREGEXREPLACEと覚えておきましょう。</p>



<h2 class="wp-block-heading"><span id="toc27">まとめ</span></h2>



<p>REGEXEXTRACT関数は、正規表現でパターンに一致する部分を抽出できるスプレッドシート独自の関数です。</p>



<ul class="wp-block-list"><li><strong>基本</strong>: <code>=REGEXEXTRACT(テキスト, 正規表現)</code> で一致部分を返す</li><li><strong>キャプチャグループ</strong>: 括弧 <code>()</code> で囲んだ部分だけを抽出できる</li><li><strong>実務活用</strong>: ドメイン抽出・都道府県抽出・番号分解に最適</li><li><strong>エラー対策</strong>: パターン不一致は#N/Aエラー。IFERRORで囲むのが定番</li><li><strong>使い分け</strong>: 判定はREGEXMATCH、抽出はREGEXEXTRACT、置換はREGEXREPLACE</li></ul>



<p>MID+FINDでは書ききれないパターン抽出が必要なとき、ぜひ活用してみてください。正規表現の基本は<a href="https://mashukabu.com/spreadsheet-regexmatch-function/">REGEXMATCH関数の記事</a>でまとめています。そちらも合わせてチェックしてみてくださいね。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-regexextract-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのREGEXMATCH関数の使い方｜正規表現でパターン判定</title>
		<link>https://mashukabu.com/spreadsheet-regexmatch-function/</link>
					<comments>https://mashukabu.com/spreadsheet-regexmatch-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 11:31:06 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[FIND関数]]></category>
		<category><![CDATA[REGEXEXTRACT関数]]></category>
		<category><![CDATA[REGEXMATCH関数]]></category>
		<category><![CDATA[REGEXREPLACE関数]]></category>
		<category><![CDATA[SEARCH関数]]></category>
		<category><![CDATA[文字列操作]]></category>
		<category><![CDATA[正規表現]]></category>
		<category><![CDATA[関数の使い方]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4777</guid>

					<description><![CDATA[スプレッドシートのREGEXMATCH関数は、正規表現でセルの文字列がパターンに一致するかをTRUE/FALSEで返す関数です。メールアドレス・電話番号の判定パターンや、REGEXEXTRACT・REGEXREPLACEとの使い分け、SEARCH/FINDとの違いまで解説します。]]></description>
										<content:encoded><![CDATA[
<p>スプレッドシートでデータの入力チェックをしたいことはありませんか？「メールアドレスの形式になっているか」「電話番号が正しいパターンか」を確認したい場面は多いですよね。<a href="https://mashukabu.com/spreadsheet-search-function/">SEARCH関数</a>や<a href="https://mashukabu.com/spreadsheet-find-function/">FIND関数</a>では単純な文字検索しかできません。複雑なパターンには対応しきれないのが現実です。</p>



<p>REGEXMATCH関数を使えば、<strong>正規表現</strong>で文字列のパターンを判定できます。この記事ではREGEXMATCH関数の基本から実務パターンまで丁寧に解説します。REGEXEXTRACT・REGEXREPLACEとの使い分けもカバーしますね。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-5" checked><label class="toc-title" for="toc-checkbox-5">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">REGEXMATCH関数とは？正規表現でパターン判定する関数</a><ol><li><a href="#toc2" tabindex="0">「正規表現」って何？</a></li></ol></li><li><a href="#toc3" tabindex="0">REGEXMATCH関数の書き方（構文と引数）</a><ol><li><a href="#toc4" tabindex="0">基本構文</a></li><li><a href="#toc5" tabindex="0">正規表現の基本記号</a></li></ol></li><li><a href="#toc6" tabindex="0">基本的な使い方</a><ol><li><a href="#toc7" tabindex="0">特定の文字列が含まれるかを判定する</a></li><li><a href="#toc8" tabindex="0">数字が含まれるかを判定する</a></li><li><a href="#toc9" tabindex="0">大文字・小文字を区別せずに判定する</a></li></ol></li><li><a href="#toc10" tabindex="0">実務で使えるパターン集</a><ol><li><a href="#toc11" tabindex="0">メールアドレスの形式チェック</a></li><li><a href="#toc12" tabindex="0">電話番号の形式チェック</a></li><li><a href="#toc13" tabindex="0">郵便番号の形式チェック</a></li><li><a href="#toc14" tabindex="0">IF関数と組み合わせてラベルを付ける</a></li></ol></li><li><a href="#toc15" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc16" tabindex="0">数値セルで#VALUE!エラーになるケース</a></li><li><a href="#toc17" tabindex="0">正規表現の特殊文字をエスケープし忘れるケース</a></li></ol></li><li><a href="#toc18" tabindex="0">REGEXEXTRACT・REGEXREPLACEとの使い分け</a><ol><li><a href="#toc19" tabindex="0">具体例で比較</a></li></ol></li><li><a href="#toc20" tabindex="0">SEARCH・FIND関数との違い</a><ol><li><a href="#toc21" tabindex="0">どれを使うべき？</a></li></ol></li><li><a href="#toc22" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">REGEXMATCH関数とは？正規表現でパターン判定する関数</span></h2>



<p>REGEXMATCH関数は、セルの文字列が<strong>指定した正規表現パターンに一致するか</strong>をTRUE/FALSEで返す関数です。読み方は「レジェックスマッチ」。「Regex（正規表現）」+「Match（一致）」が語源です。</p>



<p>たとえば「tanaka@example.com」というセルに対して、メールアドレスのパターンで検索すればTRUEが返ります。「tanaka」のように@がない文字列ならFALSEです。</p>



<p>REGEXMATCH関数は<strong>Googleスプレッドシート独自の関数</strong>で、Excelには存在しません。Excelで同じことをするにはVBAが必要です。スプレッドシートなら関数だけで正規表現が使えるのが大きな強みですよ。</p>



<h3 class="wp-block-heading"><span id="toc2">「正規表現」って何？</span></h3>



<p>正規表現とは、文字列のパターンを記号で表すルールです。たとえば <code>[0-9]+</code> は「1文字以上の数字」を意味します。最初はとっつきにくく感じるかもしれません。でも、よく使うパターンは決まっています。この記事で紹介するパターンをコピーして使えばOKです。</p>



<h2 class="wp-block-heading"><span id="toc3">REGEXMATCH関数の書き方（構文と引数）</span></h2>



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



<pre class="wp-block-code"><code>=REGEXMATCH(テキスト, 正規表現)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略可</th><th>説明</th></tr></thead><tbody><tr><td>テキスト</td><td>必須</td><td>判定したい文字列またはセル参照</td></tr><tr><td>正規表現</td><td>必須</td><td>判定に使う正規表現パターン</td></tr></tbody></table></figure>



<p>戻り値はTRUEまたはFALSEです。テキストの中にパターンと一致する部分が<strong>1箇所でもあればTRUE</strong>を返します。なければFALSEです。</p>



<h3 class="wp-block-heading"><span id="toc5">正規表現の基本記号</span></h3>



<p>REGEXMATCH関数で使う正規表現の記号を押さえておきましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>記号</th><th>意味</th><th>例</th><th>マッチする文字列</th></tr></thead><tbody><tr><td><code>.</code></td><td>任意の1文字</td><td><code>a.c</code></td><td>abc, aXc, a1c</td></tr><tr><td><code>*</code></td><td>直前の文字が0回以上</td><td><code>ab*c</code></td><td>ac, abc, abbc</td></tr><tr><td><code>+</code></td><td>直前の文字が1回以上</td><td><code>ab+c</code></td><td>abc, abbc（acは不可）</td></tr><tr><td><code>?</code></td><td>直前の文字が0回か1回</td><td><code>ab?c</code></td><td>ac, abc</td></tr><tr><td><code>^</code></td><td>文字列の先頭</td><td><code>^東京</code></td><td>東京都、東京タワー</td></tr><tr><td><code>$</code></td><td>文字列の末尾</td><td><code>.com$</code></td><td>example.com</td></tr><tr><td><code>[abc]</code></td><td>いずれか1文字</td><td><code>[abc]</code></td><td>a, b, c</td></tr><tr><td><code>[0-9]</code></td><td>数字1文字</td><td><code>[0-9]+</code></td><td>123, 45</td></tr><tr><td><code>[a-zA-Z]</code></td><td>英字1文字</td><td><code>[a-zA-Z]+</code></td><td>Hello, abc</td></tr><tr><td><code>d</code></td><td>数字（[0-9]と同じ）</td><td><code>d{3}</code></td><td>123, 456</td></tr><tr><td><code>{n}</code></td><td>ちょうどn回</td><td><code>d{3}</code></td><td>123（12は不可）</td></tr><tr><td><code>{n,m}</code></td><td>n回以上m回以下</td><td><code>d{2,4}</code></td><td>12, 123, 1234</td></tr><tr><td>`</td><td>`</td><td>または</td><td>`東京</td><td>大阪`</td><td>東京、大阪</td></tr><tr><td><code>()</code></td><td>グループ化</td><td><code>(ab)+</code></td><td>ab, abab</td></tr></tbody></table></figure>



<p>ピリオド <code>.</code> やプラス <code>+</code> など、正規表現で特別な意味を持つ文字があります。これらをそのまま検索したい場合は、前にバックスラッシュ <code></code> を付けてください。たとえばピリオドそのものを探すなら <code>.</code> と書きます。</p>



<h2 class="wp-block-heading"><span id="toc6">基本的な使い方</span></h2>



<h3 class="wp-block-heading"><span id="toc7">特定の文字列が含まれるかを判定する</span></h3>



<p>セルA2に「東京都渋谷区」が入っているとします。</p>



<pre class="wp-block-code"><code>=REGEXMATCH(A2, &quot;東京&quot;)   → TRUE（「東京」が含まれる）
=REGEXMATCH(A2, &quot;大阪&quot;)   → FALSE（「大阪」は含まれない）
=REGEXMATCH(A2, &quot;渋谷|新宿&quot;)  → TRUE（「渋谷」が含まれる）</code></pre>



<p>単純な文字列検索なら<a href="https://mashukabu.com/spreadsheet-search-function/">SEARCH関数</a>でもできます。REGEXMATCH関数の真価は、次のようなパターン検索にあります。</p>



<h3 class="wp-block-heading"><span id="toc8">数字が含まれるかを判定する</span></h3>



<p>セルA2に「ABC-123」が入っているとします。</p>



<pre class="wp-block-code"><code>=REGEXMATCH(A2, &quot;[0-9]&quot;)     → TRUE（数字が含まれる）
=REGEXMATCH(A2, &quot;^[0-9]+$&quot;)  → FALSE（全体が数字ではない）</code></pre>



<p><code>[0-9]</code> は「数字が1文字でもあるか」の判定です。<code>^[0-9]+$</code> にすると「すべて数字か」の判定になります。<code>^</code>（先頭）と <code>$</code>（末尾）で全体を囲むのがポイントですよ。</p>



<h3 class="wp-block-heading"><span id="toc9">大文字・小文字を区別せずに判定する</span></h3>



<p>REGEXMATCH関数はデフォルトで<strong>大文字と小文字を区別</strong>します。区別せずに判定したいときは <code>(?i)</code> を先頭に付けます。</p>



<pre class="wp-block-code"><code>=REGEXMATCH(A2, &quot;tokyo&quot;)      → FALSE（小文字のtokyoは不一致）
=REGEXMATCH(A2, &quot;(?i)tokyo&quot;)  → TRUE（大文字小文字を無視してマッチ）</code></pre>



<p><code>(?i)</code> は「case-insensitive（大文字小文字を無視）」のフラグです。英語データを扱うときに便利ですね。</p>



<h2 class="wp-block-heading"><span id="toc10">実務で使えるパターン集</span></h2>



<h3 class="wp-block-heading"><span id="toc11">メールアドレスの形式チェック</span></h3>



<p>入力されたデータがメールアドレスの形式になっているかを判定します。</p>



<pre class="wp-block-code"><code>=REGEXMATCH(A2, &quot;^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$&quot;)</code></pre>



<p>この正規表現は「英数字@英数字.英字2文字以上」のパターンです。完璧な検証ではありませんが、入力ミスの検出には十分使えます。</p>



<figure class="wp-block-table"><table><thead><tr><th>セルの値</th><th>結果</th><th>理由</th></tr></thead><tbody><tr><td>tanaka@example.com</td><td>TRUE</td><td>正しい形式</td></tr><tr><td>tanaka@example</td><td>FALSE</td><td>ドメインにピリオドがない</td></tr><tr><td>tanaka.example.com</td><td>FALSE</td><td>@がない</td></tr><tr><td>@example.com</td><td>FALSE</td><td>ローカル部分がない</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc12">電話番号の形式チェック</span></h3>



<p>日本の電話番号パターン（ハイフンあり・なし両対応）を判定します。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>セルの値</th><th>結果</th><th>理由</th></tr></thead><tbody><tr><td>03-1234-5678</td><td>TRUE</td><td>固定電話（ハイフンあり）</td></tr><tr><td>09012345678</td><td>TRUE</td><td>携帯電話（ハイフンなし）</td></tr><tr><td>090-1234-5678</td><td>TRUE</td><td>携帯電話（ハイフンあり）</td></tr><tr><td>1234-5678</td><td>FALSE</td><td>先頭が0でない</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc13">郵便番号の形式チェック</span></h3>



<p>「123-4567」または「1234567」の形式を判定します。</p>



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



<p><code>-?</code> は「ハイフンが0回か1回」を意味します。ハイフンあり・なしの両方に対応できるのが便利ですね。</p>



<h3 class="wp-block-heading"><span id="toc14">IF関数と組み合わせてラベルを付ける</span></h3>



<p>REGEXMATCH関数はTRUE/FALSEを返します。<a href="https://mashukabu.com/spreadsheet-if-function/">IF関数</a>と組み合わせれば条件分岐に使えます。</p>



<pre class="wp-block-code"><code>=IF(REGEXMATCH(A2, &quot;@&quot;), &quot;メールアドレス&quot;, &quot;その他&quot;)</code></pre>



<p><a href="https://mashukabu.com/spreadsheet-filter-function/">FILTER関数</a>と組み合わせれば、パターンに合致する行だけの抽出も可能です。</p>



<pre class="wp-block-code"><code>=FILTER(A2:B10, REGEXMATCH(A2:A10, &quot;東京|大阪&quot;))</code></pre>



<p>この数式は、A列に「東京」または「大阪」を含む行だけをA:B列から抽出します。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>#VALUE!</td><td>テキストが数値</td><td><code>=REGEXMATCH(TEXT(A2,"0"), "パターン")</code> で文字列に変換</td></tr><tr><td>#VALUE!</td><td>テキストが空セル</td><td><code>=IF(A2="", FALSE, REGEXMATCH(A2, "パターン"))</code> で空チェック</td></tr><tr><td>#REF!</td><td>正規表現の構文エラー</td><td>括弧の閉じ忘れ・エスケープ漏れを確認</td></tr><tr><td>期待と逆の結果</td><td>部分一致と完全一致の混同</td><td>完全一致なら <code>^パターン$</code> で囲む</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc16">数値セルで#VALUE!エラーになるケース</span></h3>



<p>REGEXMATCH関数の第1引数は<strong>文字列</strong>が必要です。セルに数値が入っている場合は#VALUE!エラーになります。</p>



<pre class="wp-block-code"><code>=REGEXMATCH(A2, &quot;d+&quot;)           → A2が数値だと #VALUE!
=REGEXMATCH(TEXT(A2, &quot;0&quot;), &quot;d+&quot;) → TEXT関数で文字列に変換すればOK</code></pre>



<p>数値にパターン判定をしたい場合は、<a href="https://mashukabu.com/spreadsheet-text-function/">TEXT関数</a>で文字列に変換してから渡しましょう。</p>



<h3 class="wp-block-heading"><span id="toc17">正規表現の特殊文字をエスケープし忘れるケース</span></h3>



<p>ピリオド <code>.</code>、括弧 <code>()</code>、プラス <code>+</code> などは正規表現の特殊文字です。これらの文字そのものを検索したい場合は <code></code> でエスケープしてください。</p>



<pre class="wp-block-code"><code>=REGEXMATCH(A2, &quot;.&quot;)     → 任意の1文字にマッチ（ほぼ常にTRUE）
=REGEXMATCH(A2, &quot;.&quot;)    → ピリオドそのものにマッチ</code></pre>



<h2 class="wp-block-heading"><span id="toc18">REGEXEXTRACT・REGEXREPLACEとの使い分け</span></h2>



<p>スプレッドシートには正規表現を使う関数が3つあります。目的で使い分けましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>目的</th><th>戻り値</th><th>使用例</th></tr></thead><tbody><tr><td>REGEXMATCH</td><td>パターンに<strong>一致するか判定</strong></td><td>TRUE / FALSE</td><td>入力チェック、条件分岐</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-regexextract-function/">REGEXEXTRACT</a></td><td>パターンに一致する部分を<strong>抽出</strong></td><td>一致した文字列</td><td>メールアドレスからドメイン抽出</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-regexreplace-function/">REGEXREPLACE</a></td><td>パターンに一致する部分を<strong>置換</strong></td><td>置換後の文字列</td><td>電話番号のハイフン除去</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc19">具体例で比較</span></h3>



<p>セルA2に「注文番号: ORD-2024-0123」が入っているとします。</p>



<pre class="wp-block-code"><code>=REGEXMATCH(A2, &quot;ORD-d{4}-d{4}&quot;)
  → TRUE（注文番号パターンに一致するか判定）

=REGEXEXTRACT(A2, &quot;ORD-d{4}-d{4}&quot;)
  → &quot;ORD-2024-0123&quot;（注文番号部分を抽出）

=REGEXREPLACE(A2, &quot;ORD-&quot;, &quot;&quot;)
  → &quot;注文番号: 2024-0123&quot;（「ORD-」を除去）</code></pre>



<p><strong>判定</strong>はREGEXMATCH、<strong>抽出</strong>はREGEXEXTRACT、<strong>置換</strong>はREGEXREPLACEと覚えておきましょう。</p>



<h2 class="wp-block-heading"><span id="toc20">SEARCH・FIND関数との違い</span></h2>



<p><a href="https://mashukabu.com/spreadsheet-search-function/">SEARCH関数</a>や<a href="https://mashukabu.com/spreadsheet-find-function/">FIND関数</a>でも文字列検索はできます。REGEXMATCH関数との違いを整理しましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>REGEXMATCH</th><th>SEARCH</th><th>FIND</th></tr></thead><tbody><tr><td>戻り値</td><td>TRUE/FALSE</td><td>文字位置（数値）</td><td>文字位置（数値）</td></tr><tr><td>正規表現</td><td>使える</td><td>使えない</td><td>使えない</td></tr><tr><td>ワイルドカード</td><td>不要（正規表現で代替）</td><td><code>*</code> <code>?</code> が使える</td><td>使えない</td></tr><tr><td>大文字小文字</td><td>区別する（<code>(?i)</code> で無視可）</td><td>区別しない</td><td>区別する</td></tr><tr><td>不一致時</td><td>FALSE</td><td>#VALUE!エラー</td><td>#VALUE!エラー</td></tr><tr><td>Excel互換</td><td>なし（Sheets独自）</td><td>あり</td><td>あり</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc21">どれを使うべき？</span></h3>



<ul class="wp-block-list"><li><strong>単純な文字検索</strong>（「東京」が含まれるか）→ <a href="https://mashukabu.com/spreadsheet-search-function/">SEARCH関数</a> + ISNUMBER で十分</li><li><strong>パターン検索</strong>（「数字3桁-数字4桁」の形式か）→ <strong>REGEXMATCH関数</strong>一択</li><li><strong>大文字小文字を厳密に区別した検索</strong> → <a href="https://mashukabu.com/spreadsheet-find-function/">FIND関数</a></li></ul>



<p>正規表現が使えるかどうかが最大の違いです。「特定の文字があるか」だけならSEARCH/FINDで十分です。「パターンに合致するか」を判定したいならREGEXMATCH関数を選びましょう。</p>



<h2 class="wp-block-heading"><span id="toc22">まとめ</span></h2>



<p>REGEXMATCH関数は、正規表現でパターン判定ができるスプレッドシート独自の関数です。</p>



<ul class="wp-block-list"><li><strong>基本</strong>: <code>=REGEXMATCH(テキスト, 正規表現)</code> でTRUE/FALSEを返す</li><li><strong>実務活用</strong>: メールアドレス・電話番号・郵便番号の入力チェックに最適</li><li><strong>使い分け</strong>: 判定はREGEXMATCH、抽出はREGEXEXTRACT、置換はREGEXREPLACE</li><li><strong>注意点</strong>: 数値セルはTEXT関数で文字列に変換してから渡す</li></ul>



<p>SEARCH/FIND関数では対応できないパターン判定が必要なとき、ぜひ活用してみてください。正規表現は最初はとっつきにくいかもしれません。でも、この記事のパターンをコピーして使うだけでも業務効率がぐっと上がりますよ。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-regexmatch-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのREGEXREPLACE関数の使い方｜正規表現で文字列を置換</title>
		<link>https://mashukabu.com/spreadsheet-regexreplace-function/</link>
					<comments>https://mashukabu.com/spreadsheet-regexreplace-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 11:31:01 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[REGEXEXTRACT関数]]></category>
		<category><![CDATA[REGEXMATCH関数]]></category>
		<category><![CDATA[REGEXREPLACE関数]]></category>
		<category><![CDATA[SUBSTITUTE関数]]></category>
		<category><![CDATA[文字列操作]]></category>
		<category><![CDATA[正規表現]]></category>
		<category><![CDATA[関数の使い方]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4775</guid>

					<description><![CDATA[スプレッドシートのREGEXREPLACE関数は、正規表現で文字列を一括置換できる関数です。電話番号のハイフン除去、不要な空白の一括削除、データの書式統一など実務パターンや、SUBSTITUTEとの違い、REGEXMATCH・REGEXEXTRACTとの使い分けまで解説します。]]></description>
										<content:encoded><![CDATA[
<p>スプレッドシートで「電話番号のハイフンをまとめて消したい」「余分なスペースを一括で削除したい」と思ったことはありませんか？ <a href="https://mashukabu.com/spreadsheet-substitute-function/">SUBSTITUTE関数</a>なら特定の文字を置換できます。でも、「数字だけ消す」「2つ以上の連続スペースを1つにする」といったパターン指定の置換には対応できません。</p>



<p>REGEXREPLACE関数を使えば、<strong>正規表現のパターンに一致する部分をまとめて置換</strong>できます。この記事ではREGEXREPLACE関数の基本から実務パターンまで丁寧に解説しますね。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-6" checked><label class="toc-title" for="toc-checkbox-6">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">REGEXREPLACE関数とは？正規表現で文字列を置換する関数</a><ol><li><a href="#toc2" tabindex="0">「正規表現」って何？</a></li></ol></li><li><a href="#toc3" tabindex="0">REGEXREPLACE関数の書き方（構文と引数）</a><ol><li><a href="#toc4" tabindex="0">基本構文</a></li><li><a href="#toc5" tabindex="0">後方参照（キャプチャグループの再利用）</a></li></ol></li><li><a href="#toc6" tabindex="0">REGEXREPLACE関数の基本的な使い方</a><ol><li><a href="#toc7" tabindex="0">特定の文字を削除する</a></li><li><a href="#toc8" tabindex="0">数字だけを削除する</a></li><li><a href="#toc9" tabindex="0">特定の文字を別の文字に置換する</a></li><li><a href="#toc10" tabindex="0">大文字・小文字を区別せずに置換する</a></li></ol></li><li><a href="#toc11" tabindex="0">実務で使えるパターン集</a><ol><li><a href="#toc12" tabindex="0">電話番号のハイフンを一括削除する</a></li><li><a href="#toc13" tabindex="0">余分なスペースを1つにまとめる</a></li><li><a href="#toc14" tabindex="0">数字以外をすべて削除する</a></li><li><a href="#toc15" tabindex="0">8桁の数字を日付形式に変換する</a></li><li><a href="#toc16" tabindex="0">HTMLタグを一括除去する</a></li><li><a href="#toc17" tabindex="0">ARRAYFORMULA関数と組み合わせて一括置換する</a></li></ol></li><li><a href="#toc18" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc19" tabindex="0">数値セルで#VALUE!エラーになるケース</a></li><li><a href="#toc20" tabindex="0">正規表現の特殊文字をエスケープし忘れるケース</a></li></ol></li><li><a href="#toc21" tabindex="0">SUBSTITUTE関数との違い</a><ol><li><a href="#toc22" tabindex="0">同じ処理を両方で書いてみる</a></li><li><a href="#toc23" tabindex="0">比較表</a></li><li><a href="#toc24" tabindex="0">どちらを使うべき？</a></li></ol></li><li><a href="#toc25" tabindex="0">REGEXMATCH・REGEXEXTRACTとの使い分け</a><ol><li><a href="#toc26" tabindex="0">具体例で比較</a></li></ol></li><li><a href="#toc27" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



<p>REGEXREPLACE関数は、セルの文字列から<strong>正規表現パターンに一致する部分を別の文字列に置換</strong>して返す関数です。読み方は「レジェックスリプレイス」。「Regex（正規表現）」+「Replace（置換）」が語源です。</p>



<p>たとえば「03-1234-5678」に対して <code>-</code> のパターンで空文字に置換すると「0312345678」が返ります。ハイフンをまとめて除去できるわけです。</p>



<p>REGEXREPLACE関数は<strong>Googleスプレッドシート独自の関数</strong>で、Excelには存在しません。Excelで同じことをするにはVBAが必要です。スプレッドシートなら関数だけで正規表現の置換ができるのが大きな強みですよ。</p>



<h3 class="wp-block-heading"><span id="toc2">「正規表現」って何？</span></h3>



<p>正規表現とは、文字列のパターンを記号で表すルールです。たとえば <code>[0-9]+</code> は「1文字以上の数字」を意味します。最初はとっつきにくく感じるかもしれません。でも、よく使うパターンは決まっています。この記事で紹介するパターンをコピーして使えばOKです。正規表現の記号一覧は<a href="https://mashukabu.com/spreadsheet-regexmatch-function/">REGEXMATCH関数の記事</a>でまとめていますので、そちらも参考にしてください。</p>



<h2 class="wp-block-heading"><span id="toc3">REGEXREPLACE関数の書き方（構文と引数）</span></h2>



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



<pre class="wp-block-code"><code>=REGEXREPLACE(テキスト, 正規表現, 置換文字列)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略可</th><th>説明</th></tr></thead><tbody><tr><td>テキスト</td><td>必須</td><td>置換対象の文字列またはセル参照</td></tr><tr><td>正規表現</td><td>必須</td><td>置換したいパターンの正規表現</td></tr><tr><td>置換文字列</td><td>必須</td><td>一致部分を置き換える文字列（空文字 <code>""</code> で削除）</td></tr></tbody></table></figure>



<p>戻り値は<strong>置換後の文字列</strong>です。パターンに一致する部分がなければ元の文字列がそのまま返ります。エラーにはならないのがREGEXEXTRACTとの違いです。</p>



<h3 class="wp-block-heading"><span id="toc5">後方参照（キャプチャグループの再利用）</span></h3>



<p>正規表現の括弧 <code>()</code> でキャプチャした部分を、置換文字列の中で <code>$1</code>、<code>$2</code> のように参照できます。これを「後方参照」と呼びます。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(&quot;20240315&quot;, &quot;(d{4})(d{2})(d{2})&quot;, &quot;$1/$2/$3&quot;)
  → &quot;2024/03/15&quot;（8桁の数字を日付形式に変換）</code></pre>



<p><code>$1</code> は1番目の括弧、<code>$2</code> は2番目の括弧に一致した部分です。この仕組みを使えば「削除」だけでなく「並べ替え」や「書式変換」もできますよ。</p>



<h2 class="wp-block-heading"><span id="toc6">REGEXREPLACE関数の基本的な使い方</span></h2>



<h3 class="wp-block-heading"><span id="toc7">特定の文字を削除する</span></h3>



<p>セルA2に「03-1234-5678」が入っているとします。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(A2, &quot;-&quot;, &quot;&quot;)   → &quot;0312345678&quot;（ハイフンを削除）</code></pre>



<p>第3引数を空文字 <code>""</code> にすると、一致した部分が削除されます。REGEXREPLACE関数はパターンに一致する部分を<strong>すべて</strong>置換します。ハイフンが2つあっても、両方とも一度に消えますよ。</p>



<h3 class="wp-block-heading"><span id="toc8">数字だけを削除する</span></h3>



<p>セルA2に「ABC-123-DEF」が入っているとします。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(A2, &quot;[0-9]&quot;, &quot;&quot;)   → &quot;ABC--DEF&quot;（数字だけ削除）
=REGEXREPLACE(A2, &quot;[0-9-]&quot;, &quot;&quot;)  → &quot;ABCDEF&quot;（数字とハイフンを削除）</code></pre>



<p><code>[0-9]</code> は「数字1文字」を意味します。角括弧の中にハイフンも入れれば、まとめて削除できます。</p>



<h3 class="wp-block-heading"><span id="toc9">特定の文字を別の文字に置換する</span></h3>



<p>セルA2に「2024/03/15」が入っているとします。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(A2, &quot;/&quot;, &quot;-&quot;)   → &quot;2024-03-15&quot;（スラッシュをハイフンに変換）</code></pre>



<p>単純な文字置換なら<a href="https://mashukabu.com/spreadsheet-substitute-function/">SUBSTITUTE関数</a>でもできます。REGEXREPLACE関数の真価は、次のようなパターン置換にあります。</p>



<h3 class="wp-block-heading"><span id="toc10">大文字・小文字を区別せずに置換する</span></h3>



<p>REGEXREPLACE関数はデフォルトで<strong>大文字と小文字を区別</strong>します。区別せずに置換したいときは <code>(?i)</code> を先頭に付けます。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(&quot;Hello World&quot;, &quot;(?i)hello&quot;, &quot;Hi&quot;)
  → &quot;Hi World&quot;（大文字小文字を無視して置換）</code></pre>



<p><code>(?i)</code> は「case-insensitive（大文字小文字を無視）」のフラグです。英語データを扱うときに便利ですね。</p>



<h2 class="wp-block-heading"><span id="toc11">実務で使えるパターン集</span></h2>



<h3 class="wp-block-heading"><span id="toc12">電話番号のハイフンを一括削除する</span></h3>



<p>電話番号からハイフンやスペースを取り除いて数字だけにします。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>セルの値</th><th>結果</th><th>説明</th></tr></thead><tbody><tr><td>03-1234-5678</td><td>0312345678</td><td>ハイフンを除去</td></tr><tr><td>090 1234 5678</td><td>09012345678</td><td>スペースを除去</td></tr><tr><td>090-1234-5678</td><td>09012345678</td><td>ハイフンを除去</td></tr></tbody></table></figure>



<p><code>s</code> は「空白文字（スペース・タブなど）」を意味します。<code>[-s]</code> でハイフンと空白をまとめて指定できます。</p>



<h3 class="wp-block-heading"><span id="toc13">余分なスペースを1つにまとめる</span></h3>



<p>データの中に連続スペースが混在しているとき、すべて1つのスペースに統一します。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>セルの値</th><th>結果</th></tr></thead><tbody><tr><td>山田　　太郎</td><td>山田 太郎</td></tr><tr><td>東京都　 　渋谷区</td><td>東京都 渋谷区</td></tr></tbody></table></figure>



<p><code>s{2,}</code> は「空白文字が2つ以上連続」を意味します。これを1つのスペースに置換するわけです。<a href="https://mashukabu.com/spreadsheet-trim-function/">TRIM関数</a>では前後の空白しか除去できません。文中の連続スペースを整理したいならREGEXREPLACE関数が便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc14">数字以外をすべて削除する</span></h3>



<p>住所や備考欄から数字だけを取り出したいときに使います。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>セルの値</th><th>結果</th></tr></thead><tbody><tr><td>〒100-0001</td><td>1000001</td></tr><tr><td>部屋番号: 301号室</td><td>301</td></tr><tr><td>TEL: 03-1234-5678</td><td>0312345678</td></tr></tbody></table></figure>



<p><code>[^0-9]</code> は「数字以外の文字」を意味します。<code>^</code> が角括弧の先頭にあると「否定」になります。</p>



<h3 class="wp-block-heading"><span id="toc15">8桁の数字を日付形式に変換する</span></h3>



<p>「20240315」のような8桁の数字を「2024/03/15」に変換します。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>セルの値</th><th>結果</th></tr></thead><tbody><tr><td>20240315</td><td>2024/03/15</td></tr><tr><td>20231225</td><td>2023/12/25</td></tr></tbody></table></figure>



<p>後方参照 <code>$1/$2/$3</code> を使って、キャプチャした年・月・日をスラッシュ区切りに並べ替えています。</p>



<h3 class="wp-block-heading"><span id="toc16">HTMLタグを一括除去する</span></h3>



<p>Webからコピーしたデータに混じったHTMLタグを取り除きます。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>セルの値</th><th>結果</th></tr></thead><tbody><tr><td><code><b>重要</b>なお知らせ</code></td><td>重要なお知らせ</td></tr><tr><td><code><a href="...">リンク</a></code></td><td>リンク</td></tr></tbody></table></figure>



<p><code><[^>]+></code> は「<code><</code> で始まり <code>></code> で終わるタグ」を意味します。Webからのデータ貼り付けで重宝しますね。</p>



<h3 class="wp-block-heading"><span id="toc17">ARRAYFORMULA関数と組み合わせて一括置換する</span></h3>



<p><a href="https://mashukabu.com/spreadsheet-arrayformula-function/">ARRAYFORMULA関数</a>と組み合わせれば、複数行を一括で処理できます。</p>



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



<p>この数式をB2セルに1つ入れるだけで、A2からA100までのデータからハイフンを一括削除できます。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>#VALUE!</td><td>テキストが数値</td><td><code>=REGEXREPLACE(TEXT(A2,"0"), "パターン", "置換")</code> で文字列に変換</td></tr><tr><td>#VALUE!</td><td>テキストが空セル</td><td><code>=IF(A2="", "", REGEXREPLACE(A2, "パターン", "置換"))</code> で空チェック</td></tr><tr><td>#REF!</td><td>正規表現の構文エラー</td><td>括弧の閉じ忘れ・エスケープ漏れを確認</td></tr><tr><td>置換されない</td><td>パターンの大文字小文字が不一致</td><td><code>(?i)</code> を先頭に付けて大文字小文字を無視</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc19">数値セルで#VALUE!エラーになるケース</span></h3>



<p>REGEXREPLACE関数の第1引数は<strong>文字列</strong>が必要です。セルに数値が入っている場合は#VALUE!エラーになります。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(A2, &quot;d&quot;, &quot;X&quot;)           → A2が数値だと #VALUE!
=REGEXREPLACE(TEXT(A2, &quot;0&quot;), &quot;d&quot;, &quot;X&quot;) → TEXT関数で文字列に変換すればOK</code></pre>



<p>数値を置換したい場合は、<a href="https://mashukabu.com/spreadsheet-text-function/">TEXT関数</a>で文字列に変換してから渡しましょう。</p>



<h3 class="wp-block-heading"><span id="toc20">正規表現の特殊文字をエスケープし忘れるケース</span></h3>



<p>ピリオド <code>.</code>、括弧 <code>()</code>、プラス <code>+</code> などは正規表現の特殊文字です。これらの文字そのものを置換したい場合は <code></code> でエスケープしてください。</p>



<pre class="wp-block-code"><code>=REGEXREPLACE(A2, &quot;.&quot;, &quot;X&quot;)     → すべての文字がXに置換される
=REGEXREPLACE(A2, &quot;.&quot;, &quot;X&quot;)    → ピリオドだけがXに置換される</code></pre>



<h2 class="wp-block-heading"><span id="toc21">SUBSTITUTE関数との違い</span></h2>



<p><a href="https://mashukabu.com/spreadsheet-substitute-function/">SUBSTITUTE関数</a>でも文字列の置換はできます。REGEXREPLACE関数との違いを整理しましょう。</p>



<h3 class="wp-block-heading"><span id="toc22">同じ処理を両方で書いてみる</span></h3>



<p>電話番号「03-1234-5678」からハイフンを除去する場合です。</p>



<p><strong>SUBSTITUTE関数の場合:</strong></p>



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



<p><strong>REGEXREPLACE関数の場合:</strong></p>



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



<p>この例では同じ結果になります。では「数字だけを削除する」場合はどうでしょう。</p>



<p><strong>SUBSTITUTE関数の場合:</strong></p>



<pre class="wp-block-code"><code>=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(
  SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(
  A2,&quot;0&quot;,&quot;&quot;),&quot;1&quot;,&quot;&quot;),&quot;2&quot;,&quot;&quot;),&quot;3&quot;,&quot;&quot;),&quot;4&quot;,&quot;&quot;),&quot;5&quot;,&quot;&quot;),&quot;6&quot;,&quot;&quot;),&quot;7&quot;,&quot;&quot;),&quot;8&quot;,&quot;&quot;),&quot;9&quot;,&quot;&quot;)</code></pre>



<p><strong>REGEXREPLACE関数の場合:</strong></p>



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



<p>パターン置換ではREGEXREPLACE関数が圧倒的にシンプルですね。</p>



<h3 class="wp-block-heading"><span id="toc23">比較表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>REGEXREPLACE</th><th>SUBSTITUTE</th></tr></thead><tbody><tr><td>正規表現</td><td>使える</td><td>使えない</td></tr><tr><td>パターン置換</td><td>得意（1つの数式で完結）</td><td>苦手（ネストが必要）</td></tr><tr><td>大文字小文字の区別</td><td>区別する（<code>(?i)</code> で無視可）</td><td>区別する</td></tr><tr><td>一致しない場合</td><td>元の文字列を返す</td><td>元の文字列を返す</td></tr><tr><td>置換回数の指定</td><td>できない（すべて置換）</td><td>第4引数で指定可能</td></tr><tr><td>Excel互換</td><td>なし（Sheets独自）</td><td>あり</td></tr><tr><td>学習コスト</td><td>正規表現の知識が必要</td><td>低い</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc24">どちらを使うべき？</span></h3>



<ul class="wp-block-list"><li><strong>固定の文字を置換</strong>（ハイフンを消す、「株式会社」を「(株)」に変える）→ <a href="https://mashukabu.com/spreadsheet-substitute-function/">SUBSTITUTE関数</a>で十分</li><li><strong>パターンで置換</strong>（数字をすべて消す、連続スペースを詰める）→ <strong>REGEXREPLACE関数</strong>一択</li><li><strong>N番目だけ置換</strong>（2つ目のハイフンだけ消す）→ <a href="https://mashukabu.com/spreadsheet-substitute-function/">SUBSTITUTE関数</a>の第4引数</li><li><strong>Excelとの互換性が必要</strong> → SUBSTITUTE関数を使う</li></ul>



<p>固定文字の置換ならSUBSTITUTE、パターン置換ならREGEXREPLACEと覚えておけば迷いません。</p>



<h2 class="wp-block-heading"><span id="toc25">REGEXMATCH・REGEXEXTRACTとの使い分け</span></h2>



<p>スプレッドシートには正規表現を使う関数が3つあります。目的で使い分けましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>目的</th><th>戻り値</th><th>使用例</th></tr></thead><tbody><tr><td><a href="https://mashukabu.com/spreadsheet-regexmatch-function/">REGEXMATCH</a></td><td>パターンに<strong>一致するか判定</strong></td><td>TRUE / FALSE</td><td>入力チェック、条件分岐</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-regexextract-function/">REGEXEXTRACT</a></td><td>パターンに一致する部分を<strong>抽出</strong></td><td>一致した文字列</td><td>ドメイン抽出、番号取り出し</td></tr><tr><td>REGEXREPLACE</td><td>パターンに一致する部分を<strong>置換</strong></td><td>置換後の文字列</td><td>ハイフン除去、書式統一</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc26">具体例で比較</span></h3>



<p>セルA2に「注文番号: ORD-2024-0123」が入っているとします。</p>



<pre class="wp-block-code"><code>=REGEXMATCH(A2, &quot;ORD-d{4}-d{4}&quot;)
  → TRUE（注文番号パターンに一致するか判定）

=REGEXEXTRACT(A2, &quot;ORD-d{4}-d{4}&quot;)
  → &quot;ORD-2024-0123&quot;（注文番号部分を抽出）

=REGEXREPLACE(A2, &quot;ORD-&quot;, &quot;&quot;)
  → &quot;注文番号: 2024-0123&quot;（「ORD-」を除去）</code></pre>



<p><strong>判定</strong>は<a href="https://mashukabu.com/spreadsheet-regexmatch-function/">REGEXMATCH</a>、<strong>抽出</strong>は<a href="https://mashukabu.com/spreadsheet-regexextract-function/">REGEXEXTRACT</a>、<strong>置換</strong>はREGEXREPLACEと覚えておきましょう。これでREGEX3関数シリーズはすべて揃いました。</p>



<h2 class="wp-block-heading"><span id="toc27">まとめ</span></h2>



<p>REGEXREPLACE関数は、正規表現でパターンに一致する部分を置換できるスプレッドシート独自の関数です。</p>



<ul class="wp-block-list"><li><strong>基本</strong>: <code>=REGEXREPLACE(テキスト, 正規表現, 置換文字列)</code> で一致部分を置換</li><li><strong>後方参照</strong>: 括弧 <code>()</code> でキャプチャした部分を <code>$1</code> <code>$2</code> で再利用できる</li><li><strong>実務活用</strong>: ハイフン除去・連続スペース整理・数字以外の削除・HTMLタグ除去に最適</li><li><strong>使い分け</strong>: 固定文字の置換はSUBSTITUTE、パターン置換はREGEXREPLACE</li><li><strong>REGEX3関数</strong>: 判定はREGEXMATCH、抽出はREGEXEXTRACT、置換はREGEXREPLACE</li></ul>



<p>SUBSTITUTE関数ではカバーしきれないパターン置換が必要なとき、ぜひ活用してみてください。正規表現の基本は<a href="https://mashukabu.com/spreadsheet-regexmatch-function/">REGEXMATCH関数の記事</a>でまとめています。そちらも合わせてチェックしてみてくださいね。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-regexreplace-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
