<?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>MID &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/mid/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Sat, 16 May 2026 21:33:49 +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>MID &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>スプレッドシートのMIDB関数の使い方｜中間のバイト取得</title>
		<link>https://mashukabu.com/spreadsheet-midb-function/</link>
					<comments>https://mashukabu.com/spreadsheet-midb-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sun, 19 Apr 2026 14:11:10 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[LENB]]></category>
		<category><![CDATA[MID]]></category>
		<category><![CDATA[MIDB]]></category>
		<category><![CDATA[バイト]]></category>
		<category><![CDATA[文字列操作]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6071</guid>

					<description><![CDATA[スプレッドシートのMIDB関数の使い方を実例付きで解説します。文字列の指定バイト位置から指定バイト数ぶんを取り出す関数で、全角2バイト・半角1バイトでカウントします。基本構文、MID関数との違い、固定長ファイルの中間フィールド抽出など実務パターン、よくあるエラー対処まで丁寧にまとめました。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">スプレッドシートで基幹システムの固定長データを扱っていると、「文字列の途中の◯バイト目から◯バイトだけ取り出したい」という場面、ありませんか。CSVじゃなくて全角半角混在の固定長テキストで、真ん中あたりの氏名フィールドを抜き出す、なんてケースもよくありますよね。</p>



<p class="wp-block-paragraph">MID関数だと「文字数」で切るので、全角が混ざると想定位置からズレてしまうんですよね。そんなときにピッタリ使えるのが、スプレッドシートのMIDB関数です。全角2バイト・半角1バイトでカウントしながら、任意の位置から必要なバイト数ぶんだけサクッと取り出せますよ。</p>



<p class="wp-block-paragraph">この記事では、スプレッドシートのMIDB関数の構文から、MID関数との違い、固定長ファイルの中間フィールド抽出など実務パターンまで紹介します。LEFTB/RIGHTBと組み合わせた「フィールド分解」のテンプレートも置いておきますね。</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">スプレッドシートのMIDB関数とは？</a><ol><li><a href="#toc2" tabindex="0">関数の基本構文と引数</a></li><li><a href="#toc3" tabindex="0">MID関数との違い（文字数 vs バイト数）</a></li></ol></li><li><a href="#toc4" tabindex="0">MIDB関数の基本的な使い方</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">実務で使えるMIDB関数の活用パターン</a><ol><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">MIDBとLEFTB/RIGHTBを組み合わせたフィールド分解</a><ol><li><a href="#toc12" tabindex="0">3フィールド分解のテンプレート</a></li><li><a href="#toc13" tabindex="0">先頭と末尾を除外して中間だけ取るテンプレート</a></li><li><a href="#toc14" tabindex="0">コピペで使えるセット数式</a></li></ol></li><li><a href="#toc15" tabindex="0">LEFT系・RIGHT系関数との使い分け</a><ol><li><a href="#toc16" tabindex="0">LEFT・LEFTB・RIGHT・RIGHTB・MID・MIDBの比較</a></li><li><a href="#toc17" tabindex="0">バイト系関数を使うべき判断ポイント</a></li></ol></li><li><a href="#toc18" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc19" tabindex="0">&#8220;#VALUE!&#8221; エラー</a></li><li><a href="#toc20" tabindex="0">想定より短い結果が返る</a></li><li><a href="#toc21" tabindex="0">結果が空になる</a></li></ol></li><li><a href="#toc22" tabindex="0">よくある質問</a><ol><li><a href="#toc23" tabindex="0">Q. MIDBとMIDの違いを一言で教えてください</a></li><li><a href="#toc24" tabindex="0">Q. スプレッドシートのMIDB関数はExcelのMIDB関数と同じですか？</a></li><li><a href="#toc25" tabindex="0">Q. 全角文字の途中から取り出そうとしたら空が返ってきました</a></li><li><a href="#toc26" tabindex="0">Q. MIDB関数でエラーが出て困っています</a></li></ol></li><li><a href="#toc27" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">スプレッドシートのMIDB関数は、文字列の指定したバイト位置から、指定したバイト数ぶんの文字を取り出す文字列関数です。読み方は「ミッド・ビー」で、MID（中間）と Byte（バイト）を組み合わせた名前ですよ。</p>



<p class="wp-block-paragraph">全角文字は2バイト、半角文字は1バイトとしてカウントします。日本語と英数字が入り混じる固定長データから、中間フィールドをバイト単位で正確に抜き出したいときに便利ですよ。</p>



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



<p class="wp-block-paragraph">基本構文はシンプルで、引数は3つです。</p>



<pre class="wp-block-code"><code>=MIDB(文字列, 開始バイト, バイト数)</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>取り出すバイト数（0以上の整数）</td><td>省略不可</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">開始バイトに小数を指定した場合は、整数部分に切り捨てられます。0以下を入れると <code>#VALUE!</code> エラーになるので、気をつけてくださいね。</p>



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



<p class="wp-block-paragraph">MID関数とMIDB関数は、切り出す単位が違います。ここを押さえておくと、使い分けで迷いません。</p>



<ul class="wp-block-list"><li><strong>MID</strong>: 指定した文字位置から「文字数」ぶんを取り出す。全角・半角を区別しない</li><li><strong>MIDB</strong>: 指定したバイト位置から「バイト数」ぶんを取り出す。全角=2バイト、半角=1バイトで計算</li></ul>



<p class="wp-block-paragraph">たとえば「商品A-100」という文字列で、3つ目から4つぶん取り出したい場合はこうなります。</p>



<figure class="wp-block-table"><table><thead><tr><th>数式</th><th>結果</th><th>解説</th></tr></thead><tbody><tr><td><code>=MID("商品A-100", 3, 4)</code></td><td>A-10</td><td>3文字目から4文字（全角半角を問わず）</td></tr><tr><td><code>=MIDB("商品A-100", 3, 4)</code></td><td>品A-</td><td>3バイト目から4バイト（全角1+半角2=4バイト）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">「レイアウト定義書で5バイト目から10バイトが氏名フィールド」のような固定長仕様のときは、MIDBの出番ですよ。</p>



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



<p class="wp-block-paragraph">それでは実際に使ってみましょう。開始バイトとバイト数の両方をイメージできると、結果が読みやすくなります。</p>



<h3 class="wp-block-heading"><span id="toc5">全角・半角が混在する文字列での挙動</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>=MIDB("あいうえお", 3, 4)</code></td><td>いう</td><td>3バイト目から4バイト（全角2文字=4バイト）</td></tr><tr><td><code>=MIDB("ABCDE", 2, 3)</code></td><td>BCD</td><td>2バイト目から3バイト（半角3文字=3バイト）</td></tr><tr><td><code>=MIDB("Excel関数", 6, 2)</code></td><td>関</td><td>6バイト目から2バイト（全角1文字=2バイト）</td></tr><tr><td><code>=MIDB("商品コード", 2, 4)</code></td><td>品コ</td><td>2バイト目から4バイト（開始が全角の途中になるため先頭1バイト分が欠ける）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">注目してほしいのは最後の行です。開始バイトが全角文字の途中に来る場合や、バイト数が全角文字の途中で切れる場合、スプレッドシートでは<strong>そのバイトは切り捨てられます</strong>。文字が半分になって文字化けする、といった心配は不要ですよ。</p>



<h3 class="wp-block-heading"><span id="toc6">開始バイトとバイト数の関係</span></h3>



<p class="wp-block-paragraph">MIDBはLEFTB/RIGHTBと違って、位置の指定が2つあります。ここでつまずきやすいので整理しておきますね。</p>



<ul class="wp-block-list"><li>開始バイトは「何バイト目から読み始めるか」（1始まり）</li><li>バイト数は「そこから何バイトぶん取るか」</li><li>開始バイト + バイト数 − 1 が「読み終わるバイト位置」</li></ul>



<p class="wp-block-paragraph">たとえば <code>=MIDB(A2, 5, 10)</code> なら、5バイト目から14バイト目までの10バイトが対象です。レイアウト定義書の「開始位置」と「長さ」をそのまま引数に入れればOKですよ。</p>



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



<p class="wp-block-paragraph">MIDB関数が本領を発揮するのは、固定長レイアウトの中間フィールドを抜き出す場面です。よく出てくる3パターンを紹介しますね。</p>



<h3 class="wp-block-heading"><span id="toc8">固定長ファイルの中間フィールド切り出し</span></h3>



<p class="wp-block-paragraph">古い基幹システムからダウンロードしたテキストで、「先頭8バイトが顧客コード、9バイト目から20バイトが氏名、29バイト目から8バイトが受付日」のような固定長レイアウトはよくあります。MIDB関数なら、中間の氏名フィールドもバイト単位でスッと取れますよ。</p>



<pre class="wp-block-code"><code>顧客コード:  =LEFTB(A2, 8)
氏名:        =MIDB(A2, 9, 20)
受付日:      =MIDB(A2, 29, 8)</code></pre>



<p class="wp-block-paragraph">MIDだと全角が混ざったときに位置がズレますが、MIDBならレイアウト定義書どおりにサクッと取り出せます。3つのフィールドを別列に展開するだけで、後続の集計がぐっと楽になりますよ。</p>



<h3 class="wp-block-heading"><span id="toc9">取引先コードの中間区分抽出</span></h3>



<p class="wp-block-paragraph">業務系の取引先コードには、「先頭2桁が地域、次の3桁が業種、末尾4桁が連番」のような区分が埋め込まれているフォーマットがよくあります。中間の業種部分だけ抜き出して集計したいときにMIDBが効きますよ。</p>



<pre class="wp-block-code"><code>=MIDB(A2, 3, 3)</code></pre>



<p class="wp-block-paragraph">A列に「JP-WHL-0012」のような半角コードがあれば、3バイト目から3バイト（<code>-WH</code>）の位置を狙って取れます。コードの仕様が半角固定なら、MIDとMIDBの結果は同じですが、後から全角が混ざるケースに備えるならMIDBのほうが安全ですよ。</p>



<h3 class="wp-block-heading"><span id="toc10">電文ログからのタイムスタンプ抽出</span></h3>



<p class="wp-block-paragraph">システム連携のログで、「先頭10バイトが日付、11バイト目から8バイトが時刻、19バイト目以降が本文」のような決まったフォーマットを扱うこともありますよね。MIDBを使うと、中間のタイムスタンプ部分だけきれいに取り出せますよ。</p>



<pre class="wp-block-code"><code>日付:        =LEFTB(A2, 10)
時刻:        =MIDB(A2, 11, 8)
本文:        =MIDB(A2, 19, LENB(A2)-18)</code></pre>



<p class="wp-block-paragraph">LENB（文字列全体のバイト数を返す関数）を組み合わせて、本文部分は「総バイト数から先頭18バイトを引いた残り全部」として指定しています。末尾の長さが可変のときに便利な書き方ですよ。</p>



<h2 class="wp-block-heading"><span id="toc11">MIDBとLEFTB/RIGHTBを組み合わせたフィールド分解</span></h2>



<p class="wp-block-paragraph">MIDBの真価は、LEFTB/RIGHTB/LENBと組み合わせたときに発揮されます。固定長データの分解や、区切り位置が動くデータの整形にすっきり対応できますよ。</p>



<h3 class="wp-block-heading"><span id="toc12">3フィールド分解のテンプレート</span></h3>



<p class="wp-block-paragraph">A列に固定長データ、B列に1つ目のバイト数、C列に2つ目のバイト数を入れている想定です。先頭・中間・末尾の3つに分けましょう。</p>



<pre class="wp-block-code"><code>先頭フィールド:  =LEFTB(A2, B2)
中間フィールド:  =MIDB(A2, B2+1, C2)
末尾フィールド:  =MIDB(A2, B2+C2+1, LENB(A2)-B2-C2)</code></pre>



<p class="wp-block-paragraph">B列とC列の数字を変えるだけで、レイアウトの変更に追従できます。中間フィールドの開始位置は「先頭ぶんのバイト数 + 1」、末尾は「総バイト数 − 先頭 − 中間」で計算するのがコツですよ。</p>



<h3 class="wp-block-heading"><span id="toc13">先頭と末尾を除外して中間だけ取るテンプレート</span></h3>



<p class="wp-block-paragraph">「先頭4バイトのヘッダと末尾2バイトのフッタを除いた本体部分だけ抜き出したい」という電文整形のシーンでは、開始位置を固定してバイト数だけLENBから計算します。</p>



<pre class="wp-block-code"><code>=MIDB(A2, 5, LENB(A2)-4-2)</code></pre>



<p class="wp-block-paragraph">開始バイトは固定（ヘッダ4バイトの次）、バイト数は「全体 − ヘッダ − フッタ」で動的に決めます。データ長が行ごとに違っても1本の数式で整形できるので、ログ解析の前処理で重宝しますよ。</p>



<h3 class="wp-block-heading"><span id="toc14">コピペで使えるセット数式</span></h3>



<p class="wp-block-paragraph">よく使う組み合わせを一式テンプレートにしておきますね。A2にデータ、B2に開始バイト、C2にバイト数という前提です。</p>



<pre class="wp-block-code"><code>対象文字列:        =A2
全体バイト数:      =LENB(A2)
切り出し結果:      =MIDB(A2, B2, C2)
切り出し後バイト数: =LENB(MIDB(A2, B2, C2))
切り出し前の部分:  =LEFTB(A2, B2-1)
切り出し後の部分:  =MIDB(A2, B2+C2, LENB(A2)-(B2+C2)+1)</code></pre>



<p class="wp-block-paragraph">データ整形用のワークシートに丸ごと貼り付けて、A列と開始バイト・バイト数を差し替えるだけで使えます。切り出し前後の部分も一緒に出すと、結果のバイト位置が合っているか目視確認しやすくなりますよ。</p>



<h2 class="wp-block-heading"><span id="toc15">LEFT系・RIGHT系関数との使い分け</span></h2>



<p class="wp-block-paragraph">スプレッドシートには似た名前の文字列関数がいくつもあります。ここで全体像を整理しておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc16">LEFT・LEFTB・RIGHT・RIGHTB・MID・MIDBの比較</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>切り出し位置</th><th>単位</th><th>典型用途</th></tr></thead><tbody><tr><td>LEFT</td><td>左から</td><td>文字数</td><td>商品コードの頭3桁抽出</td></tr><tr><td>LEFTB</td><td>左から</td><td>バイト数</td><td>基幹システム用の項目整形</td></tr><tr><td>RIGHT</td><td>右から</td><td>文字数</td><td>ファイル拡張子の抽出</td></tr><tr><td>RIGHTB</td><td>右から</td><td>バイト数</td><td>末尾の固定長フィールド切り出し</td></tr><tr><td>MID</td><td>任意位置から</td><td>文字数</td><td>郵便番号の後半3桁抽出</td></tr><tr><td>MIDB</td><td>任意位置から</td><td>バイト数</td><td>固定長ファイルの中間フィールド</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">左・右の切り出しを組み合わせて使いたいときは、<a href="https://mashukabu.com/spreadsheet-leftb-function/">スプレッドシートのLEFTB関数の使い方</a>と<a href="https://mashukabu.com/spreadsheet-rightb-function/">スプレッドシートのRIGHTB関数の使い方</a>もあわせて参考にしてみてくださいね。</p>



<p class="wp-block-paragraph">また、バイト数を数えるLENB関数については<a href="https://mashukabu.com/spreadsheet-lenb-function/">スプレッドシートのLENB関数の使い方</a>でくわしく解説しています。</p>



<h3 class="wp-block-heading"><span id="toc17">バイト系関数を使うべき判断ポイント</span></h3>



<p class="wp-block-paragraph">バイト系関数（LEFTB/RIGHTB/MIDB/LENB）を選ぶ基準は、次の3点で判断できます。</p>



<ul class="wp-block-list"><li>入出力のシステムがバイト単位で桁数を指定している</li><li>全角半角が混在するデータを扱っている</li><li>固定長フォーマットのファイルを読み書きする必要がある</li></ul>



<p class="wp-block-paragraph">逆に、社内の集計シートやダッシュボードのように「文字数で区切れれば十分」という場面は、MID系のほうがシンプルで読みやすいですよ。</p>



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



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



<h3 class="wp-block-heading"><span id="toc19">&#8220;#VALUE!&#8221; エラー</span></h3>



<p class="wp-block-paragraph">開始バイトに0以下を指定したときや、バイト数に負の数を指定したときに出ます。たとえば <code>=MIDB("ABCDE", 0, 3)</code> や <code>=MIDB("ABCDE", 2, -1)</code> のようなケースですね。計算式の結果がマイナスになっていた、というミスがよくあります。MAX関数で下限を固定するのがおすすめです。</p>



<pre class="wp-block-code"><code>=MIDB(A2, MAX(B2, 1), MAX(C2, 0))</code></pre>



<p class="wp-block-paragraph">これで、B2やC2が想定外の値になっても安全に動きますよ。</p>



<h3 class="wp-block-heading"><span id="toc20">想定より短い結果が返る</span></h3>



<p class="wp-block-paragraph">「10バイトのつもりで指定したのに9文字しか返ってこない」というときは、<strong>開始位置が全角の途中</strong>か、<strong>末尾が全角の途中で切れている</strong>ケースが多いです。先ほど解説したとおり、全角の途中にバイト境界が来ると、そのバイトぶんは切り捨てられます。</p>



<p class="wp-block-paragraph">制限いっぱいまで詰めたい場合は、LENB（対象文字列の総バイト数を返す関数）と組み合わせて、切り捨てが発生していないかを確認しておきましょう。</p>



<pre class="wp-block-code"><code>=LENB(MIDB(A2, 3, 10))   → 9 なら、開始か末尾のどちらかが全角の途中だった</code></pre>



<h3 class="wp-block-heading"><span id="toc21">結果が空になる</span></h3>



<p class="wp-block-paragraph"><code>=MIDB("あいうえお", 2, 1)</code> のように、開始バイトが全角の途中で、バイト数も1だけのときは、結果が空（空文字）になります。「数式は合っているのに何も返ってこない」ときは、開始位置とバイト数が全角のバイト境界にきれいに乗っているかを確認してみてくださいね。</p>



<p class="wp-block-paragraph">レイアウトが全角中心なら、開始バイトを奇数（全角の先頭バイト）に、バイト数を偶数にそろえると安定しますよ。</p>



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



<h3 class="wp-block-heading"><span id="toc23">Q. MIDBとMIDの違いを一言で教えてください</span></h3>



<p class="wp-block-paragraph">MIDは「文字数」で切り出し、MIDBは「バイト数」で切り出します。全角1文字をMIDは1文字、MIDBは2バイトとして数えるので、全角が混在するデータでは切り出し結果が変わります。固定長ファイルや基幹システムデータの処理にはMIDB、通常の日本語テキストの整形にはMIDがおすすめです。</p>



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



<p class="wp-block-paragraph">はい、引数・動作ともにExcelのMIDB関数と同じです。<code>=MIDB(文字列, 開始バイト, バイト数)</code> の3引数で同じように動きますので、ExcelとGoogleスプレッドシートを行き来する業務でも数式をそのまま移植できますよ。</p>



<h3 class="wp-block-heading"><span id="toc25">Q. 全角文字の途中から取り出そうとしたら空が返ってきました</span></h3>



<p class="wp-block-paragraph">開始バイトが全角文字の2バイト目に当たり、かつバイト数が少ないときに起きます。全角文字は先頭バイト（奇数番目）から取り出す必要があります。LENBで全体バイト数を確認しながら、開始バイトを1ずつ調整してみてください。</p>



<h3 class="wp-block-heading"><span id="toc26">Q. MIDB関数でエラーが出て困っています</span></h3>



<p class="wp-block-paragraph"><code>#VALUE!</code> エラーは、開始バイトに0以下、またはバイト数に負の値を指定したときに発生します。<code>=MIDB(A2, MAX(B2,1), MAX(C2,0))</code> のようにMAX関数でガードするか、引数が正しい範囲内か確認してください。<code>#REF!</code> エラーは参照セルが削除されている場合に出ます。</p>



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



<p class="wp-block-paragraph">スプレッドシートのMIDB関数は、バイト数を基準に文字列の任意位置から切り出せる、固定長データの中間フィールド抽出にピッタリの関数です。最後に要点を整理しておきましょう。</p>



<ul class="wp-block-list"><li>構文は <code>=MIDB(文字列, 開始バイト, バイト数)</code> の3引数。開始バイトは1始まり</li><li>全角=2バイト、半角=1バイトとしてカウントする</li><li>全角文字の途中に開始位置や終端が来る場合、そのバイトは切り捨てられる</li><li>MIDは文字数、MIDBはバイト数。固定長ファイルの中間フィールドはMIDB一択</li><li>LEFTB/RIGHTB/LENBと組み合わせると、フィールド分解が一発で決まる</li><li>#VALUE! は開始バイト0以下や負のバイト数指定、結果が空になるのは全角境界で指定がずれたパターン</li></ul>



<p class="wp-block-paragraph">まずは手元の固定長テキストを、<code>=MIDB(A2, 9, 20)</code> のような形でレイアウト定義書どおりに分解してみてください。基幹システムからのデータ取り込みや電文解析の前処理が、一段ラクになりますよ。</p>



<p class="wp-block-paragraph">バイト系文字列関数の全体像を把握したい方は、<a href="https://mashukabu.com/spreadsheet-leftb-function/">スプレッドシートのLEFTB関数の使い方</a>と<a href="https://mashukabu.com/spreadsheet-rightb-function/">スプレッドシートのRIGHTB関数の使い方</a>もあわせてご確認ください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-midb-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Excelの文字列関数まとめ｜抽出・結合・分割・置換を実務シーン別に解説</title>
		<link>https://mashukabu.com/excel-string-functions-guide/</link>
					<comments>https://mashukabu.com/excel-string-functions-guide/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Wed, 18 Mar 2026 12:36:46 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[CONCAT]]></category>
		<category><![CDATA[Excel関数まとめ]]></category>
		<category><![CDATA[FIND]]></category>
		<category><![CDATA[LEFT]]></category>
		<category><![CDATA[LEN]]></category>
		<category><![CDATA[MID]]></category>
		<category><![CDATA[RIGHT]]></category>
		<category><![CDATA[SUBSTITUTE]]></category>
		<category><![CDATA[TEXTJOIN]]></category>
		<category><![CDATA[TEXTSPLIT]]></category>
		<category><![CDATA[文字列分割]]></category>
		<category><![CDATA[文字列抽出]]></category>
		<category><![CDATA[文字列結合]]></category>
		<category><![CDATA[文字列置換]]></category>
		<category><![CDATA[文字列関数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4030</guid>

					<description><![CDATA[Excelの文字列関数を実務シーン別に整理。氏名から姓だけ取り出す、住所から都道府県を除く、CSV分割、文字列結合まで、LEFT・FIND・SUBSTITUTE・TEXTSPLIT・TEXTJOINなどの使い分けを逆引き一覧と比較表で解説します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Excelで「氏名から姓だけ取り出したい」「カンマ区切りのデータを列に分けたい」と悩んだことはありませんか。文字列関数は種類が多く、どれを使えばいいか迷いますよね。</p>



<p class="wp-block-paragraph">この記事では、<strong>抽出・結合・分割・置換</strong>の4カテゴリに分けて文字列関数の使い分けを整理しました。実務シーンに合わせて「この作業にはこの関数」がすぐわかる逆引きインデックスも用意しています。</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">文字列関数の逆引きインデックス【やりたいこと別】</a></li><li><a href="#toc2" tabindex="0">文字列を「抽出」する関数の使い方</a><ol><li><a href="#toc3" tabindex="0">LEFT関数 + FIND関数で姓だけ取り出す</a></li><li><a href="#toc4" tabindex="0">RIGHT関数 + LEN関数で名だけ取り出す</a></li><li><a href="#toc5" tabindex="0">MID関数で途中の文字列を取り出す</a></li><li><a href="#toc6" tabindex="0">FIND関数とSEARCH関数の違い</a></li><li><a href="#toc7" tabindex="0">M365ならTEXTBEFORE・TEXTAFTERが便利</a></li></ol></li><li><a href="#toc8" tabindex="0">文字列を「結合」する関数の使い方</a><ol><li><a href="#toc9" tabindex="0">&#038;演算子でシンプルに結合する</a></li><li><a href="#toc10" tabindex="0">CONCAT関数でセル範囲を一括結合する</a></li><li><a href="#toc11" tabindex="0">TEXTJOIN関数で区切り文字付きの結合をする</a></li><li><a href="#toc12" tabindex="0">結合関数の選び方</a></li></ol></li><li><a href="#toc13" tabindex="0">文字列を「分割」する関数の使い方</a><ol><li><a href="#toc14" tabindex="0">TEXTSPLIT関数でカンマ区切りデータを列に分ける</a></li><li><a href="#toc15" tabindex="0">TEXTSPLIT が使えない環境での分割テクニック</a></li><li><a href="#toc16" tabindex="0">「区切り位置」機能との比較</a></li></ol></li><li><a href="#toc17" tabindex="0">文字列を「置換・整形」する関数の使い方</a><ol><li><a href="#toc18" tabindex="0">SUBSTITUTE関数で特定の文字列を置き換える</a></li><li><a href="#toc19" tabindex="0">REPLACE関数で位置を指定して置き換える</a></li><li><a href="#toc20" tabindex="0">TRIM関数でスペースを整える</a></li><li><a href="#toc21" tabindex="0">大文字・小文字・全角・半角の変換</a></li></ol></li><li><a href="#toc22" tabindex="0">新旧関数の対比表で文字列関数を整理</a></li><li><a href="#toc23" tabindex="0">文字列関数でよくあるエラーと対処法</a></li><li><a href="#toc24" tabindex="0">まとめ</a><ol><li><a href="#toc25" tabindex="0">関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">文字列関数の逆引きインデックス【やりたいこと別】</span></h2>



<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>左端からN文字を取り出す</td><td>LEFT</td><td><code>=LEFT(A1,3)</code></td></tr><tr><td>右端からN文字を取り出す</td><td>RIGHT</td><td><code>=RIGHT(A1,4)</code></td></tr><tr><td>途中からN文字を取り出す</td><td><a href="https://mashukabu.com/excel-function-howto-use-mid/">MID</a></td><td><code>=MID(A1,2,3)</code></td></tr><tr><td>特定の文字の位置を調べる</td><td>FIND / SEARCH</td><td><code>=FIND("@",A1)</code></td></tr><tr><td>文字数を数える</td><td><a href="https://mashukabu.com/excel-function-howto-use-len/">LEN</a></td><td><code>=LEN(A1)</code></td></tr><tr><td>文字列をそのまま結合する</td><td><a href="https://mashukabu.com/excel-function-howto-use-concat/">CONCAT</a> / &#038;</td><td><code>=A1&B1</code></td></tr><tr><td>区切り文字を入れて結合する</td><td><a href="https://mashukabu.com/excel-function-howto-use-textjoin/">TEXTJOIN</a></td><td><code>=TEXTJOIN(",",TRUE,A1:C1)</code></td></tr><tr><td>区切り文字で列に分割する</td><td><a href="https://mashukabu.com/excel-function-howto-use-textsplit/">TEXTSPLIT</a></td><td><code>=TEXTSPLIT(A1,",")</code></td></tr><tr><td>区切り文字の前だけ取り出す</td><td><a href="https://mashukabu.com/excel-function-howto-use-textbefore/">TEXTBEFORE</a></td><td><code>=TEXTBEFORE(A1,"@")</code></td></tr><tr><td>区切り文字の後だけ取り出す</td><td><a href="https://mashukabu.com/excel-function-howto-use-textafter/">TEXTAFTER</a></td><td><code>=TEXTAFTER(A1,"@")</code></td></tr><tr><td>特定の文字列を別の文字列に置き換える</td><td><a href="https://mashukabu.com/excel-function-howto-use-substitute/">SUBSTITUTE</a></td><td><code>=SUBSTITUTE(A1,"-","")</code></td></tr><tr><td>位置を指定して文字列を置き換える</td><td>REPLACE</td><td><code>=REPLACE(A1,1,3,"新")</code></td></tr><tr><td>余分なスペースを除去する</td><td><a href="https://mashukabu.com/excel-function-howto-use-trim/">TRIM</a></td><td><code>=TRIM(A1)</code></td></tr><tr><td>大文字に変換する</td><td><a href="https://mashukabu.com/excel-function-howto-use-upper/">UPPER</a></td><td><code>=UPPER(A1)</code></td></tr><tr><td>小文字に変換する</td><td><a href="https://mashukabu.com/excel-function-howto-use-lower/">LOWER</a></td><td><code>=LOWER(A1)</code></td></tr><tr><td>先頭だけ大文字にする</td><td><a href="https://mashukabu.com/excel-function-howto-use-proper/">PROPER</a></td><td><code>=PROPER(A1)</code></td></tr><tr><td>全角を半角に変換する</td><td><a href="https://mashukabu.com/excel-function-howto-use-asc/">ASC</a></td><td><code>=ASC(A1)</code></td></tr><tr><td>数値を指定の表示形式に変換する</td><td><a href="https://mashukabu.com/excel-function-howto-use-text/">TEXT</a></td><td><code>=TEXT(A1,"#,##0")</code></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>このインデックスをブックマークしておくと便利です。「どの関数だっけ？」と迷ったときにすぐ確認できます。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc2">文字列を「抽出」する関数の使い方</span></h2>



<p class="wp-block-paragraph">文字列の一部だけを取り出すには、LEFT・RIGHT・MID・FIND（SEARCH）を組み合わせます。</p>



<h3 class="wp-block-heading"><span id="toc3">LEFT関数 + FIND関数で姓だけ取り出す</span></h3>



<p class="wp-block-paragraph">氏名リストから姓だけを取り出すケースです。「山田 太郎」のようにスペースで区切られた氏名を想定します。</p>



<pre class="wp-block-code"><code>=LEFT(A1,FIND(&quot; &quot;,A1)-1)</code></pre>



<p class="wp-block-paragraph">この数式がやっていることはシンプルです。</p>



<ol class="wp-block-list"><li><code>FIND(" ",A1)</code> でスペースの位置を調べる（例: 3）</li><li>スペースの手前までが姓なので <code>-1</code> する（例: 2）</li><li><code>LEFT(A1,2)</code> で左端から2文字を取り出す（例: 山田）</li></ol>



<p class="wp-block-paragraph">LEFT関数は「左端から何文字」と決まっている場合にそのまま使えます。たとえば左端から3文字なら次のように書きます。</p>



<pre class="wp-block-code"><code>=LEFT(A1,3)</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>FIND関数は大文字と小文字を区別します。区別せずに検索したい場合は、代わりにSEARCH関数を使ってください。SEARCH関数はワイルドカード（<code>*</code> や <code>?</code>）にも対応しています。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc4">RIGHT関数 + LEN関数で名だけ取り出す</span></h3>



<p class="wp-block-paragraph">今度は名前の方を取り出してみましょう。RIGHT関数で右端から取り出します。</p>



<pre class="wp-block-code"><code>=RIGHT(A1,LEN(A1)-FIND(&quot; &quot;,A1))</code></pre>



<p class="wp-block-paragraph">取り出す文字数の計算がポイントです。</p>



<ol class="wp-block-list"><li><code>LEN(A1)</code> で全体の文字数を取得（例: 5）</li><li><code>FIND(" ",A1)</code> でスペースの位置を取得（例: 3）</li><li>全体の文字数からスペースの位置を引く（例: 5-3=2）</li><li><code>RIGHT(A1,2)</code> で右端から2文字を取り出す（例: 太郎）</li></ol>



<h3 class="wp-block-heading"><span id="toc5">MID関数で途中の文字列を取り出す</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-mid/">MID関数</a>は「何文字目から何文字」を指定して取り出せます。</p>



<p class="wp-block-paragraph"><strong>5文字目から4文字を取り出す場合:</strong></p>



<pre class="wp-block-code"><code>=MID(A1,5,4)</code></pre>



<p class="wp-block-paragraph">たとえば社員番号「DEPT-1234-A」から数字部分だけを取り出す場合です。6文字目から4文字で「1234」が得られます。</p>



<pre class="wp-block-code"><code>=MID(A1,6,4)</code></pre>



<p class="wp-block-paragraph">MID関数は開始位置と文字数が固定の場合に便利です。位置が可変の場合はFIND関数と組み合わせます。</p>



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



<p class="wp-block-paragraph">どちらも「特定の文字が何文字目にあるか」を返す関数です。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>FIND</th><th>SEARCH</th></tr></thead><tbody><tr><td>大文字・小文字</td><td>区別する</td><td>区別しない</td></tr><tr><td>ワイルドカード</td><td>使えない</td><td><code>*</code> <code>?</code> が使える</td></tr><tr><td>用途</td><td>完全一致で位置を調べる</td><td>あいまい検索で位置を調べる</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">実務では「スペースの位置を調べる」「@の位置を調べる」のような用途が多いため、FIND関数で十分な場面がほとんどです。</p>



<h3 class="wp-block-heading"><span id="toc7">M365ならTEXTBEFORE・TEXTAFTERが便利</span></h3>



<p class="wp-block-paragraph">Microsoft 365をお使いなら、LEFT+FINDの組み合わせを1つの関数で置き換えられます。</p>



<p class="wp-block-paragraph"><strong>スペースの前（姓）を取り出す場合:</strong></p>



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



<p class="wp-block-paragraph"><strong>スペースの後（名）を取り出す場合:</strong></p>



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



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-textbefore/">TEXTBEFORE関数</a>と<a href="https://mashukabu.com/excel-function-howto-use-textafter/">TEXTAFTER関数</a>は区切り文字を指定するだけでOKです。LEFT+FIND+LENの複雑な計算が不要になります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>TEXTBEFORE・TEXTAFTER・TEXTSPLITはMicrosoft 365専用の関数です。Excel 2021以前では使用できません。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc8">文字列を「結合」する関数の使い方</span></h2>



<p class="wp-block-paragraph">複数のセルの値をひとつにまとめるには、&#038;演算子・CONCAT・TEXTJOIN・CONCATENATEを使います。</p>



<h3 class="wp-block-heading"><span id="toc9">&#038;演算子でシンプルに結合する</span></h3>



<p class="wp-block-paragraph">もっとも基本的な結合方法です。</p>



<p class="wp-block-paragraph"><strong>姓と名をスペース区切りで結合する場合:</strong></p>



<pre class="wp-block-code"><code>=A1&amp;&quot; &quot;&amp;B1</code></pre>



<p class="wp-block-paragraph">セルの数が少ない（2~3個）場合は&#038;演算子がわかりやすいです。ハイフン区切りで3つ結合するならこう書きます。</p>



<pre class="wp-block-code"><code>=A1&amp;&quot;-&quot;&amp;B1&amp;&quot;-&quot;&amp;C1</code></pre>



<h3 class="wp-block-heading"><span id="toc10">CONCAT関数でセル範囲を一括結合する</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-concat/">CONCAT関数</a>はセル範囲をまるごと結合できます。</p>



<p class="wp-block-paragraph"><strong>A1からD1まで一括結合する場合:</strong></p>



<pre class="wp-block-code"><code>=CONCAT(A1:D1)</code></pre>



<p class="wp-block-paragraph">&#038;演算子と違い、範囲指定ができるのがメリットです。ただし区切り文字を自動で入れる機能はありません。</p>



<h3 class="wp-block-heading"><span id="toc11">TEXTJOIN関数で区切り文字付きの結合をする</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-textjoin/">TEXTJOIN関数</a>は区切り文字を指定して結合できます。</p>



<pre class="wp-block-code"><code>=TEXTJOIN(&quot;,&quot;,TRUE,A1:D1)</code></pre>



<p class="wp-block-paragraph">各引数の意味はこちらです。</p>



<ul class="wp-block-list"><li>第1引数: 区切り文字（カンマ、スペース、ハイフンなど）</li><li>第2引数: 空セルを無視するか（TRUE = 無視する）</li><li>第3引数: 結合するセル範囲</li></ul>



<p class="wp-block-paragraph">空セルを無視してくれるのが大きなポイントです。たとえばA1~D1のうちC1が空白でも、余計な区切り文字が入りません。</p>



<p class="wp-block-paragraph">A1=東京, B1=大阪, C1=(空白), D1=福岡 の場合で比べてみましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>数式</th><th>結果</th></tr></thead><tbody><tr><td><code>=TEXTJOIN(",",TRUE,A1:D1)</code></td><td>東京,大阪,福岡</td></tr><tr><td><code>=TEXTJOIN(",",FALSE,A1:D1)</code></td><td>東京,大阪,,福岡</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">TRUEにすると空セルのC1が飛ばされ、余計なカンマが入りません。</p>



<h3 class="wp-block-heading"><span id="toc12">結合関数の選び方</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>&#038;</th><th><a href="https://mashukabu.com/excel-function-howto-use-concat/">CONCAT</a></th><th><a href="https://mashukabu.com/excel-function-howto-use-concatenate/">CONCATENATE</a></th><th><a href="https://mashukabu.com/excel-function-howto-use-textjoin/">TEXTJOIN</a></th></tr></thead><tbody><tr><td>範囲指定</td><td>不可</td><td>可能</td><td>不可</td><td>可能</td></tr><tr><td>区切り文字</td><td>手動で挿入</td><td>なし</td><td>なし</td><td>自動挿入</td></tr><tr><td>空セル無視</td><td>不可</td><td>不可</td><td>不可</td><td>可能</td></tr><tr><td>対応バージョン</td><td>全バージョン</td><td>Excel 2019以降</td><td>全バージョン</td><td>Excel 2019以降</td></tr><tr><td>おすすめ度</td><td>2~3個の結合</td><td>範囲一括</td><td>旧環境向け</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>CONCATENATEは互換性のために残されている旧関数です。新しい環境ではCONCAT関数を使ってください。詳しくは「<a href="https://mashukabu.com/excel-function-howto-use-concat/">CONCAT関数の使い方</a>」で解説しています。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc13">文字列を「分割」する関数の使い方</span></h2>



<p class="wp-block-paragraph">1つのセルに入っている文字列を複数のセルに分けたい場面は多いです。TEXTSPLIT関数やLEFT+FIND関数の組み合わせで対応できます。</p>



<h3 class="wp-block-heading"><span id="toc14">TEXTSPLIT関数でカンマ区切りデータを列に分ける</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-textsplit/">TEXTSPLIT関数</a>はM365で追加された強力な関数です。</p>



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



<p class="wp-block-paragraph">カンマ区切りの「東京,大阪,名古屋,福岡」を入力すると、4つのセルに自動で分割されます。スピル機能で横方向に展開されるので、数式は1つだけでOKです。</p>



<p class="wp-block-paragraph">行方向に分割したい場合は、第3引数を使います。</p>



<p class="wp-block-paragraph"><strong>第3引数に区切り文字を指定すると行方向に分割されます。</strong></p>



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



<p class="wp-block-paragraph">複数の区切り文字を同時に指定することも可能です。カンマとセミコロンの両方で分割する場合はこう書きます。</p>



<pre class="wp-block-code"><code>=TEXTSPLIT(A1,{&quot;,&quot;,&quot;;&quot;})</code></pre>



<h3 class="wp-block-heading"><span id="toc15">TEXTSPLIT が使えない環境での分割テクニック</span></h3>



<p class="wp-block-paragraph">Excel 2021以前ではTEXTSPLIT関数が使えません。その場合はLEFT+FIND+MID+LENを組み合わせます。</p>



<p class="wp-block-paragraph"><strong>1つ目の要素（カンマの前）を取り出す場合:</strong></p>



<pre class="wp-block-code"><code>=LEFT(A1,FIND(&quot;,&quot;,A1)-1)</code></pre>



<p class="wp-block-paragraph"><strong>2つ目の要素（1つ目のカンマ～2つ目のカンマの間）を取り出す場合:</strong></p>



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



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



<ol class="wp-block-list"><li>1つ目のカンマの位置を調べる</li><li>2つ目のカンマの位置を調べる（FINDの第3引数で開始位置を指定）</li><li>2つの位置の間の文字列をMIDで取り出す</li></ol>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>要素数が多い場合は数式が非常に複雑になります。M365環境であればTEXTSPLIT関数の利用を強くおすすめします。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc16">「区切り位置」機能との比較</span></h3>



<p class="wp-block-paragraph">Excelには関数以外にも「区切り位置」というメニュー機能があります。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>TEXTSPLIT関数</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>手動で再実行が必要</td></tr><tr><td>対応バージョン</td><td>Microsoft 365</td><td>全バージョン</td></tr><tr><td>大量データ</td><td>数式1つで対応可</td><td>毎回手動操作</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">元データを残しつつ自動更新したい場合はTEXTSPLIT関数が圧倒的に便利です。一度きりの変換なら区切り位置機能でも十分対応できます。</p>



<h2 class="wp-block-heading"><span id="toc17">文字列を「置換・整形」する関数の使い方</span></h2>



<p class="wp-block-paragraph">文字列を別の文字列に置き換えたり、余分なスペースを取り除く場面で活躍します。SUBSTITUTE・REPLACE・TRIM関数が代表的です。</p>



<h3 class="wp-block-heading"><span id="toc18">SUBSTITUTE関数で特定の文字列を置き換える</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-substitute/">SUBSTITUTE関数</a>は「この文字列をこの文字列に変える」という置換に使います。</p>



<p class="wp-block-paragraph"><strong>住所から「東京都」を除く場合:</strong></p>



<pre class="wp-block-code"><code>=SUBSTITUTE(A1,&quot;東京都&quot;,&quot;&quot;)</code></pre>



<p class="wp-block-paragraph"><strong>電話番号のハイフンを除去する場合:</strong></p>



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



<p class="wp-block-paragraph">第4引数を指定すると、何番目の出現だけを置換できます。</p>



<p class="wp-block-paragraph"><strong>1番目のハイフンだけをスラッシュに変換する場合:</strong></p>



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



<h3 class="wp-block-heading"><span id="toc19">REPLACE関数で位置を指定して置き換える</span></h3>



<p class="wp-block-paragraph">REPLACE関数は「何文字目から何文字」を指定して置き換えます。</p>



<p class="wp-block-paragraph"><strong>1文字目から3文字を「ABC」に置換する場合:</strong></p>



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



<p class="wp-block-paragraph">SUBSTITUTEとREPLACEの使い分けはこちらです。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th><a href="https://mashukabu.com/excel-function-howto-use-substitute/">SUBSTITUTE</a></th><th>REPLACE</th></tr></thead><tbody><tr><td>指定方法</td><td>置き換える文字列</td><td>位置と文字数</td></tr><tr><td>用途</td><td>「この文字を消したい」</td><td>「何文字目を変えたい」</td></tr><tr><td>全出現の置換</td><td>可能（第4引数で制御）</td><td>1箇所のみ</td></tr><tr><td>文字列が不明な場合</td><td>使えない</td><td>位置さえわかればOK</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">実務では「ハイフンを消す」「都道府県を除く」のようにSUBSTITUTE関数を使う場面が多いです。</p>



<h3 class="wp-block-heading"><span id="toc20">TRIM関数でスペースを整える</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-trim/">TRIM関数</a>は文字列の前後のスペースを除去し、単語間のスペースを1つに統一します。</p>



<pre class="wp-block-code"><code>=TRIM(A1)</code></pre>



<p class="wp-block-paragraph">たとえば「  山田  太郎  」が「山田 太郎」になります。データのコピー&#038;ペーストで余分なスペースが入ってしまったときに重宝します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>TRIM関数は半角スペースのみ対応です。全角スペースを除去したい場合は <code>=SUBSTITUTE(A1,"　","")</code> で全角スペースを空文字に置換してからTRIMを適用してください。詳しくは「<a href="https://mashukabu.com/about-nbsp/">ノーブレークスペースの対処法</a>」も参考になります。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc21">大文字・小文字・全角・半角の変換</span></h3>



<p class="wp-block-paragraph">文字の変換系関数をまとめて紹介します。</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/excel-function-howto-use-upper/">UPPER</a></td><td>全部大文字</td><td><code>=UPPER("abc")</code></td><td>ABC</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-lower/">LOWER</a></td><td>全部小文字</td><td><code>=LOWER("ABC")</code></td><td>abc</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-proper/">PROPER</a></td><td>先頭だけ大文字</td><td><code>=PROPER("john smith")</code></td><td>John Smith</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-asc/">ASC</a></td><td>全角→半角</td><td><code>=ASC("ＡＢＣ")</code></td><td>ABC</td></tr><tr><td>JIS</td><td>半角→全角</td><td><code>=JIS("ABC")</code></td><td>ABC</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">商品コードや顧客名の表記を統一するときに使います。<a href="https://mashukabu.com/excel-function-howto-use-exact/">EXACT関数</a>で大文字小文字の一致を確認してから変換するのも効果的です。</p>



<h2 class="wp-block-heading"><span id="toc22">新旧関数の対比表で文字列関数を整理</span></h2>



<p class="wp-block-paragraph">ここまで紹介した関数の中には、新旧の関係にあるものがあります。環境に合わせて選んでください。</p>



<figure class="wp-block-table"><table><thead><tr><th>やりたいこと</th><th>旧関数・旧手法</th><th>新関数（M365）</th><th>新関数のメリット</th></tr></thead><tbody><tr><td>文字列の結合</td><td><a href="https://mashukabu.com/excel-function-howto-use-concatenate/">CONCATENATE</a></td><td><a href="https://mashukabu.com/excel-function-howto-use-concat/">CONCAT</a></td><td>セル範囲を指定可能</td></tr><tr><td>区切り文字付き結合</td><td>&#038;で手動挿入</td><td><a href="https://mashukabu.com/excel-function-howto-use-textjoin/">TEXTJOIN</a></td><td>空セル無視が可能</td></tr><tr><td>区切り文字で分割</td><td>区切り位置（メニュー）</td><td><a href="https://mashukabu.com/excel-function-howto-use-textsplit/">TEXTSPLIT</a></td><td>数式で自動更新</td></tr><tr><td>区切り文字の前を取得</td><td>LEFT + FIND</td><td><a href="https://mashukabu.com/excel-function-howto-use-textbefore/">TEXTBEFORE</a></td><td>数式がシンプル</td></tr><tr><td>区切り文字の後を取得</td><td>RIGHT + LEN + FIND</td><td><a href="https://mashukabu.com/excel-function-howto-use-textafter/">TEXTAFTER</a></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>=TEXTSPLIT("a,b",",")</code> と入力して試してみてください。<code>#NAME?</code> エラーが出たらお使いのExcelでは未対応です。</p></blockquote>



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



<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>#VALUE!</code></td><td>FIND/SEARCHで検索文字が見つからない</td><td><a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数</a>やISERRORで「見つからない場合」の処理を追加する</td></tr><tr><td><code>#NAME?</code></td><td>関数名のスペルミス、または未対応バージョン</td><td>関数名を確認する。TEXTSPLIT等はM365専用</td></tr><tr><td>意図しない結合結果</td><td>数値がそのまま結合されて桁が変わる</td><td><a href="https://mashukabu.com/excel-function-howto-use-text/">TEXT関数</a>で書式指定してから結合する</td></tr><tr><td>スペースが残る</td><td>全角スペースがTRIMで除去できない</td><td><code>=SUBSTITUTE(A1,"　","")</code> で全角スペースを先に除去</td></tr><tr><td>分割結果がずれる</td><td>区切り文字が想定と違う（全角カンマなど）</td><td><a href="https://mashukabu.com/excel-function-howto-use-len/">LEN関数</a>で文字数を確認し、区切り文字を特定する</td></tr></tbody></table></figure>



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



<p class="wp-block-paragraph">Excelの文字列関数を4つのカテゴリで整理しました。</p>



<figure class="wp-block-table"><table><thead><tr><th>カテゴリ</th><th>主な関数</th><th>代表的な使い方</th></tr></thead><tbody><tr><td>抽出</td><td>LEFT, RIGHT, <a href="https://mashukabu.com/excel-function-howto-use-mid/">MID</a>, FIND</td><td>氏名から姓・名を取り出す</td></tr><tr><td>結合</td><td><a href="https://mashukabu.com/excel-function-howto-use-concat/">CONCAT</a>, <a href="https://mashukabu.com/excel-function-howto-use-textjoin/">TEXTJOIN</a>, &#038;</td><td>名前と部署を結合する</td></tr><tr><td>分割</td><td><a href="https://mashukabu.com/excel-function-howto-use-textsplit/">TEXTSPLIT</a>, LEFT+FIND</td><td>カンマ区切りデータを列に分ける</td></tr><tr><td>置換・整形</td><td><a href="https://mashukabu.com/excel-function-howto-use-substitute/">SUBSTITUTE</a>, <a href="https://mashukabu.com/excel-function-howto-use-trim/">TRIM</a></td><td>住所から都道府県を除く</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">迷ったら冒頭の逆引きインデックスに戻ってみてください。「やりたいこと」から関数を選ぶのが一番確実です。</p>



<p class="wp-block-paragraph">M365環境であれば、TEXTSPLIT・TEXTBEFORE・TEXTAFTERといった新関数もぜひ試してみてください。数式がぐっとシンプルになりますよ。</p>



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



<h4 class="wp-block-heading">抽出系</h4>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-mid/">MID関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-midb/">MIDB関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-len/">LEN関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-textbefore/">TEXTBEFORE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-textafter/">TEXTAFTER関数の使い方</a></li></ul>



<h4 class="wp-block-heading">結合系</h4>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-concat/">CONCAT関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-concatenate/">CONCATENATE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-textjoin/">TEXTJOIN関数の使い方</a></li></ul>



<h4 class="wp-block-heading">分割系</h4>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-textsplit/">TEXTSPLIT関数の使い方</a></li></ul>



<h4 class="wp-block-heading">置換・整形系</h4>



<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-trim/">TRIM関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-text/">TEXT関数の使い方</a></li></ul>



<h4 class="wp-block-heading">変換系</h4>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-upper/">UPPER関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-lower/">LOWER関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-proper/">PROPER関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-asc/">ASC関数の使い方</a></li></ul>



<h4 class="wp-block-heading">その他</h4>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-exact/">EXACT関数の使い方</a></li><li><a href="https://mashukabu.com/about-nbsp/">ノーブレークスペースの対処法</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-rept/">REPT関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-vlookup/">VLOOKUP関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-string-functions-guide/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
