<?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>REPLACEB &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/replaceb/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Tue, 05 May 2026 12:45:24 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>

<image>
	<url>https://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>REPLACEB &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>ExcelのREPLACEB関数の使い方｜位置指定バイト置換</title>
		<link>https://mashukabu.com/excel-replaceb-function/</link>
					<comments>https://mashukabu.com/excel-replaceb-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Tue, 05 May 2026 12:45:24 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[REPLACEB]]></category>
		<category><![CDATA[バイト]]></category>
		<category><![CDATA[文字列]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6509</guid>

					<description><![CDATA[ExcelのREPLACEB関数の使い方を解説。バイト数で位置指定する文字置換関数で、半角と全角が混在するデータでもREPLACEとは違う精密な置換が可能です。REPLACEとの違い、FINDB・SEARCHBとの組み合わせも実例付きで紹介。]]></description>
										<content:encoded><![CDATA[
<h1 class="wp-block-heading">ExcelのREPLACEB関数の使い方｜位置指定バイト置換</h1>



<p class="wp-block-paragraph">REPLACEB関数は、文字列の指定位置から指定バイト数分の文字を、別の文字列で置き換える関数です。半角と全角が混在するデータで「正しい位置」を指定するときに、文字数ではなくバイト数で動くため重宝します。</p>



<p class="wp-block-paragraph">「REPLACE関数で半角カナ混在データを置換したら、位置がずれた」という経験はありませんか。本記事では、REPLACEB関数の構文・使い方・REPLACE関数との違いを実例付きで解説します。FINDB・SEARCHB関数と組み合わせた実用パターンも紹介します。</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><li><a href="#toc1" tabindex="0">ExcelのREPLACEB関数とは？（読み方・基本機能）</a><ol><li><a href="#toc2" tabindex="0">REPLACEB関数の読み方と語源</a></li><li><a href="#toc3" tabindex="0">REPLACEB関数で何ができるか</a></li></ol></li><li><a href="#toc4" tabindex="0">REPLACEB関数の構文と引数</a><ol><li><a href="#toc5" tabindex="0">構文</a></li><li><a href="#toc6" tabindex="0">引数の詳細</a></li></ol></li><li><a href="#toc7" tabindex="0">REPLACEB関数の使い方（基本例）</a><ol><li><a href="#toc8" tabindex="0">例1: 半角文字列の途中を置換</a></li><li><a href="#toc9" tabindex="0">例2: 全角文字列の途中を置換</a></li><li><a href="#toc10" tabindex="0">例3: 半角カナを含む文字列の置換</a></li></ol></li><li><a href="#toc11" tabindex="0">REPLACE関数とREPLACEB関数の違い</a><ol><li><a href="#toc12" tabindex="0">バイト数早見表</a></li><li><a href="#toc13" tabindex="0">使い分けの判断基準</a></li></ol></li><li><a href="#toc14" tabindex="0">FINDB・SEARCHBと組み合わせた実用例</a><ol><li><a href="#toc15" tabindex="0">例1: 区切り文字を全角に統一</a></li><li><a href="#toc16" tabindex="0">例2: ワイルドカード検索からの置換</a></li><li><a href="#toc17" tabindex="0">例3: 個人情報のマスキング</a></li></ol></li><li><a href="#toc18" tabindex="0">REPLACEB関数のよくあるエラーと対処法</a></li><li><a href="#toc19" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ExcelのREPLACEB関数とは？（読み方・基本機能）</span></h2>



<h3 class="wp-block-heading"><span id="toc2">REPLACEB関数の読み方と語源</span></h3>



<p class="wp-block-paragraph">REPLACEB関数（読み方：リプレイス・ビー）は、文字列の一部をバイト数指定で別の文字列に置き換える関数です。関数名は「REPLACE（置換）+ B（Byte：バイト）」に由来します。</p>



<p class="wp-block-paragraph">Excelには文字数で操作する系統（REPLACE/LEFT/MID等）が用意されています。それとは別に、バイト数で操作する「Bシリーズ」（REPLACEB/LEFTB/MIDB等）もあります。本関数はその「Bシリーズ」の置換版です。</p>



<h3 class="wp-block-heading"><span id="toc3">REPLACEB関数で何ができるか</span></h3>



<p class="wp-block-paragraph">REPLACEB関数の主な用途は次のとおりです。</p>



<ul class="wp-block-list"><li>半角・全角が混在する文字列の一部置換</li><li>半角カタカナを含むデータでの位置指定置換</li><li>商品コード・顧客IDなど固定バイト長フィールドの一部書き換え</li><li>個人情報のマスキング処理（電話番号の中央4桁を <code>****</code> にする等）</li><li>外部システム連携時のフィールド長調整</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p><strong>REPLACEとREPLACEBはどちらを使う？</strong><br>すべて半角だけ、またはすべて全角だけのデータならREPLACEで十分です。半角と全角が混在する、特に半角カナを含むデータではREPLACEBが必要になります。</p></blockquote>



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



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



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



<h3 class="wp-block-heading"><span id="toc6">引数の詳細</span></h3>



<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>&#8220;Excel関数&#8221;</td></tr><tr><td>開始位置</td><td>置き換えを開始するバイト位置（1始まり）</td><td>必須</td><td>1</td></tr><tr><td>バイト数</td><td>置き換える長さ（バイト数）</td><td>必須</td><td>5</td></tr><tr><td>置換文字列</td><td>置き換え後の新しい文字列</td><td>必須</td><td>&#8220;Word&#8221;</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">戻り値は置き換え後の文字列（テキスト型）です。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>開始位置は「文字数ではなくバイト数」で数えます。日本語環境のExcelでは、半角=1バイト、全角=2バイト、半角カナ=1バイトとして処理されます。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc7">REPLACEB関数の使い方（基本例）</span></h2>



<h3 class="wp-block-heading"><span id="toc8">例1: 半角文字列の途中を置換</span></h3>



<p class="wp-block-paragraph">半角文字列だけのデータでは、文字数とバイト数が一致するためREPLACEと同じ感覚で使えます。</p>



<pre class="wp-block-code"><code>=REPLACEB(&quot;Excel関数の使い方&quot;, 1, 5, &quot;Word&quot;)</code></pre>



<p class="wp-block-paragraph">結果は <code>"Word関数の使い方"</code> です。先頭5バイト分（&#8221;Excel&#8221;）を <code>"Word"</code> に置き換えています。</p>



<h3 class="wp-block-heading"><span id="toc9">例2: 全角文字列の途中を置換</span></h3>



<p class="wp-block-paragraph">全角文字は1文字=2バイトです。「商品マスタ」の先頭2文字（&#8221;商品&#8221;）を置き換えるなら、バイト数=4を指定します。</p>



<pre class="wp-block-code"><code>=REPLACEB(&quot;商品マスタ表&quot;, 1, 4, &quot;顧客&quot;)</code></pre>



<p class="wp-block-paragraph">結果は <code>"顧客マスタ表"</code> です。バイト数=4で全角2文字分を指定している点がポイントです。</p>



<h3 class="wp-block-heading"><span id="toc10">例3: 半角カナを含む文字列の置換</span></h3>



<p class="wp-block-paragraph">半角カナ「ｵｵﾀ」は3バイト（1文字1バイト）です。「ｵｵﾀ ﾀﾛｳ様」の先頭3バイト分を置換するなら次のように書きます。</p>



<pre class="wp-block-code"><code>=REPLACEB(&quot;ｵｵﾀ ﾀﾛｳ様&quot;, 1, 3, &quot;鈴木&quot;)</code></pre>



<p class="wp-block-paragraph">結果は <code>"鈴木 ﾀﾛｳ様"</code> です。半角カナをREPLACE関数で扱うときは「文字数で3」と指定します。REPLACEB関数では「バイト数で3」と指定し、たまたま同じ数値になりますが考え方は別物です。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>半角カナはShift_JISでは1バイトとしてカウントされます。「半角だから1バイト」と覚えておくと迷いません。</p></blockquote>



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



<h3 class="wp-block-heading"><span id="toc12">バイト数早見表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>文字種</th><th>例</th><th>バイト数</th></tr></thead><tbody><tr><td>半角英数字</td><td>A, 1, #</td><td>1バイト</td></tr><tr><td>半角カタカナ</td><td>ｱ, ｲ, ｳ</td><td>1バイト</td></tr><tr><td>半角スペース</td><td>（空白）</td><td>1バイト</td></tr><tr><td>全角ひらがな</td><td>あ, い, う</td><td>2バイト</td></tr><tr><td>全角カタカナ</td><td>ア, イ, ウ</td><td>2バイト</td></tr><tr><td>全角漢字</td><td>漢, 字</td><td>2バイト</td></tr><tr><td>全角英数字</td><td>Ａ, １</td><td>2バイト</td></tr><tr><td>全角スペース</td><td>&nbsp;</td><td>2バイト</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc13">使い分けの判断基準</span></h3>



<p class="wp-block-paragraph">REPLACEとREPLACEBの動作を、同じ文字列で比較してみます。元データを <code>"ｱｲｳ漢字"</code> とし、4文字目（または対応するバイト位置）の「漢」を「国」に置き換える例です。</p>



<pre class="wp-block-code"><code>=REPLACE(&quot;ｱｲｳ漢字&quot;, 4, 1, &quot;国&quot;)</code></pre>



<p class="wp-block-paragraph">結果は <code>"ｱｲｳ国字"</code> です。文字数で「4文字目から1文字」を置換しています。</p>



<pre class="wp-block-code"><code>=REPLACEB(&quot;ｱｲｳ漢字&quot;, 4, 2, &quot;国&quot;)</code></pre>



<p class="wp-block-paragraph">結果は同じく <code>"ｱｲｳ国字"</code> です。バイト数では「4バイト目（半角カナ3バイト+1）から2バイト分」を指定します。</p>



<p class="wp-block-paragraph">判断基準は次のとおりです。</p>



<ul class="wp-block-list"><li>データがすべて半角、またはすべて全角 → <strong>REPLACE関数で十分</strong></li><li>半角と全角が混在 → <strong>REPLACEB関数が安全</strong></li><li>半角カナを含む → <strong>REPLACEB関数が確実</strong></li><li>外部システムからバイト数で指示が来る → <strong>REPLACEB関数一択</strong></li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>迷ったらLENB関数で文字列の総バイト数を確認してから設計するとミスが減ります。LENBはREPLACEBと同じバイト基準で動作します。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc14">FINDB・SEARCHBと組み合わせた実用例</span></h2>



<p class="wp-block-paragraph">REPLACEB関数の真価は、置換位置を動的に求めるFINDB関数・SEARCHB関数と組み合わせたときに発揮されます。</p>



<h3 class="wp-block-heading"><span id="toc15">例1: 区切り文字を全角に統一</span></h3>



<p class="wp-block-paragraph">A1セルに <code>"東京都-新宿区"</code> が入っている前提で、最初のハイフン <code>"-"</code> を全角の <code>"／"</code> に置き換えます。</p>



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



<p class="wp-block-paragraph">結果は <code>"東京都／新宿区"</code> です。FINDB関数が <code>"-"</code> のバイト位置を返し、REPLACEB関数がそこから1バイト分を置換します。</p>



<p class="wp-block-paragraph">FINDB関数の詳細は<a href="https://mashukabu.com/excel-findb-function/">ExcelのFINDB関数の使い方</a>を参照してください。</p>



<h3 class="wp-block-heading"><span id="toc16">例2: ワイルドカード検索からの置換</span></h3>



<p class="wp-block-paragraph">ワイルドカードを使いたい場合はSEARCHB関数を組み合わせます。例として、A1の「数字+ハイフン」を全角ハイフンに置換します。</p>



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



<p class="wp-block-paragraph">A1が <code>"商品1-A"</code> なら、SEARCHB関数が <code>"1-"</code> の開始位置を返します。REPLACEB関数が2バイト分を <code>"－"</code> に置換します。</p>



<p class="wp-block-paragraph">SEARCHB関数の詳細は<a href="https://mashukabu.com/excel-searchb-function/">ExcelのSEARCHB関数の使い方</a>を参照してください。</p>



<h3 class="wp-block-heading"><span id="toc17">例3: 個人情報のマスキング</span></h3>



<p class="wp-block-paragraph">電話番号の中央部分を <code>"****"</code> でマスクするパターンです。</p>



<pre class="wp-block-code"><code>=REPLACEB(&quot;080-1234-5678&quot;, 5, 4, &quot;****&quot;)</code></pre>



<p class="wp-block-paragraph">結果は <code>"080-****-5678"</code> です。固定位置の置換なのでFINDB関数は不要ですが、可変位置なら組み合わせると便利です。</p>



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



<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>文字化け（不完全な文字）</td><td>全角文字のバイト境界以外を開始位置に指定</td><td>LENB関数で境界を確認し、開始位置を全角文字の先頭に合わせる</td></tr><tr><td>位置ずれ</td><td>半角カナ混在データでREPLACEを使った</td><td>REPLACEBに切り替え、バイト数で指定し直す</td></tr><tr><td>結果が空白だらけ</td><td>全角文字のバイト数指定が不完全</td><td>バイト数を全角文字の倍数（2,4,6&#8230;）にそろえる</td></tr><tr><td>末尾に余分な文字が付く</td><td>開始位置が文字列のバイト長を超えた</td><td>末尾追加の動作。意図しない場合はLENBで長さを確認</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>全角文字の途中（バイト境界以外）から置換を始めると、不完全な文字が半角スペースで埋められて表示されます。バイト位置を扱うときはLENB関数とFINDB関数で位置を確認するクセをつけると安全です。</p></blockquote>



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



<p class="wp-block-paragraph">REPLACEB関数は、文字列の指定位置から指定バイト数分の文字を別の文字列に置き換える関数です。半角と全角が混在するデータ、特に半角カナを含むデータで「位置ずれ」を防ぐために役立ちます。</p>



<p class="wp-block-paragraph">本記事のポイントを振り返ります。</p>



<ul class="wp-block-list"><li>構文は <code>=REPLACEB(文字列, 開始位置, バイト数, 置換文字列)</code></li><li>半角=1バイト、全角=2バイト、半角カナ=1バイトで計算する</li><li>すべて半角や全角のデータならREPLACEで十分。混在ならREPLACEB</li><li>FINDB・SEARCHB関数と組み合わせると動的な位置指定置換ができる</li><li>全角文字のバイト境界以外を開始位置にすると文字化けするので注意</li></ul>



<p class="wp-block-paragraph">文字数指定のREPLACEと、バイト数指定のREPLACEBを使い分けてみてください。業務データのクレンジングや一括変換が格段に楽になります。FINDB・SEARCHB関数と組み合わせた応用パターンもぜひ取り入れてみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-replaceb-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのREPLACEB関数の使い方｜バイト位置指定置換</title>
		<link>https://mashukabu.com/spreadsheet-replaceb-function/</link>
					<comments>https://mashukabu.com/spreadsheet-replaceb-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sun, 19 Apr 2026 14:10:53 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[FINDB]]></category>
		<category><![CDATA[REPLACEB]]></category>
		<category><![CDATA[SEARCHB]]></category>
		<category><![CDATA[バイト]]></category>
		<category><![CDATA[文字列操作]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6063</guid>

					<description><![CDATA[スプレッドシートのREPLACEB関数の使い方を実例付きで解説します。文字列の指定バイト位置から指定バイト数分を別の文字列に置き換える関数で、全角2バイト・半角1バイトでカウントします。基本構文、REPLACE関数との違い、SEARCHBやFINDBと組み合わせた動的な置換パターン、全角文字の途中で切れたときの挙動、よくあるエラー対処まで丁寧にまとめました。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">スプレッドシートで全角半角が混ざったデータを扱っていて、「特定のバイト位置から数バイトだけをまとめて別の文字列に差し替えたい」という場面、ありませんか。固定長ファイルや基幹システム連携のデータでは、「何バイト目から何バイト分」という単位でフィールドが決まっていることが多いんですよね。</p>



<p class="wp-block-paragraph">REPLACE関数でも置換はできますが、こちらは文字数ベースなので、全角半角混在のデータでは位置がずれてしまうことがあります。そんなときに使えるのが、スプレッドシートのREPLACEB関数ですよ。全角2バイト・半角1バイトでカウントしながら、指定した位置から指定バイト数分をバッサリ置き換えてくれます。</p>



<p class="wp-block-paragraph">この記事では、スプレッドシートのREPLACEB関数の構文から、REPLACE関数との違い、SEARCHBやFINDBと組み合わせた動的な置換パターン、全角文字の途中で切れたときの挙動、よくあるエラー対処まで紹介します。コピペで使えるテンプレートも置いておきますね。</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">スプレッドシートのREPLACEB関数とは？</a><ol><li><a href="#toc2" tabindex="0">関数の基本構文と引数</a></li><li><a href="#toc3" tabindex="0">REPLACE関数との違い（文字数 vs バイト数）</a></li><li><a href="#toc4" tabindex="0">REPLACEBとSUBSTITUTEの違い</a></li></ol></li><li><a href="#toc5" tabindex="0">REPLACEB関数の基本的な使い方</a><ol><li><a href="#toc6" tabindex="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">実務で使えるREPLACEB関数の活用パターン</a><ol><li><a href="#toc10" tabindex="0">固定長データの特定フィールドを書き換える</a></li><li><a href="#toc11" tabindex="0">SEARCHBで位置を取って動的に置換する</a></li><li><a href="#toc12" tabindex="0">マスク処理（個人情報の一部伏字化）</a></li></ol></li><li><a href="#toc13" tabindex="0">SEARCHB・FINDBと組み合わせた動的置換テンプレート</a><ol><li><a href="#toc14" tabindex="0">区切り文字で分けた最初のフィールドを置換</a></li><li><a href="#toc15" tabindex="0">2番目のフィールドだけを置換</a></li><li><a href="#toc16" tabindex="0">末尾のフィールドだけを置換</a></li><li><a href="#toc17" tabindex="0">厳密一致で置換したいときはFINDB</a></li></ol></li><li><a href="#toc18" tabindex="0">REPLACE系・SUBSTITUTE系関数との使い分け</a><ol><li><a href="#toc19" tabindex="0">REPLACE・REPLACEB・SUBSTITUTEの比較</a></li><li><a href="#toc20" tabindex="0">REPLACEBを選ぶべき場面</a></li></ol></li><li><a href="#toc21" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc22" tabindex="0">&#8220;#VALUE!&#8221; エラー（開始位置が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">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">スプレッドシートのREPLACEB関数とは？</span></h2>



<p class="wp-block-paragraph">スプレッドシートのREPLACEB関数は、文字列の指定したバイト位置から指定バイト数分を、別の文字列に置き換える関数です。読み方は「リプレース・ビー」で、REPLACE（置換）と Byte（バイト）を組み合わせた名前ですよ。</p>



<p class="wp-block-paragraph">全角文字は2バイト、半角文字は1バイトとしてカウントします。特徴は、置換する範囲をバイト数で指定することと、置換後の文字列の長さは元の範囲と違ってもOKなところです。「3バイト分を消して空文字にする」「2バイト分を5バイトに膨らませる」みたいな操作も自由自在ですよ。</p>



<h3 class="wp-block-heading"><span id="toc2">関数の基本構文と引数</span></h3>



<p class="wp-block-paragraph">基本構文はこちらです。引数は4つで、全て省略不可です。</p>



<pre class="wp-block-code"><code>=REPLACEB(対象文字列, 開始位置, バイト数, 置換文字列)</code></pre>



<p class="wp-block-paragraph">引数の意味を整理しておきましょう。</p>



<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>置換を開始するバイト位置（1始まり）</td><td>1以上の整数</td></tr><tr><td>バイト数</td><td>置換する範囲のバイト数</td><td>0以上の整数</td></tr><tr><td>置換文字列</td><td>置き換えたい新しい文字列</td><td>空文字 <code>""</code> もOK</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">バイト数に 0 を指定すると、その位置に「挿入」する動きになります。削除したい場合は置換文字列を <code>""</code> にすればOKです。開始位置や バイト数が小数の場合は整数部分に切り捨てられますよ。</p>



<h3 class="wp-block-heading"><span id="toc3">REPLACE関数との違い（文字数 vs バイト数）</span></h3>



<p class="wp-block-paragraph">REPLACE関数とREPLACEB関数の違いは、位置とサイズの単位です。ここを押さえておくと、使い分けで迷いません。</p>



<ul class="wp-block-list"><li><strong>REPLACE</strong>: 「何文字目から何文字分」を置換する。全角半角を区別しない</li><li><strong>REPLACEB</strong>: 「何バイト目から何バイト分」を置換する。全角=2バイト、半角=1バイトで計算</li></ul>



<p class="wp-block-paragraph">たとえば「商品A-100」という文字列で、先頭から3文字目から2文字分を置き換えた場合と、3バイト目から2バイト分を置き換えた場合で結果がこう変わります。</p>



<figure class="wp-block-table"><table><thead><tr><th>数式</th><th>結果</th><th>解説</th></tr></thead><tbody><tr><td><code>=REPLACE("商品A-100", 3, 2, "XX")</code></td><td>商品XX100</td><td>3文字目「A」と4文字目「-」を&#8221;XX&#8221;に置換</td></tr><tr><td><code>=REPLACEB("商品A-100", 3, 2, "XX")</code></td><td>商XX-100</td><td>3バイト目「品」（2バイト）を&#8221;XX&#8221;に置換</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">単位が違うだけで置換される範囲も大きく変わりますよね。バイト単位のデータ（固定長CSV・基幹システム連携など）を扱うときはREPLACEB、文字数ベースで考えたいときはREPLACEを選びましょう。</p>



<h3 class="wp-block-heading"><span id="toc4">REPLACEBとSUBSTITUTEの違い</span></h3>



<p class="wp-block-paragraph">似たような置換系関数にSUBSTITUTE関数があります。こちらも文字列の置換ですが、役割は真逆と言ってもいいくらい違います。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>指定方法</th><th>典型用途</th></tr></thead><tbody><tr><td>REPLACEB</td><td>バイト位置＋バイト数で範囲指定</td><td>固定長データの特定フィールドを書き換え</td></tr><tr><td>SUBSTITUTE</td><td>「この文字列を」「この文字列に」と内容指定</td><td>全角スペースを半角に一括変換、表記ゆれ統一</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">「位置がわかっているならREPLACEB、内容がわかっているならSUBSTITUTE」と覚えておくと迷いません。位置も内容も動的に決まる場合は、SEARCHBで位置を取ってからREPLACEBに渡す組み合わせが効きますよ。</p>



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



<p class="wp-block-paragraph">それでは実際に使ってみましょう。バイト位置のカウント方法と、置換前後でサイズが変わる挙動を意識すると、結果がイメージしやすくなります。</p>



<h3 class="wp-block-heading"><span id="toc6">全角・半角が混在する文字列での挙動</span></h3>



<p class="wp-block-paragraph">代表的なパターンをいくつか並べてみますね。</p>



<figure class="wp-block-table"><table><thead><tr><th>数式</th><th>結果</th><th>バイトの内訳</th></tr></thead><tbody><tr><td><code>=REPLACEB("あいうえお", 3, 2, "ン")</code></td><td>あンえお</td><td>3バイト目から2バイト（「い」）を「ン」に置換</td></tr><tr><td><code>=REPLACEB("ABCDE", 2, 3, "xyz")</code></td><td>AxyzE</td><td>2バイト目から3バイト分（BCD）を&#8221;xyz&#8221;に置換</td></tr><tr><td><code>=REPLACEB("Excel関数", 6, 2, "表")</code></td><td>Excel表数</td><td>6バイト目から2バイト分（「関」）を「表」に置換</td></tr><tr><td><code>=REPLACEB("ABC", 2, 1, "XX")</code></td><td>AXXC</td><td>2バイト目から1バイト分（B）を&#8221;XX&#8221;に置換（長さが変わってもOK）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">4行目がポイントですよ。置換前が1バイトで置換後が2バイトでも、問題なく動きます。置換後の文字列の長さは自由なので、「詰める」「膨らませる」操作もこの関数1本でできるんですね。</p>



<h3 class="wp-block-heading"><span id="toc7">文字列の挿入と削除</span></h3>



<p class="wp-block-paragraph">置換文字列を空文字 <code>""</code> にすると、指定範囲を削除できます。バイト数に 0 を指定すると、その位置に置換文字列を挿入する動きになりますよ。</p>



<pre class="wp-block-code"><code>削除:  =REPLACEB(&quot;商品A-100&quot;, 5, 2, &quot;&quot;)    → 商品-100
                                              （5バイト目から2バイト「A-」削除 → あれ？「A-」は3バイト目からなので要注意）</code></pre>



<p class="wp-block-paragraph">挿入と削除の例をもう一度、位置を明確にしながら整理します。</p>



<figure class="wp-block-table"><table><thead><tr><th>数式</th><th>結果</th><th>解説</th></tr></thead><tbody><tr><td><code>=REPLACEB("ABCDE", 3, 2, "")</code></td><td>ABE</td><td>3バイト目から2バイト（CD）を削除</td></tr><tr><td><code>=REPLACEB("ABCDE", 3, 0, "XYZ")</code></td><td>ABXYZCDE</td><td>3バイト目に&#8221;XYZ&#8221;を挿入（何も削除しない）</td></tr><tr><td><code>=REPLACEB("ABCDE", 6, 0, "!")</code></td><td>ABCDE!</td><td>末尾の次のバイト位置に追記</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">末尾に追記するときは、開始位置を「対象文字列のバイト長+1」にしてバイト数を 0 にするのが定番ですよ。<code>LENB(A2)+1</code> と組み合わせると動的に追記できます。</p>



<h3 class="wp-block-heading"><span id="toc8">全角文字の途中で切れた場合の挙動</span></h3>



<p class="wp-block-paragraph">REPLACEBで一番ハマるポイントがここです。全角文字は2バイト分を占有していますが、REPLACEBは「1バイト目だけ置換する」という指定もできてしまいます。</p>



<pre class="wp-block-code"><code>=REPLACEB(&quot;あいうえお&quot;, 2, 1, &quot;X&quot;)    → ?Xいうえお（環境によっては文字化け）
=REPLACEB(&quot;あいうえお&quot;, 1, 1, &quot;X&quot;)    → X?いうえお（同上）</code></pre>



<p class="wp-block-paragraph">全角文字の片バイトだけを置換すると、残された半分が不正な文字コードになってしまいます。スプレッドシート上では <code>?</code> や空白、あるいは文字化けした記号として表示されることが多いですよ。</p>



<p class="wp-block-paragraph">全角文字を扱うときは、開始位置とバイト数の両方を偶数側に合わせて、境界を跨がないように設計するのが安全です。LENB と文字の構成が把握できるデータなら問題ありませんが、可変の入力を相手にする場合はSEARCHBで位置を取ってから渡すのがおすすめですよ。</p>



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



<p class="wp-block-paragraph">REPLACEB関数が活躍するのは、固定長フォーマットや、バイト単位でフィールドが決まっているデータの処理です。よく出てくる3パターンを紹介しますね。</p>



<h3 class="wp-block-heading"><span id="toc10">固定長データの特定フィールドを書き換える</span></h3>



<p class="wp-block-paragraph">基幹システムから出力される固定長データで、「先頭10バイトがコード、次の20バイトが名称、次の5バイトが区分」みたいな構造のとき、特定フィールドだけを書き換えたい場面があります。</p>



<pre class="wp-block-code"><code>区分を書き換え:  =REPLACEB(A2, 31, 5, &quot;B0001&quot;)</code></pre>



<p class="wp-block-paragraph">31バイト目から5バイト分（区分フィールド）を「B0001」に差し替えます。位置とサイズがデータ仕様で確定しているので、REPLACEBはこの用途にぴったりですよ。</p>



<h3 class="wp-block-heading"><span id="toc11">SEARCHBで位置を取って動的に置換する</span></h3>



<p class="wp-block-paragraph">区切り記号の位置が行ごとに変わるデータでは、SEARCHBで区切り位置を動的に取得して、REPLACEBに渡します。「コード-名前」形式のデータで、コード部分だけを別の値に書き換えるイメージですね。</p>



<pre class="wp-block-code"><code>=REPLACEB(A2, 1, SEARCHB(&quot;-&quot;, A2) - 1, &quot;NEW&quot;)</code></pre>



<p class="wp-block-paragraph">SEARCHBで最初のハイフン位置を取り、その1バイト前までを「NEW」に置換します。コード部分の長さが行ごとに違っても、同じ式でまとめて処理できますよ。</p>



<p class="wp-block-paragraph">関連: <a href="https://mashukabu.com/spreadsheet-searchb-function/">スプレッドシートのSEARCHB関数の使い方</a> でSEARCHBの詳しい挙動を押さえておくと、このパターンの理解がぐっと早くなります。</p>



<h3 class="wp-block-heading"><span id="toc12">マスク処理（個人情報の一部伏字化）</span></h3>



<p class="wp-block-paragraph">個人情報の一部を伏字にして共有したいとき、バイト位置指定のマスク処理に使えます。たとえば電話番号の中央4バイトを <code>****</code> に置き換える、というパターンですね。</p>



<pre class="wp-block-code"><code>=REPLACEB(&quot;090-1234-5678&quot;, 5, 4, &quot;****&quot;)</code></pre>



<p class="wp-block-paragraph">結果は <code>090-****-5678</code> になります。ハイフン位置が固定のデータなら、位置とバイト数を決め打ちで使うのが一番シンプルですよ。</p>



<p class="wp-block-paragraph">入力が揺れるデータ（ハイフンありなし混在など）では、SEARCHBで位置を取ってからREPLACEBに渡す安全パターンに切り替えましょう。</p>



<h2 class="wp-block-heading"><span id="toc13">SEARCHB・FINDBと組み合わせた動的置換テンプレート</span></h2>



<p class="wp-block-paragraph">区切り文字ベースで可変長フィールドを書き換えるときは、SEARCHBやFINDBで位置を取得してからREPLACEBに渡す組み合わせが便利です。コピペで使えるテンプレートをまとめておきますね。</p>



<h3 class="wp-block-heading"><span id="toc14">区切り文字で分けた最初のフィールドを置換</span></h3>



<p class="wp-block-paragraph">A列に「コード-名前」形式のデータが入っている想定です。コード部分を丸ごと別の値に書き換えましょう。</p>



<pre class="wp-block-code"><code>=REPLACEB(A2, 1, SEARCHB(&quot;-&quot;, A2) - 1, &quot;NEWCODE&quot;)</code></pre>



<p class="wp-block-paragraph">SEARCHBで1番目のハイフン位置を取り、先頭からその1バイト前までを「NEWCODE」に置換します。コード部分の長さが行ごとに違っても対応できますよ。</p>



<h3 class="wp-block-heading"><span id="toc15">2番目のフィールドだけを置換</span></h3>



<p class="wp-block-paragraph">「コード-名前-備考」形式で、真ん中の名前フィールドだけを置換するパターンです。1番目と2番目のハイフン位置を両方取ります。</p>



<pre class="wp-block-code"><code>=LET(
  p1, SEARCHB(&quot;-&quot;, A2),
  p2, SEARCHB(&quot;-&quot;, A2, p1 + 1),
  REPLACEB(A2, p1 + 1, p2 - p1 - 1, &quot;NEWNAME&quot;)
)</code></pre>



<p class="wp-block-paragraph">LET関数で中間変数に名前を付けると、式がぐっと読みやすくなります。LETが使えない環境では、ネストして書くことになりますが、動作は同じですよ。</p>



<h3 class="wp-block-heading"><span id="toc16">末尾のフィールドだけを置換</span></h3>



<p class="wp-block-paragraph">末尾のフィールドを置換するときは、最後の区切り位置から末尾までを対象にします。末尾位置は <code>LENB(A2)</code> で取れるので、バイト数は <code>LENB(A2) - p2</code> で求められますね。</p>



<pre class="wp-block-code"><code>=LET(
  p1, SEARCHB(&quot;-&quot;, A2),
  p2, SEARCHB(&quot;-&quot;, A2, p1 + 1),
  REPLACEB(A2, p2 + 1, LENB(A2) - p2, &quot;NEW_REMARK&quot;)
)</code></pre>



<p class="wp-block-paragraph">この3パターンを覚えておけば、区切り文字付きデータの任意フィールドを柔軟に書き換えられますよ。</p>



<h3 class="wp-block-heading"><span id="toc17">厳密一致で置換したいときはFINDB</span></h3>



<p class="wp-block-paragraph">区切り文字の大文字小文字を厳密に区別したい場合は、SEARCHBをFINDBに置き換えるだけでOKです。商品コード内の英字で「A」と「a」を別物として扱いたい場面ですね。</p>



<pre class="wp-block-code"><code>=REPLACEB(A2, 1, FINDB(&quot;-&quot;, A2) - 1, &quot;NEWCODE&quot;)</code></pre>



<p class="wp-block-paragraph">曖昧検索ならSEARCHB、厳密検索ならFINDB、というシンプルな使い分けで済みますよ。</p>



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



<p class="wp-block-paragraph">スプレッドシートには置換系の関数がいくつかあります。ここで全体像を整理しておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc19">REPLACE・REPLACEB・SUBSTITUTEの比較</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>指定方法</th><th>単位</th><th>典型用途</th></tr></thead><tbody><tr><td>REPLACE</td><td>位置＋サイズ</td><td>文字数</td><td>文字数ベースでの範囲置換</td></tr><tr><td>REPLACEB</td><td>位置＋サイズ</td><td>バイト数</td><td>固定長フォーマットのフィールド書き換え</td></tr><tr><td>SUBSTITUTE</td><td>検索文字列→置換文字列</td><td>—</td><td>内容ベースの一括置換・表記ゆれ統一</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">「位置がわかっているか、内容がわかっているか」で第1段階の選択をして、位置指定ならバイト単位か文字単位かで第2段階を決める、という流れが一番迷いませんよ。</p>



<h3 class="wp-block-heading"><span id="toc20">REPLACEBを選ぶべき場面</span></h3>



<p class="wp-block-paragraph">REPLACEBを選ぶ基準は、次の3点で判断できます。</p>



<ul class="wp-block-list"><li>データ仕様がバイト単位で定義されている（固定長ファイル・基幹システム連携）</li><li>全角半角混在のデータで、バイト位置を基準に処理する必要がある</li><li>SEARCHBやFINDBで取得した位置情報をそのまま渡したい</li></ul>



<p class="wp-block-paragraph">逆に、「◯◯という文字列を△△に置き換える」という内容ベースの処理ではSUBSTITUTEのほうが直感的です。REPLACEBは「何バイト目から何バイト分」という機械的な指定が決まっている場面に向いていますよ。</p>



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



<p class="wp-block-paragraph">REPLACEB関数でハマりやすいポイントを3つまとめました。エラーの原因と対策をセットで覚えておくと、現場で詰まりにくくなりますよ。</p>



<h3 class="wp-block-heading"><span id="toc22">&#8220;#VALUE!&#8221; エラー（開始位置が0以下）</span></h3>



<p class="wp-block-paragraph">開始位置に 0 や負の数、または数値に変換できない値を指定すると <code>#VALUE!</code> が返ります。SEARCHBのネストで1つ目が見つからずに <code>#VALUE!</code> になり、その結果を開始位置に渡すパターンで連鎖することが多いですね。</p>



<pre class="wp-block-code"><code>=IFERROR(REPLACEB(A2, IFERROR(SEARCHB(&quot;-&quot;, A2), 1), 3, &quot;XXX&quot;), A2)</code></pre>



<p class="wp-block-paragraph">見つからない行ではSEARCHB側を 1 にフォールバックし、それでもエラーが出たら元の文字列をそのまま返す、という二段構えで守れますよ。</p>



<h3 class="wp-block-heading"><span id="toc23">全角文字の途中で切れて文字化けする</span></h3>



<p class="wp-block-paragraph">先ほど触れた通り、全角文字の片バイトだけを置換すると残りのバイトが不正な文字コードになります。<code>?</code> や空白、または文字化け記号として表示されることが多いです。</p>



<p class="wp-block-paragraph">対策としては、開始位置とバイト数の組み合わせが全角文字の境界を跨がないように設計することですね。データが全角だけ、あるいは半角だけで構成されている場合は心配不要ですが、混在データを扱うときは LENB と LEN の差からどこに全角があるかを事前に把握しておくと安全ですよ。</p>



<h3 class="wp-block-heading"><span id="toc24">置換後の文字列が想定より長く/短くなる</span></h3>



<p class="wp-block-paragraph">REPLACEBは置換後の長さが元の範囲と違ってもエラーにはなりません。ただ、固定長データを扱っている場合は「フィールドサイズを維持したい」という要件があるはずですよね。</p>



<pre class="wp-block-code"><code>=REPLACEB(A2, 31, 5, LEFT(&quot;B1&quot; &amp; REPT(&quot; &quot;, 5), 5))</code></pre>



<p class="wp-block-paragraph">置換文字列側で LEFT や REPT を使って、指定バイト数にきっちり合わせるのが定番です。5バイト分の右パディングが必要なら &#8220;B1&#8221; に半角スペースを足して LEFT で先頭5文字を取る、といった具合ですよ。</p>



<p class="wp-block-paragraph">全角半角混在の固定長なら LEFTB でバイト単位のパディングに切り替えてくださいね。</p>



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



<p class="wp-block-paragraph">スプレッドシートのREPLACEB関数は、文字列の指定バイト位置から指定バイト数分を別の文字列に置き換える、バイト単位の範囲置換に便利な関数です。最後に要点を整理しておきましょう。</p>



<ul class="wp-block-list"><li>構文は <code>=REPLACEB(対象文字列, 開始位置, バイト数, 置換文字列)</code> の4引数。全て省略不可</li><li>全角=2バイト、半角=1バイトとしてカウントする</li><li>バイト数 0 で挿入、置換文字列 <code>""</code> で削除</li><li>置換後の文字列の長さは元の範囲と違ってもOK</li><li>REPLACEは文字数、REPLACEBはバイト数。固定長データにはREPLACEB一択</li><li>内容ベースの置換ならSUBSTITUTE、位置ベースならREPLACEBで使い分け</li><li>全角の途中で切ると文字化けするので、境界を跨がない設計が安全</li><li>SEARCHBやFINDBと組み合わせると、可変長データでも動的に置換できる</li></ul>



<p class="wp-block-paragraph">まずは手元の固定長データに、<code>=REPLACEB(A2, 31, 5, "NEWVAL")</code> のような形で当ててみてください。SEARCHBとセットで使えるようになると、可変長の区切り文字データでもフィールド単位の書き換えが気持ちよく回せますよ。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-replaceb-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
