<?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>FIND &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/find/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Thu, 07 May 2026 14:14:39 +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>FIND &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>スプレッドシートのFINDB関数の使い方｜バイト位置（大小区別）</title>
		<link>https://mashukabu.com/spreadsheet-findb-function/</link>
					<comments>https://mashukabu.com/spreadsheet-findb-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sun, 19 Apr 2026 14:11:03 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[FIND]]></category>
		<category><![CDATA[FINDB]]></category>
		<category><![CDATA[MIDB]]></category>
		<category><![CDATA[SEARCHB]]></category>
		<category><![CDATA[バイト]]></category>
		<category><![CDATA[文字列操作]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6065</guid>

					<description><![CDATA[スプレッドシートのFINDB関数の使い方を実例付きで解説します。文字列の中で指定文字が何バイト目にあるかを返す関数で、全角2バイト・半角1バイトでカウントし大文字・小文字を区別します。基本構文、FIND/SEARCHBとの違い、MIDBとの組み合わせで固定長データを動的に切り出す実務パターン、よくあるエラー対処まで丁寧にまとめました。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">スプレッドシートで全角半角混在のデータを整形していると、「特定の記号が先頭から何バイト目にあるか知りたい」という場面、ありませんか。固定長データで区切り文字の位置を特定して、そこから前後にフィールドを分解したい、なんてケースもよくありますよね。</p>



<p class="wp-block-paragraph">FIND関数だと「文字数」でしか位置を返してくれないので、全角が混ざるとMIDBに渡すバイト位置としては使えないんですよね。そんなときにピッタリ使えるのが、スプレッドシートのFINDB関数です。全角2バイト・半角1バイトでカウントしながら、指定した文字が何バイト目に出現するかをサクッと返してくれますよ。</p>



<p class="wp-block-paragraph">この記事では、スプレッドシートのFINDB関数の構文から、FIND関数やSEARCHB関数との違い、MIDBと組み合わせて固定長データを動的に切り出す実務パターンまで紹介します。区切り文字ベースのフィールド分解テンプレートも置いておきますね。</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">スプレッドシートのFINDB関数とは？</a><ol><li><a href="#toc2" tabindex="0">関数の基本構文と引数</a></li><li><a href="#toc3" tabindex="0">FIND関数との違い（文字数 vs バイト数）</a></li><li><a href="#toc4" tabindex="0">FINDBとSEARCHBの違い（大小区別の有無）</a></li></ol></li><li><a href="#toc5" tabindex="0">FINDB関数の基本的な使い方</a><ol><li><a href="#toc6" tabindex="0">全角・半角が混在する文字列での挙動</a></li><li><a href="#toc7" tabindex="0">引数「開始位置」の使い方</a></li></ol></li><li><a href="#toc8" tabindex="0">実務で使えるFINDB関数の活用パターン</a><ol><li><a href="#toc9" tabindex="0">区切り文字で動的にフィールドを切り出す</a></li><li><a href="#toc10" tabindex="0">固定長ファイルの可変長フィールドを処理する</a></li><li><a href="#toc11" tabindex="0">特定キーワードの出現位置でデータ仕分け</a></li></ol></li><li><a href="#toc12" tabindex="0">FINDBとMIDBを組み合わせたフィールド分解</a><ol><li><a href="#toc13" tabindex="0">区切り文字ベースのフィールド分解テンプレート</a></li><li><a href="#toc14" tabindex="0">2段階検索で安全に位置を取る</a></li></ol></li><li><a href="#toc15" tabindex="0">FIND系・SEARCH系関数との使い分け</a><ol><li><a href="#toc16" tabindex="0">FIND・FINDB・SEARCH・SEARCHBの比較</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">&#8220;#VALUE!&#8221; エラー（開始位置が不正）</a></li><li><a href="#toc21" tabindex="0">期待した位置と違う値が返る</a></li></ol></li><li><a href="#toc22" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">スプレッドシートのFINDB関数は、文字列の中で指定した検索文字列が何バイト目から始まるかを返す関数です。読み方は「ファインド・ビー」で、FIND（検索）と Byte（バイト）を組み合わせた名前ですよ。</p>



<p class="wp-block-paragraph">全角文字は2バイト、半角文字は1バイトとしてカウントします。大文字と小文字を区別するのがポイントで、&#8221;A&#8221; と &#8220;a&#8221; は別物として扱われますよ。</p>



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



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



<pre class="wp-block-code"><code>=FINDB(検索文字列, 対象文字列, [開始位置])</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>検索される側の文字列</td><td>省略不可</td></tr><tr><td>開始位置</td><td>検索を開始するバイト位置</td><td>省略時は1（先頭から）</td></tr></tbody></table></figure>



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



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



<p class="wp-block-paragraph">FIND関数とFINDB関数は、返ってくる位置の単位が違います。ここを押さえておくと、使い分けで迷いません。</p>



<ul class="wp-block-list"><li><strong>FIND</strong>: 検索文字列が先頭から「何文字目」にあるかを返す。全角・半角を区別しない</li><li><strong>FINDB</strong>: 検索文字列が先頭から「何バイト目」にあるかを返す。全角=2バイト、半角=1バイトで計算</li></ul>



<p class="wp-block-paragraph">たとえば「商品A-100」という文字列で、&#8221;-&#8220;（ハイフン）の位置を調べた場合はこうなります。</p>



<figure class="wp-block-table"><table><thead><tr><th>数式</th><th>結果</th><th>解説</th></tr></thead><tbody><tr><td><code>=FIND("-", "商品A-100")</code></td><td>4</td><td>先頭から4文字目（商・品・A・-）</td></tr><tr><td><code>=FINDB("-", "商品A-100")</code></td><td>6</td><td>先頭から6バイト目（商2+品2+A1+-=6バイト目スタート）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">MIDB関数やLEFTB関数と組み合わせるなら、必ずFINDB関数側を使ってくださいね。FINDの結果をバイト系関数に渡すとズレてしまいます。</p>



<h3 class="wp-block-heading"><span id="toc4">FINDBとSEARCHBの違い（大小区別の有無）</span></h3>



<p class="wp-block-paragraph">似たような関数にSEARCHB関数があります。こちらもバイト単位で位置を返してくれる関数ですが、大小区別とワイルドカードの扱いが違います。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>大文字小文字</th><th>ワイルドカード</th></tr></thead><tbody><tr><td>FINDB</td><td>区別する</td><td>使えない（リテラル検索のみ）</td></tr><tr><td>SEARCHB</td><td>区別しない</td><td><code>*</code> や <code>?</code> が使える</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">商品コードのように「A と a は別物として扱いたい」「ワイルドカードじゃなくきっちり文字列一致で探したい」場合はFINDB、あいまい検索でいい場合はSEARCHBを選ぶ、という整理ですよ。</p>



<h2 class="wp-block-heading"><span id="toc5">FINDB関数の基本的な使い方</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>=FINDB("う", "あいうえお")</code></td><td>5</td><td>「う」は先頭から5バイト目（あ2+い2+う=5バイト目スタート）</td></tr><tr><td><code>=FINDB("C", "ABCDE")</code></td><td>3</td><td>半角3文字目=3バイト目</td></tr><tr><td><code>=FINDB("関", "Excel関数")</code></td><td>6</td><td>半角5バイト+「関」で6バイト目スタート</td></tr><tr><td><code>=FINDB("a", "ABCabc")</code></td><td>4</td><td>小文字「a」は4バイト目（大文字とは区別）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">4行目に注目してください。FINDBは大文字小文字を区別するので、&#8221;A&#8221; で検索すると1、&#8221;a&#8221; で検索すると4が返ってきます。ここが曖昧検索のSEARCHBとは違うところですよ。</p>



<h3 class="wp-block-heading"><span id="toc7">引数「開始位置」の使い方</span></h3>



<p class="wp-block-paragraph">開始位置を指定すると、その位置から右側だけを検索対象にできます。同じ文字が複数回出てくる文字列で「2番目の位置」を調べたいときに便利ですよ。</p>



<pre class="wp-block-code"><code>=FINDB(&quot;-&quot;, &quot;A-100-XYZ&quot;)            → 2  （1番目のハイフン）
=FINDB(&quot;-&quot;, &quot;A-100-XYZ&quot;, 3)         → 6  （3バイト目以降で探した1番目）</code></pre>



<p class="wp-block-paragraph">1番目のハイフン位置をFINDBで求めて、その次のバイトから2番目を探す、という入れ子にすると、動的に区切り位置を追えます。</p>



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



<p class="wp-block-paragraph">A2にデータを入れておけば、「2番目のハイフンは何バイト目か」が求められますよ。</p>



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



<p class="wp-block-paragraph">FINDB関数が本領を発揮するのは、固定長ファイルの動的解析や区切り文字ベースのフィールド分解です。よく出てくる3パターンを紹介しますね。</p>



<h3 class="wp-block-heading"><span id="toc9">区切り文字で動的にフィールドを切り出す</span></h3>



<p class="wp-block-paragraph">全角半角が混ざった「氏名＠メールアドレス」形式のデータから、＠の前後を切り分けたいときに使えます。</p>



<pre class="wp-block-code"><code>氏名部分:         =LEFTB(A2, FINDB(&quot;@&quot;, A2) - 1)
メール部分:       =MIDB(A2, FINDB(&quot;@&quot;, A2) + 1, LENB(A2))</code></pre>



<p class="wp-block-paragraph">FINDBで＠の位置をバイトで特定して、LEFTBで前半、MIDBで後半を切り出す流れです。全角の氏名が混ざっていても、バイト基準で揃うので崩れませんよ。</p>



<h3 class="wp-block-heading"><span id="toc10">固定長ファイルの可変長フィールドを処理する</span></h3>



<p class="wp-block-paragraph">古い基幹システムの出力で、「固定長だけど末尾にタブや特殊記号で区切られた可変長フィールドがある」ケースもあります。FINDBで区切り記号のバイト位置を調べて、そこまでをLEFTBで取り出すとラクですよ。</p>



<pre class="wp-block-code"><code>=LEFTB(A2, FINDB(CHAR(9), A2) - 1)</code></pre>



<p class="wp-block-paragraph">CHAR(9) はタブ文字です。タブ区切りまでのバイト数を取り出して、先頭からその位置までを抽出しています。区切り位置が行ごとに違っても、式は1本で対応できますよ。</p>



<h3 class="wp-block-heading"><span id="toc11">特定キーワードの出現位置でデータ仕分け</span></h3>



<p class="wp-block-paragraph">商品説明文の中で特定のキーワード（例: 「限定」「特価」など）が出現するかどうか、出現位置が何バイト目か、で仕分けをしたい場合にも使えます。</p>



<pre class="wp-block-code"><code>=IF(IFERROR(FINDB(&quot;限定&quot;, A2), 0) &gt; 0, &quot;限定商品&quot;, &quot;通常商品&quot;)</code></pre>



<p class="wp-block-paragraph">IFERROR でラップして、見つからない場合の <code>#VALUE!</code> を 0 に置き換えています。これで「限定」を含む行だけフラグを立てる処理が、1列の数式で完結しますよ。</p>



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



<p class="wp-block-paragraph">区切り文字で動的に可変長フィールドを切り出すときは、FINDBとMIDBの組み合わせが定番です。コピペで使えるテンプレートをまとめておきますね。</p>



<h3 class="wp-block-heading"><span id="toc13">区切り文字ベースのフィールド分解テンプレート</span></h3>



<p class="wp-block-paragraph">A列に「コード-名前-備考」形式のデータが入っている想定です。ハイフンでフィールドを3つに分けましょう。</p>



<pre class="wp-block-code"><code>1番目のハイフン位置: =FINDB(&quot;-&quot;, A2)
2番目のハイフン位置: =FINDB(&quot;-&quot;, A2, FINDB(&quot;-&quot;, A2) + 1)
コード:              =LEFTB(A2, FINDB(&quot;-&quot;, A2) - 1)
名前:                =MIDB(A2, FINDB(&quot;-&quot;, A2) + 1, FINDB(&quot;-&quot;, A2, FINDB(&quot;-&quot;, A2)+1) - FINDB(&quot;-&quot;, A2) - 1)
備考:                =MIDB(A2, FINDB(&quot;-&quot;, A2, FINDB(&quot;-&quot;, A2)+1) + 1, LENB(A2))</code></pre>



<p class="wp-block-paragraph">長く見えますが、考え方はシンプルです。「区切り位置をFINDBで求めて、その前後をMIDBで切る」というパターンの積み重ねなので、1行ずつ追うと読み解けますよ。</p>



<h3 class="wp-block-heading"><span id="toc14">2段階検索で安全に位置を取る</span></h3>



<p class="wp-block-paragraph">区切り文字が必ず含まれるとは限らないデータでは、IFERRORで守りを入れておきましょう。</p>



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



<p class="wp-block-paragraph">ハイフンが見つからない場合は「文字列の末尾+1バイト目」を返すようにしておくと、MIDBに渡しても空文字が返るだけで、エラー連鎖を防げますよ。</p>



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



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



<h3 class="wp-block-heading"><span id="toc16">FIND・FINDB・SEARCH・SEARCHBの比較</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>単位</th><th>大小区別</th><th>ワイルドカード</th><th>典型用途</th></tr></thead><tbody><tr><td>FIND</td><td>文字数</td><td>あり</td><td>使えない</td><td>商品コード内の区切り位置（半角のみ）</td></tr><tr><td>FINDB</td><td>バイト数</td><td>あり</td><td>使えない</td><td>全角混在データの固定長解析</td></tr><tr><td>SEARCH</td><td>文字数</td><td>なし</td><td>使える</td><td>曖昧検索での文字位置特定</td></tr><tr><td>SEARCHB</td><td>バイト数</td><td>なし</td><td>使える</td><td>曖昧検索でバイト位置を取りたい</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ExcelのFINDB関数との挙動比較をしたいときは、<a href="https://mashukabu.com/excel-findb-function/">ExcelのFINDB関数の使い方</a>も参考になりますよ。</p>



<h3 class="wp-block-heading"><span id="toc17">バイト系・大小区別の判断ポイント</span></h3>



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



<ul class="wp-block-list"><li>出力先やデータ形式がバイト単位で扱われている（固定長ファイル、基幹システム連携）</li><li>大文字と小文字を厳密に区別したい（商品コード、パスワード文字列など）</li><li>ワイルドカードは不要で、完全一致の検索で十分</li></ul>



<p class="wp-block-paragraph">逆に、社内の集計シートで「大文字小文字は気にしない、位置さえわかればOK」という場面は、SEARCHやSEARCHBのほうが扱いやすいですよ。</p>



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



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



<h3 class="wp-block-heading"><span id="toc19">&#8220;#VALUE!&#8221; エラー（検索文字列が見つからない）</span></h3>



<p class="wp-block-paragraph">一番よく遭遇するのが、検索文字列が対象文字列に含まれていないパターンです。たとえば <code>=FINDB("-", "ABCDE")</code> のようなケースですね。</p>



<p class="wp-block-paragraph">IFERRORでラップして、見つからない場合の代替値を決めておくのがおすすめです。</p>



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



<p class="wp-block-paragraph">これで、ハイフンが見つからない行は 0 として扱われ、後続の計算で判定しやすくなりますよ。</p>



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



<p class="wp-block-paragraph">開始位置に 0 以下や、文字列の長さを超える値を指定すると同じく <code>#VALUE!</code> が返ります。FINDB のネスト（1つ目の結果に +1 して2つ目を探す、など）で1つ目が見つからないと、2つ目の開始位置が <code>#VALUE!</code> になり連鎖するパターンですね。</p>



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



<p class="wp-block-paragraph">入れ子のFINDBもIFERRORで守っておくと、見つからない行でもエラーが表示されなくなりますよ。</p>



<h3 class="wp-block-heading"><span id="toc21">期待した位置と違う値が返る</span></h3>



<p class="wp-block-paragraph">大小区別で &#8220;A&#8221; を探したつもりが &#8220;a&#8221; ばかりのデータだった、という場合は結果が <code>#VALUE!</code> になります。逆に大小区別が不要なら、SEARCHBを使えば解決しますよ。</p>



<pre class="wp-block-code"><code>=SEARCHB(&quot;a&quot;, A2)   → 大文字でも小文字でもヒットする</code></pre>



<p class="wp-block-paragraph">また、FINDとFINDBを取り違えて「バイト位置が欲しいのに文字位置が返ってきた」というケースもよくあります。MIDBやLEFTBに渡す前提なら、必ずFINDBで統一してくださいね。</p>



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



<p class="wp-block-paragraph">スプレッドシートのFINDB関数は、文字列の中で指定文字が何バイト目にあるかを返す、固定長データ解析や区切り文字ベースのフィールド分解にピッタリの関数です。最後に要点を整理しておきましょう。</p>



<ul class="wp-block-list"><li>構文は <code>=FINDB(検索文字列, 対象文字列, [開始位置])</code> の3引数。開始位置省略時は先頭から</li><li>全角=2バイト、半角=1バイトとしてカウントする</li><li>大文字と小文字を区別する（&#8221;A&#8221; と &#8220;a&#8221; は別物）</li><li>FINDは文字数、FINDBはバイト数。MIDBやLEFTBに渡すならFINDB一択</li><li>SEARCHBとの違いは、大小区別の有無とワイルドカード可否</li><li>見つからないと #VALUE! になるので、IFERROR でラップして守る</li></ul>



<p class="wp-block-paragraph">まずは手元の区切り文字付きデータに、<code>=FINDB("-", A2)</code> のような形で当ててみてください。MIDBと組み合わせてフィールド分解すれば、固定長データ整形の作業がぐっと短縮できますよ。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-findb-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>
