<?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>REPLACE関数 &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/replace%E9%96%A2%E6%95%B0/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Thu, 04 Jun 2026 14:49:45 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>REPLACE関数 &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>ExcelのREPLACE関数の使い方｜位置指定で文字列を置換する方法</title>
		<link>https://mashukabu.com/excel-function-howto-use-replace/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-replace/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 04 Apr 2026 04:32:30 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[REPLACE関数]]></category>
		<category><![CDATA[データ整形]]></category>
		<category><![CDATA[テキスト操作]]></category>
		<category><![CDATA[文字列置換]]></category>
		<category><![CDATA[関数比較]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=5776</guid>

					<description><![CDATA[ExcelのREPLACE関数で開始位置と文字数を指定して文字列を置換する方法を解説。電話番号マスキング・個人情報の一部非表示など実務例を紹介し、SUBSTITUTE関数との違いも比較表で整理しています。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">電話番号の下4桁を「****」に伏せたい、社員番号の先頭だけ別の文字に差し替えたい。そんなとき「何文字目から何文字を置き換える」と位置で指定できると便利ですよね。REPLACE関数を使えば、開始位置と文字数を指定してピンポイントで文字列を差し替えられます。この記事では基本の書き方から実務で使えるマスキング・データ整形パターンまで、まとめて紹介します。</p>



<p class="wp-block-paragraph">この記事は次のような人におすすめ</p>



<ul class="wp-block-list"><li>セルの中の「何文字目から何文字」を別の文字に差し替えたい</li><li>電話番号や個人情報の一部をマスキング（伏字）したい</li><li>REPLACE関数とSUBSTITUTE関数の違いを知りたい</li></ul>




  <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">REPLACE関数とは？</a></li><li><a href="#toc2" tabindex="0">REPLACE関数の書き方（構文と引数）</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の説明</a></li></ol></li><li><a href="#toc5" tabindex="0">REPLACE関数の基本的な使い方</a><ol><li><a href="#toc6" tabindex="0">指定した位置の文字を置き換える</a></li><li><a href="#toc7" tabindex="0">文字を削除する（空文字で置換）</a></li><li><a href="#toc8" tabindex="0">文字を挿入する（文字数を0にする）</a></li></ol></li><li><a href="#toc9" tabindex="0">REPLACE関数の実務活用パターン</a><ol><li><a href="#toc10" tabindex="0">電話番号の一部をマスキング（伏字）する</a></li><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">REPLACE関数とLEN関数で末尾の文字を置き換える</a></li></ol></li><li><a href="#toc15" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc16" tabindex="0">REPLACE関数とSUBSTITUTE関数の違い</a></li><li><a href="#toc17" tabindex="0">REPLACEB関数との違い</a></li><li><a href="#toc18" tabindex="0">まとめ</a><ol><li><a href="#toc19" tabindex="0">関連記事</a></li><li><a href="#toc20" tabindex="0">関数一覧</a></li></ol></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">REPLACE（リプレイス）関数は、文字列の中で「何文字目から何文字」を指定し、その部分を別の文字列に置き換える関数です。英語の「replace」は「取り替える」という意味で、位置指定で文字を差し替える専用の関数です。</p>



<p class="wp-block-paragraph">たとえば「090-1234-5678」の5文字目から4文字（つまり「1234」の部分）を「****」に変えるといった使い方ができます。置き換えたい文字の内容がわからなくても、位置さえわかっていれば確実に置換できるのがポイントです。</p>



<p class="wp-block-paragraph">Excel 2007以降のすべてのバージョン（Excel 2010、2013、2016、2019、2021、Microsoft 365）で使用できます。</p>



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



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



<pre class="wp-block-code"><code>=REPLACE(文字列, 開始位置, 文字数, 置換文字列)</code></pre>



<h3 class="wp-block-heading"><span id="toc4">引数の説明</span></h3>



<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>置き換えを始める位置（1から数える）</td></tr><tr><td>文字数</td><td>必須</td><td>置き換える文字の数（0を指定すると挿入になる）</td></tr><tr><td>置換文字列</td><td>必須</td><td>置き換え後の文字列（&#8221;&#8221;を指定すると削除になる）</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>4つの引数はすべて必須です。開始位置は「1」が先頭です。0を指定すると先頭より前に挿入されてしまうので注意してください。</p></blockquote>



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



<h3 class="wp-block-heading"><span id="toc6">指定した位置の文字を置き換える</span></h3>



<p class="wp-block-paragraph">セルA1に「ABCDEFG」と入っている場合に、3文字目から2文字（「CD」）を「XX」に置き換えてみます。</p>



<pre class="wp-block-code"><code>=REPLACE(A1,3,2,&quot;XX&quot;)</code></pre>



<p class="wp-block-paragraph">結果は「ABXXEFG」になります。3文字目の「C」から2文字分が「XX」に差し替わりました。</p>



<h3 class="wp-block-heading"><span id="toc7">文字を削除する（空文字で置換）</span></h3>



<p class="wp-block-paragraph">置換文字列に「&#8221;&#8221;」（空文字）を指定すると、該当する位置の文字を削除できます。</p>



<pre class="wp-block-code"><code>=REPLACE(A1,3,2,&quot;&quot;)</code></pre>



<p class="wp-block-paragraph">A1が「ABCDEFG」なら、結果は「ABEFG」です。3文字目から2文字分が消えます。</p>



<h3 class="wp-block-heading"><span id="toc8">文字を挿入する（文字数を0にする）</span></h3>



<p class="wp-block-paragraph">文字数に「0」を指定すると、何も削除せずに文字列を挿入できます。</p>



<pre class="wp-block-code"><code>=REPLACE(A1,3,0,&quot;★&quot;)</code></pre>



<p class="wp-block-paragraph">A1が「ABCDEFG」なら、結果は「AB★CDEFG」です。3文字目の直前に「★」が挿入されます。既存の文字は削除されません。</p>



<h2 class="wp-block-heading"><span id="toc9">REPLACE関数の実務活用パターン</span></h2>



<h3 class="wp-block-heading"><span id="toc10">電話番号の一部をマスキング（伏字）する</span></h3>



<p class="wp-block-paragraph">個人情報保護のため、電話番号の一部を「****」で伏せたい場面はよくあります。</p>



<pre class="wp-block-code"><code>=REPLACE(A1,5,4,&quot;****&quot;)</code></pre>



<p class="wp-block-paragraph">A1が「090-1234-5678」の場合、結果は「090-<strong>*<em>-5678」になります。5文字目から4文字（「1234」の部分）が「</strong></em>*」に置き換わります。</p>



<p class="wp-block-paragraph">ハイフンなしの「09012345678」なら、開始位置を調整してください。</p>



<pre class="wp-block-code"><code>=REPLACE(A1,4,4,&quot;****&quot;)</code></pre>



<p class="wp-block-paragraph">結果は「090****5678」です。</p>



<h3 class="wp-block-heading"><span id="toc11">名前の一部を非表示にする</span></h3>



<p class="wp-block-paragraph">顧客名簿で名字だけ表示し、名前を伏せたいケースです。<a href="https://mashukabu.com/excel-function-howto-use-search/">SEARCH関数</a>と組み合わせて、スペース以降を「●●」に置き換えます。</p>



<pre class="wp-block-code"><code>=REPLACE(A1,SEARCH(&quot; &quot;,A1),LEN(A1)-SEARCH(&quot; &quot;,A1)+1,&quot;●●&quot;)</code></pre>



<p class="wp-block-paragraph">A1が「山田 太郎」の場合、SEARCH関数でスペースの位置（3文字目）を取得し、そこから末尾までを「●●」に置き換えます。結果は「山田●●」です。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>SEARCH関数は大文字・小文字を区別しません。完全一致で検索したい場合はFIND関数を使ってください。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc12">郵便番号にハイフンを挿入する</span></h3>



<p class="wp-block-paragraph">ハイフンなしの郵便番号「1234567」に、4文字目の位置でハイフンを挿入します。</p>



<pre class="wp-block-code"><code>=REPLACE(A1,4,0,&quot;-&quot;)</code></pre>



<p class="wp-block-paragraph">結果は「123-4567」です。文字数を0にしているので、既存の数字は削除されずにハイフンだけが入ります。</p>



<h3 class="wp-block-heading"><span id="toc13">社員番号の先頭コードを変更する</span></h3>



<p class="wp-block-paragraph">部門コードが変わって先頭2文字を差し替えたい場合です。</p>



<pre class="wp-block-code"><code>=REPLACE(A1,1,2,&quot;BD&quot;)</code></pre>



<p class="wp-block-paragraph">A1が「AC12345」なら、結果は「BD12345」です。先頭2文字の「AC」が「BD」に変わります。</p>



<h3 class="wp-block-heading"><span id="toc14">REPLACE関数とLEN関数で末尾の文字を置き換える</span></h3>



<p class="wp-block-paragraph">末尾から何文字を置き換えたい場合は、<a href="https://mashukabu.com/excel-function-howto-use-len/">LEN関数</a>と組み合わせます。</p>



<pre class="wp-block-code"><code>=REPLACE(A1,LEN(A1)-2+1,2,&quot;XX&quot;)</code></pre>



<p class="wp-block-paragraph">A1が「ABCDEFG」なら、LEN(A1)は7なので開始位置は6になり、結果は「ABCDEXX」です。末尾2文字の「FG」が「XX」に変わります。</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>開始位置は1以上、文字数は0以上の整数を指定してください</td></tr><tr><td>#VALUE!エラー</td><td>開始位置や文字数にテキストを指定した</td><td>数値として認識できる値を入力してください。セル参照の場合はそのセルが数値か確認します</td></tr><tr><td>意図しない位置で置換される</td><td>開始位置の数え間違い</td><td>先頭が「1」であることに注意。<a href="https://mashukabu.com/excel-function-howto-use-mid/">MID関数</a>で該当位置の文字を確認してから指定すると間違いを防げます</td></tr><tr><td>全角文字で位置がずれる</td><td>REPLACE関数は1文字を1と数える</td><td>全角も半角も1文字は1です。バイト数で数えたい場合はREPLACEB関数を使ってください</td></tr><tr><td>置換後に文字数が変わる</td><td>置換文字列の長さが元の文字数と異なる</td><td>REPLACE関数は指定した文字数分を削除してから置換文字列を挿入するため、長さが変わるのは正常な動作です</td></tr></tbody></table></figure>



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



<p class="wp-block-paragraph">文字列を置き換える関数にはSUBSTITUTE関数もあります。名前が似ていて混同しやすいですが、置換対象の指定方法がまったく異なります。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>REPLACE関数</th><th>SUBSTITUTE関数</th></tr></thead><tbody><tr><td>置換対象の指定</td><td><strong>位置（何文字目から何文字）</strong>で指定</td><td><strong>文字列</strong>で指定</td></tr><tr><td>構文</td><td>=REPLACE(文字列, 開始位置, 文字数, 置換文字列)</td><td>=SUBSTITUTE(文字列, 検索文字列, 置換文字列, [置換対象])</td></tr><tr><td>得意な場面</td><td>決まった位置の文字を置き換える</td><td>特定の文字を探して置き換える</td></tr><tr><td>使用例</td><td>先頭3文字をマスキング・郵便番号にハイフン挿入</td><td>ハイフン除去・表記統一</td></tr><tr><td>大文字・小文字</td><td>関係なし（位置で指定するため）</td><td>区別する</td></tr><tr><td>複数箇所の同時置換</td><td>できない（1回の呼び出しで1箇所のみ）</td><td>検索文字列にヒットする全箇所を一括置換</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">「何文字目から何文字を変えたい」ならREPLACE関数、「この文字を消したい・変えたい」なら<a href="https://mashukabu.com/excel-function-howto-use-substitute/">SUBSTITUTE関数</a>です。</p>



<p class="wp-block-paragraph">たとえば電話番号のハイフンをすべて消したいなら、どこにハイフンがあるかは関係ないのでSUBSTITUTE関数が適しています。一方、電話番号の4桁目から4文字を伏せたいなら、位置が決まっているのでREPLACE関数の出番です。</p>



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



<p class="wp-block-paragraph">REPLACEB（リプレイスビー）関数は、REPLACE関数のバイト数版です。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>REPLACE関数</th><th>REPLACEB関数</th></tr></thead><tbody><tr><td>文字の数え方</td><td><strong>文字数</strong>で数える（全角も半角も1文字=1）</td><td><strong>バイト数</strong>で数える（半角=1バイト、全角=2バイト）</td></tr><tr><td>構文</td><td>=REPLACE(文字列, 開始位置, 文字数, 置換文字列)</td><td>=REPLACEB(文字列, 開始位置, バイト数, 置換文字列)</td></tr><tr><td>使い分け</td><td>通常はこちらで十分</td><td>半角と全角が混在するデータでバイト単位の制御が必要な場合</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">通常の業務ではREPLACE関数で十分です。半角カナと全角文字が混在するデータで正確にバイト位置を指定したい場合にREPLACEB関数を使ってください。</p>



<pre class="wp-block-code"><code>=REPLACEB(A1,1,2,&quot;XX&quot;)</code></pre>



<p class="wp-block-paragraph">A1が「あいうえお」の場合、全角の「あ」は2バイトなので、1バイト目から2バイト分（「あ」1文字分）が「XX」に変わります。結果は「XXいうえお」です。</p>



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



<p class="wp-block-paragraph">REPLACE関数は「何文字目から何文字を別の文字列に置き換える」ための関数です。</p>



<ul class="wp-block-list"><li>開始位置と文字数で置換範囲を指定するので、置き換えたい文字の内容がわからなくても使える</li><li>文字数を0にすると、文字列の挿入として使える</li><li>電話番号のマスキングや郵便番号へのハイフン挿入など、位置が決まっているデータの加工に便利</li><li>SUBSTITUTE関数との違いは「位置で指定するか、文字列で指定するか」</li><li>バイト数で指定したい場合はREPLACEB関数を使う</li></ul>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-left/">LEFT関数</a>や<a href="https://mashukabu.com/excel-function-howto-use-right/">RIGHT関数</a>と組み合わせれば、文字列の一部を取り出してから加工するなど、さらに応用の幅が広がります。ぜひ活用してみてください。</p>



<h3 class="wp-block-heading"><span id="toc19">関連記事</span></h3>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-substitute/">SUBSTITUTE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-left/">LEFT関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-right/">RIGHT関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-mid/">MID関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-search/">SEARCH関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-len/">LEN関数の使い方</a></li></ul>



<h3 class="wp-block-heading"><span id="toc20">関数一覧</span></h3>



<p class="wp-block-paragraph">Excel関数の一覧は下記の記事で確認できます。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-list-by-function/">Excel関数 機能別一覧</a></li></ul>



<p class="wp-block-paragraph">エラー値が表示される場合は、下記の記事も参考にしてみてください。</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-error-value-list/">Excelのエラー値一覧</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-replace/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのREPLACE関数の使い方｜位置指定で文字列を置換する基本と実務テンプレ</title>
		<link>https://mashukabu.com/spreadsheet-replace-function/</link>
					<comments>https://mashukabu.com/spreadsheet-replace-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 19 Mar 2026 10:41:10 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[FIND関数]]></category>
		<category><![CDATA[REPLACE関数]]></category>
		<category><![CDATA[SUBSTITUTE関数]]></category>
		<category><![CDATA[文字列操作]]></category>
		<category><![CDATA[文字列置換]]></category>
		<category><![CDATA[関数の使い方]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4386</guid>

					<description><![CDATA[スプレッドシートのREPLACE関数の使い方を基本から徹底解説。位置指定で文字列を置換する構文・実務テンプレ（市外局番差替・年度更新・伏せ字・ドメイン置換）、SUBSTITUTE/REGEXREPLACEとの違い、FIND関数との組み合わせ応用、ARRAYFORMULA連携、よくあるエラー対処までこの1記事で完結します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">スプレッドシートで「3文字目から2文字だけ置き換えたい」と思ったことはありませんか。商品コードの一部だけ変更したい、電話番号の市外局番だけ差し替えたい、個人情報を一部マスクしたい。こうした場面で活躍するのが REPLACE関数 です。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-substitute-function/">SUBSTITUTE関数</a>は「何という文字を置き換えるか」を指定する関数ですが、REPLACE関数は「何文字目から何文字分を置き換えるか」を指定します。同じ置換系でもアプローチが正反対なので、使い分けができると業務効率がぐっと上がります。</p>



<p class="wp-block-paragraph">この記事ではスプレッドシートのREPLACE関数について、基本構文から実務テンプレ、<a href="https://mashukabu.com/spreadsheet-find-function/">FIND関数</a>との組み合わせ応用、SUBSTITUTE・REGEXREPLACE・REPLACEBとの使い分け、エラー対処まで丁寧に解説します。</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">スプレッドシートのREPLACE関数とは？位置指定で文字列を置換する関数</a><ol><li><a href="#toc2" tabindex="0">「位置で置換」が必要になる業務シーン</a></li><li><a href="#toc3" tabindex="0">REPLACE関数が向いていないケース</a></li></ol></li><li><a href="#toc4" tabindex="0">REPLACE関数の書き方（構文と引数）</a></li><li><a href="#toc5" tabindex="0">REPLACE関数の基本的な使い方</a><ol><li><a href="#toc6" tabindex="0">文字数を0にすると「挿入」になる</a></li><li><a href="#toc7" tabindex="0">開始位置以降をすべて置換する</a></li><li><a href="#toc8" tabindex="0">結果は常に文字列型になる</a></li></ol></li><li><a href="#toc9" tabindex="0">REPLACE関数の実務活用パターン</a><ol><li><a href="#toc10" tabindex="0">パターン1: 電話番号の市外局番を一括変更する</a></li><li><a href="#toc11" tabindex="0">パターン2: 管理番号の年度部分を一括更新する</a></li><li><a href="#toc12" tabindex="0">パターン3: 個人情報の伏せ字処理（マスキング）</a></li><li><a href="#toc13" tabindex="0">パターン4: 商品コードのプレフィックス変更</a></li><li><a href="#toc14" tabindex="0">パターン5: メールアドレスのユーザー名マスク</a></li><li><a href="#toc15" tabindex="0">実務での使用シーン早見表</a></li></ol></li><li><a href="#toc16" tabindex="0">FIND関数と組み合わせて動的に位置を指定する</a><ol><li><a href="#toc17" tabindex="0">メールアドレスのドメイン部分を置き換える</a></li><li><a href="#toc18" tabindex="0">区切り文字の前半だけを差し替える</a></li><li><a href="#toc19" tabindex="0">メールアドレスのユーザー名をマスクする</a></li><li><a href="#toc20" tabindex="0">FIND関数との組み合わせで注意する点</a></li></ol></li><li><a href="#toc21" tabindex="0">ARRAYFORMULAやネストでREPLACE関数を一気に適用する</a><ol><li><a href="#toc22" tabindex="0">ARRAYFORMULAで列全体に一気に適用する</a></li><li><a href="#toc23" tabindex="0">ネスト（入れ子）で複数箇所を同時置換する</a></li><li><a href="#toc24" tabindex="0">複数箇所の置換はREGEXREPLACEのほうが楽な場合もある</a></li></ol></li><li><a href="#toc25" tabindex="0">REPLACE関数とSUBSTITUTE・REGEXREPLACE・REPLACEBの使い分け</a><ol><li><a href="#toc26" tabindex="0">REPLACE vs SUBSTITUTE</a></li><li><a href="#toc27" tabindex="0">REPLACE vs REGEXREPLACE</a></li><li><a href="#toc28" tabindex="0">REPLACE vs REPLACEB</a></li><li><a href="#toc29" tabindex="0">使い分けフローチャート</a></li></ol></li><li><a href="#toc30" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc31" tabindex="0">#VALUE!エラーが出る</a></li><li><a href="#toc32" tabindex="0">文字数に負の数を指定した場合もエラー</a></li><li><a href="#toc33" tabindex="0">開始位置がテキスト長を超えている場合</a></li><li><a href="#toc34" tabindex="0">空セルを渡した場合</a></li><li><a href="#toc35" tabindex="0">エラー一覧</a></li></ol></li><li><a href="#toc36" tabindex="0">よくある質問</a><ol><li><a href="#toc37" tabindex="0">REPLACE関数とSUBSTITUTE関数はどちらを使うべきですか？</a></li><li><a href="#toc38" tabindex="0">REPLACE関数で複数箇所を一度に置換できますか？</a></li><li><a href="#toc39" tabindex="0">開始位置にテキストの文字数を超える数値を指定したらエラーになりますか？</a></li><li><a href="#toc40" tabindex="0">列全体に一気に適用したい場合はどう書きますか？</a></li><li><a href="#toc41" tabindex="0">ExcelのREPLACE関数とGoogleスプレッドシートのREPLACE関数は同じですか？</a></li><li><a href="#toc42" tabindex="0">文字を削除せずに挿入だけしたい場合はどう書きますか？</a></li><li><a href="#toc43" tabindex="0">REPLACEの結果が文字列になってしまい計算に使えません</a></li><li><a href="#toc44" tabindex="0">大文字小文字を区別した置換はできますか？</a></li></ol></li><li><a href="#toc45" tabindex="0">まとめ</a><ol><li><a href="#toc46" tabindex="0">次に読みたい関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">スプレッドシートのREPLACE関数とは？位置指定で文字列を置換する関数</span></h2>



<p class="wp-block-paragraph">REPLACE関数は、文字列の中の <strong>指定した位置から指定した文字数分を別の文字に置き換える</strong> 関数です。読み方は「リプレース」。英語の Replace（置き換える）がそのまま関数名になっています。</p>



<p class="wp-block-paragraph">たとえば「ABCDE」の2文字目から3文字分を「XY」に置き換えると「AXYE」になります。位置と長さで置換範囲を決めるので、置き換えたい文字の内容を知らなくても使えるのが最大の特徴です。</p>



<h3 class="wp-block-heading"><span id="toc2">「位置で置換」が必要になる業務シーン</span></h3>



<p class="wp-block-paragraph">実務で位置指定の置換が必要になるのは、データに「固定フォーマット」があるときです。</p>



<ul class="wp-block-list"><li>電話番号の市外局番（先頭2〜3桁）</li><li>管理番号の年度プレフィックス（先頭4桁）</li><li>商品コードのカテゴリ部分（先頭3桁）</li><li>携帯番号の中央4桁（マスキング対象）</li><li>社員番号の所属コード（特定の位置）</li></ul>



<p class="wp-block-paragraph">これらは「内容で検索する」よりも「位置で指定する」ほうが直感的かつ確実です。SUBSTITUTEで「03を06に」と書くと、電話番号以外のセル内の「03」まで置換してしまう事故が起こり得ますが、REPLACEなら位置で指定するので副作用がありません。</p>



<h3 class="wp-block-heading"><span id="toc3">REPLACE関数が向いていないケース</span></h3>



<p class="wp-block-paragraph">逆に、データに固定フォーマットがなく、置換対象がデータごとに違う場所にある場合はREPLACEには向きません。たとえば「メールアドレスからすべての半角スペースを削除したい」のような用途は、<a href="https://mashukabu.com/spreadsheet-substitute-function/">SUBSTITUTE関数</a>や<a href="https://mashukabu.com/spreadsheet-regexreplace-function/">REGEXREPLACE関数</a>のほうが適しています。</p>



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



<p class="wp-block-paragraph">REPLACE関数の構文は次のとおりです。</p>



<pre class="wp-block-code"><code>=REPLACE(テキスト, 開始位置, 文字数, 新しいテキスト)</code></pre>



<p class="wp-block-paragraph">引数は4つあり、すべて必須です。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略可</th><th>型</th><th>説明</th></tr></thead><tbody><tr><td>テキスト</td><td>必須</td><td>文字列</td><td>置換対象のセルまたは文字列</td></tr><tr><td>開始位置</td><td>必須</td><td>整数</td><td>置換を始める位置（1から数える）</td></tr><tr><td>文字数</td><td>必須</td><td>整数（0以上）</td><td>置換する文字の数</td></tr><tr><td>新しいテキスト</td><td>必須</td><td>文字列</td><td>置換後の文字列</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ここで覚えておきたいポイントは3つあります。</p>



<ol class="wp-block-list"><li><strong>開始位置は1始まり</strong>（0や負の数を指定すると <code>#VALUE!</code> エラー）</li><li><strong>文字数は0でもOK</strong>（0なら何も削除せず挿入として機能する）</li><li><strong>すべての引数が必須</strong>（<a href="https://mashukabu.com/spreadsheet-substitute-function/">SUBSTITUTE関数</a>とは違って省略不可）</li></ol>



<p class="wp-block-paragraph">プログラミング言語の文字列操作は0始まりが多いですが、スプレッドシートの文字列関数は<a href="https://mashukabu.com/spreadsheet-len-function/">LEN</a>も<a href="https://mashukabu.com/spreadsheet-mid-function/">MID</a>も<a href="https://mashukabu.com/spreadsheet-find-function/">FIND</a>もすべて1始まりです。慣れるまでは「先頭文字 = 1」と意識して数えてください。</p>



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



<p class="wp-block-paragraph">セルA2に「ABCDEFG」が入っているとします。3文字目から2文字分を「XX」に置き換えてみましょう。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/03/spreadsheet-sumif-function_01_data_sample-table.png" alt="01 data sample table" /></figure>



<pre class="wp-block-code"><code>=REPLACE(A2, 3, 2, &quot;XX&quot;)  → 「ABXXEFG」</code></pre>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/02_formula_replace-basic.png" alt="02 formula replace basic" /></figure>



<p class="wp-block-paragraph">3文字目の「C」と4文字目の「D」が「XX」に置き換わりました。開始位置は1始まりなので、A → 1、B → 2、C → 3 と数えています。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/03_result_replace-basic.png" alt="03 result replace basic" /></figure>



<h3 class="wp-block-heading"><span id="toc6">文字数を0にすると「挿入」になる</span></h3>



<p class="wp-block-paragraph">文字数に0を指定すると、元の文字を1文字も削除せずに新しいテキストを挿入できます。これはREPLACE関数の隠れた便利機能です。</p>



<pre class="wp-block-code"><code>=REPLACE(A2, 3, 0, &quot;-&quot;)  → 「AB-CDEFG」</code></pre>



<p class="wp-block-paragraph">3文字目の「C」の前にハイフンが挿入されました。先頭に追加したい場合は開始位置を1にします。</p>



<pre class="wp-block-code"><code>=REPLACE(A2, 1, 0, &quot;★&quot;)  → 「★ABCDEFG」</code></pre>



<p class="wp-block-paragraph">「セルの内容を消さずに何かを差し込みたい」ときは、わざわざ文字列連結（&#038;）を組み合わせなくてもREPLACE一発で書けます。</p>



<h3 class="wp-block-heading"><span id="toc7">開始位置以降をすべて置換する</span></h3>



<p class="wp-block-paragraph">文字数を大きめに指定すると、開始位置から末尾までを置き換えられます。文字数が残りの文字数を超えてもエラーにはなりません。</p>



<pre class="wp-block-code"><code>=REPLACE(A2, 4, 100, &quot;XYZ&quot;)  → 「ABCXYZ」</code></pre>



<p class="wp-block-paragraph">4文字目以降の「DEFG」（4文字）が「XYZ」に置き換わりました。残りが4文字なのに文字数を100にしても問題なく動きます。「この位置から後ろは全部変えたい」ときに、いちいち残り文字数を計算しなくていいテクニックです。</p>



<h3 class="wp-block-heading"><span id="toc8">結果は常に文字列型になる</span></h3>



<p class="wp-block-paragraph">REPLACE関数の戻り値は数値や日付ではなく、常に「文字列型」です。たとえば「2024」（数値）の「20」を「20」に置き換えても、結果は数値の2024ではなく文字列の &#8220;2024&#8221; になります。</p>



<pre class="wp-block-code"><code>=REPLACE(2024, 1, 2, &quot;20&quot;)  → &quot;2024&quot;（文字列）</code></pre>



<p class="wp-block-paragraph">集計や日付計算で使う場合は、後段で <a href="https://mashukabu.com/spreadsheet-value-function/">VALUE関数</a> や <a href="https://mashukabu.com/spreadsheet-datevalue-function/">DATEVALUE関数</a> を組み合わせて型変換してください。</p>



<h2 class="wp-block-heading"><span id="toc9">REPLACE関数の実務活用パターン</span></h2>



<p class="wp-block-paragraph">ここからは実務で頻出するパターンを順に紹介します。コピペで使えるよう、数式と動作例を並べて掲載します。</p>



<h3 class="wp-block-heading"><span id="toc10">パターン1: 電話番号の市外局番を一括変更する</span></h3>



<p class="wp-block-paragraph">拠点移転で全顧客の電話番号の市外局番を変える、というシナリオです。A2に「03-1234-5678」が入っています。</p>



<pre class="wp-block-code"><code>=REPLACE(A2, 1, 2, &quot;06&quot;)  → 「06-1234-5678」</code></pre>



<p class="wp-block-paragraph">1文字目から2文字分（「03」）を「06」に置き換えました。市外局番の桁数が決まっているので、位置指定のREPLACEがぴったりです。</p>



<p class="wp-block-paragraph">SUBSTITUTEで <code>=SUBSTITUTE(A2, "03", "06")</code> と書くと、たまたま電話番号の中に「03」が含まれる場合（例: 「03-0312-1234」）まで置換してしまうリスクがあります。REPLACEなら開始位置が固定なので、こうした副作用が起きません。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/04_result_replace-phone.png" alt="04 result replace phone" /></figure>



<h3 class="wp-block-heading"><span id="toc11">パターン2: 管理番号の年度部分を一括更新する</span></h3>



<p class="wp-block-paragraph">「2024-A001」のような「年度-連番」フォーマットの管理番号を翌年度に更新するケースです。</p>



<pre class="wp-block-code"><code>=REPLACE(A2, 1, 4, &quot;2025&quot;)  → 「2025-A001」</code></pre>



<p class="wp-block-paragraph">先頭4文字の「2024」を「2025」に置き換えました。連番部分はそのままなので、年度切り替え時の一括更新が数式1つで完結します。</p>



<h3 class="wp-block-heading"><span id="toc12">パターン3: 個人情報の伏せ字処理（マスキング）</span></h3>



<p class="wp-block-paragraph">名前や電話番号の一部を「***」で隠す伏せ字処理にもREPLACE関数は役立ちます。A2に「09012345678」（携帯番号）が入っているとします。</p>



<pre class="wp-block-code"><code>=REPLACE(A2, 4, 4, &quot;****&quot;)  → 「090****5678」</code></pre>



<p class="wp-block-paragraph">4文字目から4文字分を「****」に置き換えました。先頭3桁と末尾4桁は残しつつ、中間をマスクできます。個人情報を含む一覧を社外配布する前のサニタイズ処理として定番です。</p>



<p class="wp-block-paragraph">名前の伏せ字にも使えます。A2に「山田太郎」が入っている場合です。</p>



<pre class="wp-block-code"><code>=REPLACE(A2, 2, 1, &quot;○&quot;)  → 「山○太郎」</code></pre>



<p class="wp-block-paragraph">2文字目の「田」を「○」に置き換えて、苗字の一部を伏せました。プライバシー配慮が必要な公開資料で使えます。</p>



<h3 class="wp-block-heading"><span id="toc13">パターン4: 商品コードのプレフィックス変更</span></h3>



<p class="wp-block-paragraph">「ABC-1234」のような「カテゴリプレフィックス-連番」形式の商品コードで、プレフィックスだけを変更したい場合です。</p>



<pre class="wp-block-code"><code>=REPLACE(A2, 1, 3, &quot;XYZ&quot;)  → 「XYZ-1234」</code></pre>



<p class="wp-block-paragraph">先頭3文字を新カテゴリコードに差し替えました。ハイフン以降の連番はそのまま保持されます。</p>



<h3 class="wp-block-heading"><span id="toc14">パターン5: メールアドレスのユーザー名マスク</span></h3>



<p class="wp-block-paragraph">メールアドレスの「@」より前のユーザー名部分を伏せたいケースです。ただしユーザー名の長さはデータごとに違うので、ここはFIND関数と組み合わせます（詳しくは次のセクション）。</p>



<h3 class="wp-block-heading"><span id="toc15">実務での使用シーン早見表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>業務シーン</th><th>数式テンプレ</th><th>用途</th></tr></thead><tbody><tr><td>市外局番変更</td><td><code>=REPLACE(A2,1,2,"06")</code></td><td>拠点移転対応</td></tr><tr><td>年度更新</td><td><code>=REPLACE(A2,1,4,"2025")</code></td><td>年度切り替え</td></tr><tr><td>携帯番号マスク</td><td><code>=REPLACE(A2,4,4,"****")</code></td><td>個人情報配慮</td></tr><tr><td>名前伏せ字</td><td><code>=REPLACE(A2,2,1,"○")</code></td><td>プライバシー保護</td></tr><tr><td>商品コード変更</td><td><code>=REPLACE(A2,1,3,"XYZ")</code></td><td>カテゴリ再編</td></tr><tr><td>先頭への挿入</td><td><code>=REPLACE(A2,1,0,"PRE-")</code></td><td>プレフィックス追加</td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><span id="toc16">FIND関数と組み合わせて動的に位置を指定する</span></h2>



<p class="wp-block-paragraph">ここまでの例は、置き換える位置が「先頭から何文字目」と決まっているケースでした。しかし実務では、データによって位置が変わることもよくあります。</p>



<p class="wp-block-paragraph">そんなときは<a href="https://mashukabu.com/spreadsheet-find-function/">FIND関数</a>で位置を動的に取得し、REPLACEに渡します。</p>



<h3 class="wp-block-heading"><span id="toc17">メールアドレスのドメイン部分を置き換える</span></h3>



<p class="wp-block-paragraph">A2に「user@old-domain.com」が入っています。「@」より後ろを新しいドメインに差し替えたい場合です。</p>



<pre class="wp-block-code"><code>=REPLACE(A2, FIND(&quot;@&quot;, A2), LEN(A2) - FIND(&quot;@&quot;, A2) + 1, &quot;@new-domain.com&quot;)</code></pre>



<p class="wp-block-paragraph">結果は「user@new-domain.com」です。少し複雑に見えますが、やっていることはシンプルです。</p>



<ol class="wp-block-list"><li><code>FIND("@", A2)</code> → 「@」の位置（5）を取得</li><li><code>LEN(A2) - FIND("@", A2) + 1</code> → 「@」以降の文字数（16）を計算</li><li>REPLACEで「5文字目から16文字分」を新ドメインに置換</li></ol>



<p class="wp-block-paragraph">FIND関数が「@」の位置を自動で調べてくれるので、ユーザー名の長さがバラバラのデータ（user、yamada、a など）でも正しく動作します。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/05_result_replace-find-email.png" alt="05 result replace find email" /></figure>



<h3 class="wp-block-heading"><span id="toc18">区切り文字の前半だけを差し替える</span></h3>



<p class="wp-block-paragraph">A2に「ABC-12345」が入っていて、ハイフンより前の部分を「XYZ」に変えたい場合です。</p>



<pre class="wp-block-code"><code>=REPLACE(A2, 1, FIND(&quot;-&quot;, A2) - 1, &quot;XYZ&quot;)  → 「XYZ-12345」</code></pre>



<p class="wp-block-paragraph"><code>FIND("-", A2) - 1</code> でハイフンの手前までの文字数を計算し、先頭からその分だけ置き換えています。<a href="https://mashukabu.com/spreadsheet-left-function/">LEFT関数</a>で切り出して文字列連結（&#038;）で結合する方法もありますが、REPLACEなら1つの数式で完結します。</p>



<h3 class="wp-block-heading"><span id="toc19">メールアドレスのユーザー名をマスクする</span></h3>



<p class="wp-block-paragraph">A2 に「yamada@example.com」が入っているとします。「@」より前のユーザー名部分を、文字数と同じ数の「*」で伏せたい場合です。</p>



<pre class="wp-block-code"><code>=REPLACE(A2, 1, FIND(&quot;@&quot;, A2) - 1, REPT(&quot;*&quot;, FIND(&quot;@&quot;, A2) - 1))</code></pre>



<p class="wp-block-paragraph">結果は「<strong><em></strong></em>@example.com」になります。REPT関数でユーザー名と同じ長さの「*」を生成し、それで丸ごと置き換えています。ドメイン部分は残るので「どのドメインのアドレスか」は確認しつつ、個人特定はできない状態にできます。</p>



<h3 class="wp-block-heading"><span id="toc20">FIND関数との組み合わせで注意する点</span></h3>



<ul class="wp-block-list"><li>検索文字が見つからないと FIND は <code>#VALUE!</code> エラーを返します。<code>IFERROR</code> でラップすると安全です</li><li>同じ文字が複数あるときは FIND は最初の位置を返します。N番目を取得したい場合は <a href="https://mashukabu.com/spreadsheet-substitute-function/">SUBSTITUTE関数</a> と組み合わせるテクニックがあります</li><li>大文字小文字を無視して位置を取りたい場合は <a href="https://mashukabu.com/spreadsheet-search-function/">SEARCH関数</a> を使います</li></ul>



<h2 class="wp-block-heading"><span id="toc21">ARRAYFORMULAやネストでREPLACE関数を一気に適用する</span></h2>



<p class="wp-block-paragraph">REPLACE関数は1回の呼び出しで「1つのテキスト」「1か所」の置換しかできません。しかし、Googleスプレッドシート特有の機能を組み合わせると、列全体への一括適用や複数箇所の同時置換も実現できます。</p>



<h3 class="wp-block-heading"><span id="toc22">ARRAYFORMULAで列全体に一気に適用する</span></h3>



<p class="wp-block-paragraph">A2:A100 の電話番号データすべてに市外局番変更を適用したい場合、1セル1セルに数式をコピーする必要はありません。</p>



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



<p class="wp-block-paragraph">たった1つの数式で100行分の置換結果がスピル（自動拡張）されます。元データが増減してもメンテナンスがラクなので、運用するスプレッドシートに組み込むときに便利です。</p>



<p class="wp-block-paragraph">ARRAYFORMULAについては <a href="https://mashukabu.com/spreadsheet-arrayformula-function/">ARRAYFORMULA関数の詳しい使い方</a> を参照してください。</p>



<h3 class="wp-block-heading"><span id="toc23">ネスト（入れ子）で複数箇所を同時置換する</span></h3>



<p class="wp-block-paragraph">1つのセルの中で複数箇所を置換したい場合は、REPLACEを入れ子にします。たとえば「ABCDEFG」の1〜2文字目を「XX」に、5〜6文字目を「YY」に変えたい場合です。</p>



<pre class="wp-block-code"><code>=REPLACE(REPLACE(A2, 5, 2, &quot;YY&quot;), 1, 2, &quot;XX&quot;)  → 「XXCDYYG」</code></pre>



<p class="wp-block-paragraph">ポイントは <strong>後ろの位置から先に置換すること</strong> です。先に前の位置を置換すると、置換結果によって後ろの位置がずれてしまう可能性があります（文字数が変わる置換の場合）。</p>



<p class="wp-block-paragraph">文字数が同じ置換（例: 2文字→2文字）であれば順序は問いませんが、安全のために「後ろから前へ」を癖にしておくと事故が減ります。</p>



<h3 class="wp-block-heading"><span id="toc24">複数箇所の置換はREGEXREPLACEのほうが楽な場合もある</span></h3>



<p class="wp-block-paragraph">3か所以上を一気に置換したい場合、REPLACEのネストは可読性が落ちます。正規表現が使える場合は <a href="https://mashukabu.com/spreadsheet-regexreplace-function/">REGEXREPLACE関数</a> のほうが見やすい数式になります。</p>



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



<p class="wp-block-paragraph">ただし正規表現の学習コストはあるので、用途と頻度に応じて選んでください。</p>



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



<p class="wp-block-paragraph">スプレッドシートには文字列置換系の関数がいくつかあります。用途を正しく選ぶことで、シンプルで保守しやすい数式が書けます。</p>



<h3 class="wp-block-heading"><span id="toc26">REPLACE vs SUBSTITUTE</span></h3>



<p class="wp-block-paragraph">一番よく比較されるのが REPLACE と <a href="https://mashukabu.com/spreadsheet-substitute-function/">SUBSTITUTE</a> です。ひとことで言えば、<strong>SUBSTITUTEは「文字」で指定、REPLACEは「位置」で指定</strong> です。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>REPLACE</th><th>SUBSTITUTE</th></tr></thead><tbody><tr><td>指定方法</td><td>位置と文字数</td><td>検索文字列</td></tr><tr><td>引数の数</td><td>4つ（すべて必須）</td><td>3〜4つ（4番目は省略可）</td></tr><tr><td>複数箇所の置換</td><td>1か所のみ（ネスト要）</td><td>標準で全置換</td></tr><tr><td>大文字/小文字</td><td>区別しない</td><td>区別する</td></tr><tr><td>挿入動作</td><td>文字数=0で可能</td><td>不可</td></tr><tr><td>向く場面</td><td>固定フォーマット・伏せ字</td><td>検索置換・全置換</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">判断基準はシンプルです。</p>



<ul class="wp-block-list"><li>置き換えたい文字の <strong>「内容」がわかっている</strong> → SUBSTITUTE</li><li>置き換えたい文字の <strong>「位置」がわかっている</strong> → REPLACE</li></ul>



<p class="wp-block-paragraph">「ハイフンを全部消したい」ならSUBSTITUTEです。「3文字目から2文字を変えたい」ならREPLACEです。実務で使う頻度はSUBSTITUTEのほうが圧倒的に高いですが、REPLACEは固定フォーマットの一部更新や伏せ字処理など、限定的だが代替の効かない場面で活躍します。</p>



<h3 class="wp-block-heading"><span id="toc27">REPLACE vs REGEXREPLACE</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-regexreplace-function/">REGEXREPLACE関数</a>は正規表現パターンで置換する関数です。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>REPLACE</th><th>REGEXREPLACE</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>非常に高い</td></tr><tr><td>向く場面</td><td>位置が固定</td><td>パターンマッチが必要</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">「数字3桁の後にハイフンが来る場所」のような複雑な条件で置換したい場合は REGEXREPLACE が圧倒的に強いです。一方、位置が決まっていて単純な置換ならREPLACEが直感的で速いです。</p>



<h3 class="wp-block-heading"><span id="toc28">REPLACE vs REPLACEB</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-replaceb-function/">REPLACEB関数</a>は「バイト数」で位置と長さを指定する関数です。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>REPLACE</th><th>REPLACEB</th></tr></thead><tbody><tr><td>単位</td><td>文字数</td><td>バイト数</td></tr><tr><td>全角の扱い</td><td>1文字 = 1</td><td>1文字 = 2</td></tr><tr><td>半角の扱い</td><td>1文字 = 1</td><td>1文字 = 1</td></tr><tr><td>向く場面</td><td>一般的な処理</td><td>レガシーシステム連携</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">「全角文字を2バイトとして扱うシステムにデータを連携する」など、バイト単位の境界が必要な場面でREPLACEBを使います。日常業務では REPLACE で十分なケースがほとんどです。</p>



<h3 class="wp-block-heading"><span id="toc29">使い分けフローチャート</span></h3>



<p class="wp-block-paragraph">迷ったらこの順で考えてください。</p>



<ol class="wp-block-list"><li><strong>置換場所が正規表現で表現できるパターン</strong> → REGEXREPLACE</li><li><strong>置換場所が「特定の文字列」</strong> → SUBSTITUTE</li><li><strong>置換場所が「先頭からN文字目」</strong> → REPLACE</li><li><strong>バイト単位で処理する必要がある</strong> → REPLACEB</li></ol>



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



<h3 class="wp-block-heading"><span id="toc31">#VALUE!エラーが出る</span></h3>



<p class="wp-block-paragraph">開始位置に0以下の数値を指定するとエラーになります。REPLACE関数の開始位置は <strong>1始まり</strong> です。</p>



<pre class="wp-block-code"><code>=REPLACE(A2, 0, 2, &quot;XX&quot;)  → #VALUE!エラー
=REPLACE(A2, 1, 2, &quot;XX&quot;)  → 正常動作</code></pre>



<p class="wp-block-paragraph">プログラミングに慣れている方は0始まりで考えがちですが、スプレッドシートの文字列関数は1始まりです。<a href="https://mashukabu.com/spreadsheet-mid-function/">MID関数</a>や<a href="https://mashukabu.com/spreadsheet-find-function/">FIND関数</a>も同じルールです。</p>



<h3 class="wp-block-heading"><span id="toc32">文字数に負の数を指定した場合もエラー</span></h3>



<p class="wp-block-paragraph">文字数（length）はゼロ以上の整数である必要があります。負の数を指定すると <code>#VALUE!</code> エラーです。</p>



<pre class="wp-block-code"><code>=REPLACE(A2, 3, -1, &quot;XX&quot;)  → #VALUE!エラー</code></pre>



<h3 class="wp-block-heading"><span id="toc33">開始位置がテキスト長を超えている場合</span></h3>



<p class="wp-block-paragraph">開始位置がテキストの文字数より大きいと、エラーにはならず <strong>末尾に新しいテキストが追加</strong> されます。</p>



<pre class="wp-block-code"><code>=REPLACE(&quot;ABC&quot;, 10, 2, &quot;XY&quot;)  → 「ABCXY」</code></pre>



<p class="wp-block-paragraph">意図しない結果になりやすいので、開始位置は元のテキストの文字数以内になっているか確認してください。LEN関数で事前チェックする方法もあります。</p>



<pre class="wp-block-code"><code>=IF(開始位置 &gt; LEN(A2), &quot;範囲外&quot;, REPLACE(A2, 開始位置, 文字数, &quot;新テキスト&quot;))</code></pre>



<h3 class="wp-block-heading"><span id="toc34">空セルを渡した場合</span></h3>



<p class="wp-block-paragraph">テキストが空セルや空文字列の場合、エラーにはならず新しいテキストだけが返ります。</p>



<pre class="wp-block-code"><code>=REPLACE(&quot;&quot;, 1, 0, &quot;ABC&quot;)  → 「ABC」</code></pre>



<p class="wp-block-paragraph">元データが空なのに結果が出力される点に注意してください。空セルチェックにはIF関数と組み合わせます。</p>



<pre class="wp-block-code"><code>=IF(A2=&quot;&quot;, &quot;&quot;, REPLACE(A2, 1, 2, &quot;XX&quot;))</code></pre>



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



<figure class="wp-block-table"><table><thead><tr><th>症状</th><th>原因</th><th>対処</th></tr></thead><tbody><tr><td><code>#VALUE!</code></td><td>開始位置が0以下</td><td>開始位置を1以上に</td></tr><tr><td><code>#VALUE!</code></td><td>文字数が負の数</td><td>文字数を0以上に</td></tr><tr><td><code>#VALUE!</code></td><td>FINDで検索文字が見つからない</td><td><code>IFERROR</code> でラップ</td></tr><tr><td>末尾に追記される</td><td>開始位置がテキスト長超過</td><td>LEN関数で事前チェック</td></tr><tr><td>空でも結果が出る</td><td>テキストが空セル</td><td>IF関数で空判定</td></tr><tr><td>数値計算ができない</td><td>戻り値が文字列型</td><td>VALUE関数で型変換</td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><span id="toc36">よくある質問</span></h2>



<h3 class="wp-block-heading"><span id="toc37">REPLACE関数とSUBSTITUTE関数はどちらを使うべきですか？</span></h3>



<p class="wp-block-paragraph">「どこにあるかわかっている」ならREPLACE、「何という文字かわかっている」ならSUBSTITUTEです。たとえば「電話番号の先頭3桁を変えたい」なら位置が決まっているのでREPLACE。「ハイフンをすべて削除したい」なら文字が決まっているのでSUBSTITUTEが向いています。実務ではSUBSTITUTEのほうが使用頻度が高いですが、REPLACEは固定フォーマットの一部更新や伏せ字処理など、限定的だが代替の効かない場面で活躍します。</p>



<h3 class="wp-block-heading"><span id="toc38">REPLACE関数で複数箇所を一度に置換できますか？</span></h3>



<p class="wp-block-paragraph">REPLACE関数は1回の呼び出しで1か所しか置換できません。複数箇所を変えたい場合は、REPLACE関数をネストするか（外側のREPLACEの内側にREPLACEを入れる）、複数の文字を一括変換したい場合は<a href="https://mashukabu.com/spreadsheet-substitute-function/">SUBSTITUTE関数</a>や<a href="https://mashukabu.com/spreadsheet-regexreplace-function/">REGEXREPLACE関数</a>を使うほうが効率的です。たとえば <code>=REPLACE(REPLACE(A1,1,2,"XX"),5,3,"YYY")</code> のように入れ子にします。</p>



<h3 class="wp-block-heading"><span id="toc39">開始位置にテキストの文字数を超える数値を指定したらエラーになりますか？</span></h3>



<p class="wp-block-paragraph">エラーにはなりません。開始位置が元のテキストの文字数を超えた場合、テキストの末尾に新しいテキストが追加されます。たとえば <code>=REPLACE("ABC",10,2,"XY")</code> の結果は「ABCXY」になります。意図しない結果になりやすいので、<a href="https://mashukabu.com/spreadsheet-len-function/">LEN関数</a>で文字数をチェックしてから使うと安全です。</p>



<h3 class="wp-block-heading"><span id="toc40">列全体に一気に適用したい場合はどう書きますか？</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-arrayformula-function/">ARRAYFORMULA関数</a>でラップすると列全体に一括適用できます。たとえば <code>=ARRAYFORMULA(REPLACE(A2:A100, 1, 2, "06"))</code> のように書けば、A2からA100の全行に一発で適用されます。1セルずつ数式をコピーする必要がないので、運用するスプレッドシートに組み込むときに便利です。</p>



<h3 class="wp-block-heading"><span id="toc41">ExcelのREPLACE関数とGoogleスプレッドシートのREPLACE関数は同じですか？</span></h3>



<p class="wp-block-paragraph">はい、機能は完全に同じです。構文・動作・エラーの挙動まですべて互換性があります。ExcelとGoogleスプレッドシート間でxlsxファイルをやり取りしても計算結果は変わりません。なお、バイト数で位置を指定する <a href="https://mashukabu.com/spreadsheet-replaceb-function/">REPLACEB関数</a> もExcel・スプレッドシート双方にあり、全角文字の処理が必要な場面で役立ちます。</p>



<h3 class="wp-block-heading"><span id="toc42">文字を削除せずに挿入だけしたい場合はどう書きますか？</span></h3>



<p class="wp-block-paragraph">文字数を0に指定すれば、元の文字を1文字も消さずに新しいテキストを挿入できます。<code>=REPLACE(A2, 3, 0, "-")</code> と書けば3文字目の前にハイフンが挿入されます。先頭に追加したい場合は開始位置を1にして <code>=REPLACE(A2, 1, 0, "PRE-")</code> とすればプレフィックスとして機能します。文字列連結（&#038;）を使わずに1関数で書けるので、ARRAYFORMULAとの相性も良いです。</p>



<h3 class="wp-block-heading"><span id="toc43">REPLACEの結果が文字列になってしまい計算に使えません</span></h3>



<p class="wp-block-paragraph">REPLACE関数の戻り値は常に文字列型です。数値として扱いたい場合は <a href="https://mashukabu.com/spreadsheet-value-function/">VALUE関数</a> でラップしてください。たとえば <code>=VALUE(REPLACE("2024", 1, 2, "20"))</code> とすれば結果が数値の2024になります。日付として扱いたい場合は <a href="https://mashukabu.com/spreadsheet-datevalue-function/">DATEVALUE関数</a> を使います。</p>



<h3 class="wp-block-heading"><span id="toc44">大文字小文字を区別した置換はできますか？</span></h3>



<p class="wp-block-paragraph">REPLACE関数は位置指定なので、大文字小文字の区別という概念がそもそもありません。「大文字のAだけを置換したい」のように内容で区別したい場合は<a href="https://mashukabu.com/spreadsheet-substitute-function/">SUBSTITUTE関数</a>（大文字小文字を区別する）を使ってください。大文字小文字を区別せずに検索したい場合は <a href="https://mashukabu.com/spreadsheet-search-function/">SEARCH関数</a> との組み合わせが選択肢になります。</p>



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



<p class="wp-block-paragraph">REPLACE関数の要点を整理します。</p>



<figure class="wp-block-table"><table><thead><tr><th>ポイント</th><th>内容</th></tr></thead><tbody><tr><td>基本構文</td><td><code>=REPLACE(テキスト, 開始位置, 文字数, 新しいテキスト)</code></td></tr><tr><td>引数</td><td>4つすべて必須</td></tr><tr><td>開始位置</td><td>1始まり（0以下は <code>#VALUE!</code>）</td></tr><tr><td>文字数0</td><td>削除せず挿入として機能</td></tr><tr><td>文字数超過</td><td>エラーにならず末尾まで置換</td></tr><tr><td>位置超過</td><td>エラーにならず末尾に追記</td></tr><tr><td>戻り値</td><td>常に文字列型</td></tr><tr><td>一括適用</td><td>ARRAYFORMULAでラップ</td></tr><tr><td>複数箇所</td><td>ネストまたはREGEXREPLACE</td></tr><tr><td>SUBSTITUTEとの違い</td><td>SUBSTITUTE=文字指定、REPLACE=位置指定</td></tr><tr><td>Excel互換</td><td>完全互換</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">REPLACE関数は「何文字目から何文字分」と位置で指定する置換関数です。固定フォーマットの一部変更や個人情報のマスク、年度プレフィックスの更新など、位置が決まっている場面で大活躍します。</p>



<p class="wp-block-paragraph">まずは市外局番の差し替えや伏せ字処理から試してみてください。慣れてきたら<a href="https://mashukabu.com/spreadsheet-find-function/">FIND関数</a>と組み合わせて動的な位置指定にチャレンジし、最終的には<a href="https://mashukabu.com/spreadsheet-arrayformula-function/">ARRAYFORMULA</a>で列全体を一括処理できるようになると、業務効率が一段階上がりますよ。</p>



<h3 class="wp-block-heading"><span id="toc46">次に読みたい関連記事</span></h3>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-substitute-function/">SUBSTITUTE関数</a> &#8211; 文字列指定で全置換</li><li><a href="https://mashukabu.com/spreadsheet-regexreplace-function/">REGEXREPLACE関数</a> &#8211; 正規表現で柔軟に置換</li><li><a href="https://mashukabu.com/spreadsheet-replaceb-function/">REPLACEB関数</a> &#8211; バイト数で位置指定</li><li><a href="https://mashukabu.com/spreadsheet-find-function/">FIND関数</a> &#8211; 文字列の位置を取得</li><li><a href="https://mashukabu.com/spreadsheet-len-function/">LEN関数</a> &#8211; 文字数をカウント</li><li><a href="https://mashukabu.com/spreadsheet-mid-function/">MID関数</a> &#8211; 文字列の途中を抽出</li><li><a href="https://mashukabu.com/spreadsheet-left-function/">LEFT関数</a> &#8211; 文字列の先頭を抽出</li><li><a href="https://mashukabu.com/spreadsheet-right-function/">RIGHT関数</a> &#8211; 文字列の末尾を抽出</li><li><a href="https://mashukabu.com/spreadsheet-arrayformula-function/">ARRAYFORMULA関数</a> &#8211; 範囲一括処理</li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-replace-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのSUBSTITUTE関数の使い方｜文字列置換の基本から応用まで</title>
		<link>https://mashukabu.com/spreadsheet-substitute-function/</link>
					<comments>https://mashukabu.com/spreadsheet-substitute-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Wed, 18 Mar 2026 22:34:25 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[REGEXREPLACE]]></category>
		<category><![CDATA[REPLACE関数]]></category>
		<category><![CDATA[SUBSTITUTE関数]]></category>
		<category><![CDATA[文字列操作]]></category>
		<category><![CDATA[文字列置換]]></category>
		<category><![CDATA[関数の使い方]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4256</guid>

					<description><![CDATA[スプレッドシートのSUBSTITUTE関数の基本から応用まで解説。第4引数で特定番目だけ置換、ネストで複数文字列を一括置換する方法、REPLACEとの違いも丁寧に説明します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">スプレッドシートで「この文字を別の文字に置き換えたい」と思ったことはありませんか？電話番号のハイフンを消したい、データのカッコを一括で外したい。手作業で直すと時間がかかりますし、何百行もあると修正漏れが怖いですよね。</p>



<p class="wp-block-paragraph">SUBSTITUTE関数を使えば、指定した文字列をまとめて置換できます。この記事ではスプレッドシートでの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">スプレッドシートのSUBSTITUTE関数の使い方：基本構文と引数の役割</a><ol><li><a href="#toc2" tabindex="0">4つの引数の役割</a></li><li><a href="#toc3" tabindex="0">基本的な使い方</a></li></ol></li><li><a href="#toc4" tabindex="0">SUBSTITUTE関数でよく使う実務パターン</a><ol><li><a href="#toc5" tabindex="0">スペース・改行・不要文字を削除する</a></li><li><a href="#toc6" tabindex="0">電話番号のハイフンを消す</a></li><li><a href="#toc7" tabindex="0">複数の文字列を一括置換する（ネストSUBSTITUTE）</a></li></ol></li><li><a href="#toc8" tabindex="0">第4引数で「何番目だけ」を指定する方法</a><ol><li><a href="#toc9" tabindex="0">同じ文字が複数ある場合の挙動</a></li><li><a href="#toc10" tabindex="0">実務活用例</a></li></ol></li><li><a href="#toc11" tabindex="0">SUBSTITUTE・REPLACE・REGEXREPLACEの使い分け</a><ol><li><a href="#toc12" tabindex="0">3関数の比較表</a></li></ol></li><li><a href="#toc13" tabindex="0">よくある失敗と対処法</a><ol><li><a href="#toc14" tabindex="0">大文字・小文字の区別に注意</a></li><li><a href="#toc15" tabindex="0">全角・半角の罠</a></li></ol></li><li><a href="#toc16" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">スプレッドシートのSUBSTITUTE関数の使い方：基本構文と引数の役割</span></h2>



<p class="wp-block-paragraph">SUBSTITUTE関数は、文字列の中から<strong>指定した文字を別の文字に置き換える</strong>関数です。読み方は「サブスティテュート」。英語の「Substitute（代わりに置く）」が名前の由来です。</p>



<p class="wp-block-paragraph">たとえば「東京都渋谷区」の「渋谷」を「新宿」に置き換えて「東京都新宿区」にできます。Excelの「検索と置換」機能のように使えますが、数式なので元データを壊さずに結果を得られるのがポイントです。</p>



<h3 class="wp-block-heading"><span id="toc2">4つの引数の役割</span></h3>



<pre class="wp-block-code"><code>=SUBSTITUTE(対象テキスト, 検索文字列, 置換文字列, [出現回数])</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>置き換え後の文字列（空文字&#8221;&#8221;で削除）</td></tr><tr><td>出現回数</td><td>省略可</td><td>何番目の一致だけを置換するか（省略で全置換）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">第4引数は省略するケースがほとんどです。省略すると一致する文字列を<strong>すべて</strong>置き換えます。</p>



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



<p class="wp-block-paragraph">セルA2に「2024/03/18」が入っているとします。</p>



<pre class="wp-block-code"><code>=SUBSTITUTE(A2, &quot;/&quot;, &quot;-&quot;)  → 「2024-03-18」</code></pre>



<p class="wp-block-paragraph">スラッシュをハイフンに置き換えました。対象テキストに「/」が2つありますが、第4引数を省略しているので両方とも置き換わります。</p>



<p class="wp-block-paragraph">置換文字列に空文字（&#8221;&#8221;）を指定すれば、文字の<strong>削除</strong>としても使えます。</p>



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



<p class="wp-block-paragraph">検索文字列が見つからなくてもエラーにはなりません。元テキストがそのまま返るだけなので、「置換できていない」事故に気づきにくいのです。</p>



<h2 class="wp-block-heading"><span id="toc4">SUBSTITUTE関数でよく使う実務パターン</span></h2>



<h3 class="wp-block-heading"><span id="toc5">スペース・改行・不要文字を削除する</span></h3>



<p class="wp-block-paragraph">データのコピペで混入する余分なスペースや改行は、SUBSTITUTE関数で一掃できます。</p>



<pre class="wp-block-code"><code>=SUBSTITUTE(A2, &quot; &quot;, &quot;&quot;)       → 半角スペースを削除
=SUBSTITUTE(A2, &quot;　&quot;, &quot;&quot;)      → 全角スペースを削除
=SUBSTITUTE(A2, CHAR(10), &quot;&quot;)  → 改行を削除</code></pre>



<p class="wp-block-paragraph">改行は目に見えないので直接入力できません。<code>CHAR(10)</code>で改行コードを指定するのがコツです。</p>



<h3 class="wp-block-heading"><span id="toc6">電話番号のハイフンを消す</span></h3>



<p class="wp-block-paragraph">電話番号を「数字だけ」にしたい場面はよくありますよね。</p>



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



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/03/02_formula_substitute-basic.png" alt="_images/spreadsheet-substitute-function/02_formula_substitute-basic.png" /></figure>



<p class="wp-block-paragraph">A2に「03-1234-5678」が入っていれば「0312345678」が返ります。ハイフンが2つあっても全置換なので1回の数式で完了です。</p>



<p class="wp-block-paragraph">!<a href="https://mashukabu.com/_images/spreadsheet-substitute-function/01_data_phone-numbers.png/">_images/spreadsheet-substitute-function/01_data_phone-numbers.png</a></p>



<h3 class="wp-block-heading"><span id="toc7">複数の文字列を一括置換する（ネストSUBSTITUTE）</span></h3>



<p class="wp-block-paragraph">SUBSTITUTE関数は1回の呼び出しで1種類の文字しか置換できません。複数の文字を置き換えたい場合は、SUBSTITUTE関数を入れ子（ネスト）にします。</p>



<p class="wp-block-paragraph">たとえばA2に「(株)ABC商事」が入っていて、カッコを両方消したい場合です。</p>



<pre class="wp-block-code"><code>=SUBSTITUTE(SUBSTITUTE(A2, &quot;(&quot;, &quot;&quot;), &quot;)&quot;, &quot;&quot;)  → 「株ABC商事」</code></pre>



<p class="wp-block-paragraph">!<a href="https://mashukabu.com/_images/spreadsheet-substitute-function/04_formula_substitute-nest.png/">_images/spreadsheet-substitute-function/04_formula_substitute-nest.png</a></p>



<p class="wp-block-paragraph">ちょっとむずかしく見えますが、やっていることはシンプルです。</p>



<ol class="wp-block-list"><li>内側の<code>SUBSTITUTE(A2, "(", "")</code>で「(」を削除 → 「株)ABC商事」</li><li>外側の<code>SUBSTITUTE(..., ")", "")</code>で「)」を削除 → 「株ABC商事」</li></ol>



<p class="wp-block-paragraph">!<a href="https://mashukabu.com/_images/spreadsheet-substitute-function/05_result_substitute-nest.png/">_images/spreadsheet-substitute-function/05_result_substitute-nest.png</a></p>



<p class="wp-block-paragraph">3つ以上の文字を消したいときは、さらにネストを重ねます。</p>



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



<p class="wp-block-paragraph">ネストが深くなると読みにくくなります。3段以上になる場合は、後述するREGEXREPLACE関数のほうがすっきり書けますよ。</p>



<h2 class="wp-block-heading"><span id="toc8">第4引数で「何番目だけ」を指定する方法</span></h2>



<h3 class="wp-block-heading"><span id="toc9">同じ文字が複数ある場合の挙動</span></h3>



<p class="wp-block-paragraph">第4引数を省略するとすべて置換されます。しかし「1番目だけ」「3番目だけ」を置き換えたい場合もありますよね。</p>



<p class="wp-block-paragraph">A2に「りんご-みかん-りんご-ぶどう」が入っています。</p>



<pre class="wp-block-code"><code>=SUBSTITUTE(A2, &quot;りんご&quot;, &quot;バナナ&quot;)     → 「バナナ-みかん-バナナ-ぶどう」
=SUBSTITUTE(A2, &quot;りんご&quot;, &quot;バナナ&quot;, 1)  → 「バナナ-みかん-りんご-ぶどう」
=SUBSTITUTE(A2, &quot;りんご&quot;, &quot;バナナ&quot;, 2)  → 「りんご-みかん-バナナ-ぶどう」</code></pre>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/03/06_result_substitute-nth.png" alt="_images/spreadsheet-substitute-function/06_result_substitute-nth.png" /></figure>



<p class="wp-block-paragraph">第4引数に「1」を指定すると、最初の「りんご」だけが置き換わります。「2」なら2番目だけです。</p>



<h3 class="wp-block-heading"><span id="toc10">実務活用例</span></h3>



<p class="wp-block-paragraph">商品コードが「A-001-A-B」のように複数のハイフンで区切られているとします。2番目のハイフンだけをスラッシュに変えたい場合です。</p>



<pre class="wp-block-code"><code>=SUBSTITUTE(A2, &quot;-&quot;, &quot;/&quot;, 2)  → 「A-001/A-B」</code></pre>



<p class="wp-block-paragraph">全体を変えずにピンポイントで置換できるのが第4引数の強みです。使う場面は限られますが、覚えておくと便利ですよ。</p>



<h2 class="wp-block-heading"><span id="toc11">SUBSTITUTE・REPLACE・REGEXREPLACEの使い分け</span></h2>



<p class="wp-block-paragraph">スプレッドシートには文字列を置換する関数が3つあります。それぞれ「何を基準に置き換えるか」が違います。</p>



<h3 class="wp-block-heading"><span id="toc12">3関数の比較表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>SUBSTITUTE</th><th>REPLACE</th><th>REGEXREPLACE</th></tr></thead><tbody><tr><td>置換の指定方法</td><td>文字列検索（何という文字か）</td><td>位置指定（何文字目から何文字分）</td><td>正規表現パターン</td></tr><tr><td>大文字/小文字</td><td>区別する</td><td>位置指定のため無関係</td><td>フラグで制御可能</td></tr><tr><td>複数箇所の置換</td><td>省略で全置換</td><td>1か所のみ</td><td>パターン一致で全置換</td></tr><tr><td>複数種類の文字</td><td>ネストが必要</td><td>不可</td><td>1つの正規表現で対応可能</td></tr><tr><td>難易度</td><td>低い</td><td>低い</td><td>正規表現の知識が必要</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">使い分けの判断基準はシンプルです。</p>



<ul class="wp-block-list"><li><strong>特定の文字列を置き換えたい</strong> → SUBSTITUTE</li><li><strong>特定の位置の文字を置き換えたい</strong> → REPLACE</li><li><strong>パターンで柔軟に置き換えたい</strong> → REGEXREPLACE</li></ul>



<p class="wp-block-paragraph">たとえば「3文字目から2文字を消す」ならREPLACEです。「ハイフンを全部消す」ならSUBSTITUTEです。「数字だけ消す」「カッコと中身をまとめて消す」のようにパターンで指定したいならREGEXREPLACEの出番です。</p>



<p class="wp-block-paragraph">実務で一番使うのはSUBSTITUTEです。まずはSUBSTITUTEを覚えてください。対応できない場面が出てきたら、REPLACEやREGEXREPLACEを検討してみましょう。</p>



<h2 class="wp-block-heading"><span id="toc13">よくある失敗と対処法</span></h2>



<h3 class="wp-block-heading"><span id="toc14">大文字・小文字の区別に注意</span></h3>



<p class="wp-block-paragraph">SUBSTITUTE関数は<strong>大文字と小文字を区別</strong>します。これは<a href="https://mashukabu.com/spreadsheet-find-function/">FIND関数</a>と同じ仕様です。</p>



<pre class="wp-block-code"><code>=SUBSTITUTE(&quot;ABC&quot;, &quot;a&quot;, &quot;x&quot;)  → 「ABC」（変化なし）
=SUBSTITUTE(&quot;ABC&quot;, &quot;A&quot;, &quot;x&quot;)  → 「xBC」</code></pre>



<p class="wp-block-paragraph">小文字の「a」を検索しても、大文字の「A」にはヒットしません。エラーにはなりません。元テキストがそのまま返るだけなので、「置換できていない」事故に気づきにくいのです。</p>



<p class="wp-block-paragraph">大文字小文字を無視して置換したいときは、LOWERやUPPERで統一してから使います。</p>



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



<p class="wp-block-paragraph">ただしこの方法だと出力結果もすべて小文字になります。元の大文字小文字を保持したい場合はREGEXREPLACE関数の<code>(?i)</code>フラグを検討してください。</p>



<h3 class="wp-block-heading"><span id="toc15">全角・半角の罠</span></h3>



<p class="wp-block-paragraph">もうひとつよくあるのが、全角と半角の違いに気づかないケースです。</p>



<pre class="wp-block-code"><code>=SUBSTITUTE(A2, &quot; &quot;, &quot;&quot;)   → 半角スペースだけ削除
=SUBSTITUTE(A2, &quot;　&quot;, &quot;&quot;)  → 全角スペースだけ削除</code></pre>



<p class="wp-block-paragraph">半角スペースと全角スペースは別の文字として扱われます。見た目がほぼ同じなので気づきにくいのがやっかいです。</p>



<p class="wp-block-paragraph">「スペースを消したはずなのに残っている」と思ったら、全角・半角の混在を疑ってください。両方消したい場合はネストで対応します。</p>



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



<p class="wp-block-paragraph">ハイフンも同様です。半角「-」と全角「ー」は別物なので注意してくださいね。</p>



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



<p class="wp-block-paragraph">SUBSTITUTE関数の要点を整理します。</p>



<figure class="wp-block-table"><table><thead><tr><th>ポイント</th><th>内容</th></tr></thead><tbody><tr><td>基本構文</td><td><code>=SUBSTITUTE(対象, 検索文字列, 置換文字列, [出現回数])</code></td></tr><tr><td>全置換</td><td>第4引数を省略するとすべて置換</td></tr><tr><td>文字の削除</td><td>置換文字列に空文字（&#8221;&#8221;）を指定</td></tr><tr><td>大文字/小文字</td><td>区別する（LOWERで回避可能）</td></tr><tr><td>全角/半角</td><td>区別する（ネストで両対応）</td></tr><tr><td>見つからない場合</td><td>エラーにならず元テキストを返す</td></tr><tr><td>複数種類の置換</td><td>ネストで対応（3種以上はREGEXREPLACE推奨）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">SUBSTITUTE関数は「この文字を別の文字に変えたい」というシンプルな要望に応える関数です。電話番号のハイフン削除やスペースの除去など、日常的なデータ整理で大活躍します。</p>



<p class="wp-block-paragraph">まずはハイフンやスペースの削除から試してみてください。慣れてきたらネストで複数文字の一括置換に挑戦して、データクリーニングの幅を広げていきましょう。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-substitute-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
