<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>文字列抽出 &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/%e6%96%87%e5%ad%97%e5%88%97%e6%8a%bd%e5%87%ba/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Tue, 26 May 2026 10:46:42 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>文字列抽出 &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>ExcelのFIND関数の使い方｜文字位置を検索して文字列を抽出する</title>
		<link>https://mashukabu.com/excel-function-howto-use-find/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-find/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 18 Apr 2026 09:03:28 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[FIND関数]]></category>
		<category><![CDATA[SEARCH関数との違い]]></category>
		<category><![CDATA[エラー回避]]></category>
		<category><![CDATA[文字列抽出]]></category>
		<category><![CDATA[文字列操作]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=6048</guid>

					<description><![CDATA[ExcelのFIND関数の使い方を基本から解説。SEARCH関数との違い（大文字小文字区別・ワイルドカード可否）を比較表で即決。LEFT/MID/RIGHTとの組み合わせで商品コード・メールアドレスを実務的に抽出する方法と、IFERRORでエラーを回避するテクニックを紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Excelで「商品コードのハイフンが何文字目にあるか調べたい」「メールアドレスの@の位置を取って、その前後を切り出したい」と思ったことはありませんか？ LEFT・MID・RIGHT関数は知っていても、「切り出し位置を自動で判定する」までつながらないと、結局セルごとに手作業で文字数を数える羽目になりますよね。</p>



<p class="wp-block-paragraph">そんなときに使えるのが <strong>FIND関数</strong>（ファインド関数）です。 FIND（ファインド）は英語で「見つける」を意味し、指定した文字が何文字目にあるかを返してくれます。 返した位置をLEFT・MID・RIGHTの引数にそのまま渡せば、商品コード・メールアドレス・カッコ付き文字列を一発で分解できます。</p>



<p class="wp-block-paragraph">この記事では、FIND関数の基本構文からSEARCH関数との違い、LEFT・MID・RIGHTとの組み合わせ実例3パターン、エラー回避まで、実務で使える知識を一通り解説しますよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>対象バージョン:</strong> Excel 2016 / 2019 / 2021 / Microsoft 365（Windows・Mac共通）。Excel for the web・Googleスプレッドシートでも同じ構文で使えます。</p></blockquote>




  <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">FIND関数とSEARCH関数の違い：どちらを使うべきか</a></li><li><a href="#toc2" tabindex="0">FIND関数の基本構文と引数</a><ol><li><a href="#toc3" tabindex="0">書式</a></li><li><a href="#toc4" tabindex="0">戻り値は「1から数えた文字位置」</a></li><li><a href="#toc5" tabindex="0">大文字と小文字は別物として扱う</a></li><li><a href="#toc6" tabindex="0">#VALUE!エラーが出る条件</a></li><li><a href="#toc7" tabindex="0">ワイルドカードは使えない</a></li></ol></li><li><a href="#toc8" tabindex="0">FIND関数の基本的な使い方</a><ol><li><a href="#toc9" tabindex="0">特定の文字が何文字目にあるかを調べる</a></li><li><a href="#toc10" tabindex="0">開始位置を指定して途中から検索する</a></li></ol></li><li><a href="#toc11" tabindex="0">FIND + LEFT/MID/RIGHT 組み合わせパターン3選</a><ol><li><a href="#toc12" tabindex="0">パターン①：商品コードのハイフン位置から型番を抽出する</a></li><li><a href="#toc13" tabindex="0">パターン②：メールアドレスの「@」位置でID・ドメインを分離する</a></li><li><a href="#toc14" tabindex="0">パターン③：全角カッコ「（」「）」の両位置からカッコ内を取り出す</a></li></ol></li><li><a href="#toc15" tabindex="0">2つ目の同一文字を探す：開始位置の指定テクニック</a><ol><li><a href="#toc16" tabindex="0">2つ目のハイフン位置を取得する基本形</a></li><li><a href="#toc17" tabindex="0">FIND+LENで可変長文字列に対応する</a></li></ol></li><li><a href="#toc18" tabindex="0">IFERROR + FIND でエラーを回避する</a><ol><li><a href="#toc19" tabindex="0">#VALUE!エラーの発生原因をおさらい</a></li><li><a href="#toc20" tabindex="0">「0返し」と「空文字返し」の使い分け</a></li></ol></li><li><a href="#toc21" tabindex="0">まとめ：FIND関数の活用ポイント</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">FIND関数とSEARCH関数の違い：どちらを使うべきか</span></h2>



<p class="wp-block-paragraph">FIND関数の説明に入る前に、ほぼ同じ機能を持つ <strong>SEARCH関数</strong> との違いを先に片付けてしまいましょう。 ここを最初に整理しておくと、以降の解説で「なぜFINDを選ぶのか」が腹落ちしますよ。</p>



<p class="wp-block-paragraph">両者の違いはシンプルで、ポイントは2つだけです。 1つ目は <strong>大文字小文字を区別するか</strong>、2つ目は <strong>ワイルドカードが使えるか</strong> です。</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>ワイルドカード（<code>?</code> <code>*</code>）</td><td>非対応</td><td>対応</td></tr><tr><td>主な用途</td><td>完全一致・厳密な位置検索</td><td>表記ゆれ対応・あいまい検索</td></tr><tr><td>エラー条件</td><td>見つからない等で <code>#VALUE!</code></td><td>見つからない等で <code>#VALUE!</code></td></tr><tr><td>構文</td><td><code>=FIND(検索文字, 対象, [開始位置])</code></td><td><code>=SEARCH(検索文字, 対象, [開始位置])</code></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">使い分けは次のように覚えておけばOKです。 「<strong>データが厳密に揃っているならFIND、表記ゆれがあるならSEARCH</strong>」です。 商品コードやメールアドレスはFIND、ユーザーが自由に入力した文章内の検索はSEARCHが向いています。</p>



<p class="wp-block-paragraph">SEARCH関数を詳しく知りたい方は、<a href="https://mashukabu.com/excel-function-howto-use-search/">SEARCH関数の使い方記事</a> も合わせて読んでみてくださいね。</p>



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



<h3 class="wp-block-heading"><span id="toc3">書式</span></h3>



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



<pre class="wp-block-code"><code>=FIND(find_text, within_text, [start_num])</code></pre>



<p class="wp-block-paragraph">日本語で書き直すとこうなります。</p>



<pre class="wp-block-code"><code>=FIND(検索する文字, 対象の文字列, [開始位置])</code></pre>



<p class="wp-block-paragraph">引数は3つあり、最後の開始位置だけ省略可能です。 それぞれの役割を表で確認しましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/省略可</th><th>説明</th><th>指定例</th></tr></thead><tbody><tr><td>find_text（検索する文字）</td><td>必須</td><td>探したい文字列。1文字でも複数文字でも可</td><td><code>"-"</code>, <code>"@"</code>, <code>"abc"</code></td></tr><tr><td>within_text（対象の文字列）</td><td>必須</td><td>検索対象のセルまたは文字列</td><td><code>A1</code>, <code>"PRD-001-BK"</code></td></tr><tr><td>start_num（開始位置）</td><td>省略可</td><td>検索を始める文字位置。省略時は1</td><td><code>5</code> → 5文字目から検索</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc4">戻り値は「1から数えた文字位置」</span></h3>



<p class="wp-block-paragraph">FIND関数が返すのは、<strong>検索文字が対象の中で最初にヒットした位置</strong> を1始まりの整数で表した値です。 たとえば「PRD-001-BK」の「-」を検索すると、1つ目のハイフンは4文字目にあるので4が返ります。</p>



<pre class="wp-block-code"><code>=FIND(&quot;-&quot;, &quot;PRD-001-BK&quot;)
→ 結果: 4</code></pre>



<h3 class="wp-block-heading"><span id="toc5">大文字と小文字は別物として扱う</span></h3>



<p class="wp-block-paragraph">FINDの最大の特徴は <strong>大文字と小文字を厳密に区別する</strong> ことです。 「A」と「a」は別の文字として扱われるので、表記ゆれがあるデータだと意図通りにヒットしません。</p>



<pre class="wp-block-code"><code>=FIND(&quot;excel&quot;, &quot;I love Excel&quot;)
→ 結果: #VALUE!（&quot;excel&quot;（小文字）は見つからない）

=FIND(&quot;Excel&quot;, &quot;I love Excel&quot;)
→ 結果: 8（&quot;Excel&quot; は8文字目にある）</code></pre>



<p class="wp-block-paragraph">この挙動が「厳密でありがたい」と感じるか「面倒」と感じるかで、FINDとSEARCHの使い分けが決まります。</p>



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



<p class="wp-block-paragraph">FIND関数でエラーが出るのは、主に次の2パターンです。 どちらもあとのIFERRORセクションで回避方法を紹介しますよ。</p>



<ol class="wp-block-list"><li><strong>検索文字が対象に含まれていない</strong>（例: <code>=FIND("z", "abc")</code> → 「z」は「abc」にない）</li><li><strong>start_numが0以下、またはwithin_textの文字数を超えている</strong>（例: <code>=FIND("a", "abc", 10)</code> → 対象は3文字しかない）</li></ol>



<h3 class="wp-block-heading"><span id="toc7">ワイルドカードは使えない</span></h3>



<p class="wp-block-paragraph">FIND関数では <code>?</code>（任意の1文字）や <code>*</code>（任意の文字列）といったワイルドカードは使えません。 あいまい検索をしたい場合はSEARCH関数を使うか、<a href="https://mashukabu.com/excel-function-howto-use-substitute/">SUBSTITUTE関数</a> で前処理してからFINDに渡す、といった工夫が必要です。</p>



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



<h3 class="wp-block-heading"><span id="toc9">特定の文字が何文字目にあるかを調べる</span></h3>



<p class="wp-block-paragraph">まずは一番シンプルな使い方からです。 セルA2に「PRD-001-BK」という商品コードが入っているとして、最初のハイフンが何文字目にあるかを調べてみましょう。</p>



<pre class="wp-block-code"><code>=FIND(&quot;-&quot;, A2)
→ 結果: 4</code></pre>



<p class="wp-block-paragraph">「PRD」の3文字のあとにハイフンが来るので、4が返りますね。</p>



<h3 class="wp-block-heading"><span id="toc10">開始位置を指定して途中から検索する</span></h3>



<p class="wp-block-paragraph">FIND関数の3つ目の引数 <code>start_num</code> を使うと、検索開始位置をずらせます。 たとえば「PRD-001-BK」の5文字目以降から「-」を探すとこうなります。</p>



<pre class="wp-block-code"><code>=FIND(&quot;-&quot;, A2, 5)
→ 結果: 8</code></pre>



<p class="wp-block-paragraph">1つ目のハイフン（4文字目）は無視されて、2つ目のハイフン（8文字目）が見つかりましたね。 この「開始位置の指定」は、後述の「2つ目の同一文字を探す」テクニックで大活躍します。</p>



<h2 class="wp-block-heading"><span id="toc11">FIND + LEFT/MID/RIGHT 組み合わせパターン3選</span></h2>



<p class="wp-block-paragraph">ここからが本記事のメインテーマです。 FIND関数は単独で使うことはほぼなく、LEFT・MID・RIGHTの切り出し位置を自動算出するパーツとして組み合わせるのが定番です。 実務でよく使う3パターンを具体的に見ていきましょう。</p>



<h3 class="wp-block-heading"><span id="toc12">パターン①：商品コードのハイフン位置から型番を抽出する</span></h3>



<p class="wp-block-paragraph">商品コード「PRD-001-BK」から真ん中の型番「001」だけを取り出したいケースを考えます。 型番の前後はハイフンで挟まれているので、「1つ目のハイフンの次の文字」から「2つ目のハイフンの1つ前」までを切り出せばOKですね。</p>



<p class="wp-block-paragraph">これを数式にするとこうなります。</p>



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



<p class="wp-block-paragraph">一見複雑ですが、パーツに分解すれば怖くありません。</p>



<ul class="wp-block-list"><li><code>FIND("-", A2)</code> → 1つ目のハイフン位置（4）</li><li><code>FIND("-", A2, FIND("-", A2)+1)</code> → 2つ目のハイフン位置（8）</li><li>開始位置: <code>FIND("-", A2)+1</code> = 5</li><li>文字数: <code>8 - 4 - 1</code> = 3</li></ul>



<p class="wp-block-paragraph">結果として「001」が取り出せます。 MID関数の仕様を詳しく知りたい方は <a href="https://mashukabu.com/excel-function-howto-use-mid/">MID関数の使い方記事</a> も参考にしてくださいね。</p>



<h3 class="wp-block-heading"><span id="toc13">パターン②：メールアドレスの「@」位置でID・ドメインを分離する</span></h3>



<p class="wp-block-paragraph">次はメールアドレスを「ユーザーID」と「ドメイン」に分離するパターンです。 「taro@example.com」のように <code>@</code> が1つだけあるフォーマットなので、FINDで <code>@</code> の位置を取れば左右に分解できます。</p>



<p class="wp-block-paragraph">セルA2に <code>taro@example.com</code> が入っているとして、ユーザーID側を取り出す式はこうです。</p>



<pre class="wp-block-code"><code>=LEFT(A2, FIND(&quot;@&quot;, A2)-1)
→ 結果: taro</code></pre>



<p class="wp-block-paragraph">「@の位置 &#8211; 1」の文字数だけ左から取り出せば、@ の直前までが切り出せますね。 LEFT関数の詳細は <a href="https://mashukabu.com/excel-function-howto-use-left/">LEFT関数の使い方記事</a> で解説しています。</p>



<p class="wp-block-paragraph">続けてドメイン側です。 「全体の長さ &#8211; @の位置」の文字数を右から取ればOKで、可変長のドメインにも対応できます。</p>



<pre class="wp-block-code"><code>=RIGHT(A2, LEN(A2)-FIND(&quot;@&quot;, A2))
→ 結果: example.com</code></pre>



<p class="wp-block-paragraph"><code>LEN(A2)</code> で全体の文字数（16）を取り、そこから <code>@</code> の位置（5）を引いた11文字をRIGHTで切り出しています。 RIGHT関数は <a href="https://mashukabu.com/excel-function-howto-use-right/">RIGHT関数の使い方記事</a>、LEN関数は <a href="https://mashukabu.com/excel-function-howto-use-len/">LEN関数の使い方記事</a> に詳しい解説があります。</p>



<h3 class="wp-block-heading"><span id="toc14">パターン③：全角カッコ「（」「）」の両位置からカッコ内を取り出す</span></h3>



<p class="wp-block-paragraph">3つ目は「商品名（送料込み）」から、カッコ内の「送料込み」だけを抜き出すパターンです。 FIND関数を2回使って「（」と「）」の位置を取得し、MIDで挟まれた部分を切り出します。</p>



<p class="wp-block-paragraph">セルA2に <code>商品名（送料込み）</code> が入っているとすると、式はこうなります。</p>



<pre class="wp-block-code"><code>=MID(A2, FIND(&quot;（&quot;, A2)+1, FIND(&quot;）&quot;, A2)-FIND(&quot;（&quot;, A2)-1)
→ 結果: 送料込み</code></pre>



<p class="wp-block-paragraph">ロジックはパターン①と同じで、「（の次の位置」から「）の1つ前までの文字数」を取っているだけです。 全角カッコと半角カッコが混在するデータでは、SUBSTITUTEで統一してから処理すると安定しますよ。</p>



<h2 class="wp-block-heading"><span id="toc15">2つ目の同一文字を探す：開始位置の指定テクニック</span></h2>



<p class="wp-block-paragraph">商品コード「PRD-001-BK」のように同じ文字が複数含まれるとき、「2つ目のハイフンだけを狙いたい」場面がよくあります。 ここで活躍するのが、FIND関数の3つ目の引数 <code>start_num</code> です。</p>



<h3 class="wp-block-heading"><span id="toc16">2つ目のハイフン位置を取得する基本形</span></h3>



<p class="wp-block-paragraph">考え方はシンプルで、「1つ目のハイフン位置の次の文字から検索を再開する」というだけです。</p>



<pre class="wp-block-code"><code>=FIND(&quot;-&quot;, A2, FIND(&quot;-&quot;, A2)+1)
→ 結果: 8</code></pre>



<p class="wp-block-paragraph">内側の <code>FIND("-", A2)</code> で1つ目のハイフン位置（4）を取り、<code>+1</code> した5文字目から再検索します。 そうすると2つ目のハイフン位置（8）が返ります。 この「FINDのネスト」は商品コード解析で頻出するパターンなので、覚えておくと武器になりますよ。</p>



<h3 class="wp-block-heading"><span id="toc17">FIND+LENで可変長文字列に対応する</span></h3>



<p class="wp-block-paragraph">ハイフン区切りのコードで、各パートの長さが可変になることもあります。 たとえば「PRD-12-BK」「PRD-0001-WH」のように型番の桁数がバラバラなケースです。</p>



<p class="wp-block-paragraph">末尾の「BK」「WH」を取り出すには「2つ目のハイフンの次から末尾まで」を切り出せばよく、その文字数は <code>LEN - 2つ目のハイフン位置</code> で計算できます。</p>



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



<p class="wp-block-paragraph">セルA2が「PRD-0001-WH」なら、LENは11、2つ目のハイフン位置は9、差分は2なのでRIGHTで末尾2文字「WH」が取れます。 可変長データにFINDとLENを組み合わせるこの型は、応用範囲がとても広いですよ。</p>



<h2 class="wp-block-heading"><span id="toc18">IFERROR + FIND でエラーを回避する</span></h2>



<p class="wp-block-paragraph">ここまで紹介した式は「必ず検索文字が含まれている」前提でしたが、実務データにはハイフンなしのコードやメールアドレス不備の行が混ざることがよくあります。 そのままFIND関数を通すと <code>#VALUE!</code> エラーが返り、以降の計算がすべて崩れてしまいます。 これを防ぐのが <a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数</a> との組み合わせです。</p>



<h3 class="wp-block-heading"><span id="toc19">#VALUE!エラーの発生原因をおさらい</span></h3>



<p class="wp-block-paragraph">FIND関数でエラーになる代表的な原因は次の2つです。</p>



<ul class="wp-block-list"><li>検索文字がwithin_textに含まれていない（例: ハイフンなしの商品コード）</li><li>start_numが0以下、またはwithin_textの文字数より大きい</li></ul>



<p class="wp-block-paragraph">どちらも「たまに混ざるイレギュラーなデータ」で発生しがちです。 集計シート全体が <code>#VALUE!</code> で埋め尽くされるのはよくある事故なので、IFERRORでの保険は必ず入れておきたいところです。</p>



<h3 class="wp-block-heading"><span id="toc20">「0返し」と「空文字返し」の使い分け</span></h3>



<p class="wp-block-paragraph">IFERROR+FINDの書き方には、大きく分けて2パターンあります。</p>



<p class="wp-block-paragraph"><strong>パターン1：0を返す</strong></p>



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



<p class="wp-block-paragraph">エラー時に0を返す書き方です。 返り値を後続のMIDやLEFTに渡す場合や、ヒット数をカウントしたい場合に向いています。 0が返ったセルだけ別処理する、といった分岐にも使えますよ。</p>



<p class="wp-block-paragraph"><strong>パターン2：空文字を返す</strong></p>



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



<p class="wp-block-paragraph">エラー時に空文字を返す書き方です。 一覧表示で「該当なしの行は空欄にしたい」ときに向いています。 ただし空文字は数値ではないので、後続の数式に直接つなぐとかえってエラーになることがあります。注意してください。</p>



<p class="wp-block-paragraph"><strong>使い分けの目安</strong></p>



<ul class="wp-block-list"><li>後続の数式で計算に使う → <strong>0返し</strong>（数値として扱える）</li><li>表示用・目視確認用 → <strong>空文字返し</strong>（0だと紛らわしい場面で有効）</li><li>LEFT/MID/RIGHTに直接つなぐ → IFERRORを <strong>外側に巻く</strong> 書き方が安全</li></ul>



<p class="wp-block-paragraph">たとえばメールアドレスのID抽出なら、IFERRORを外側に巻く書き方が実用的です。</p>



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



<p class="wp-block-paragraph">こう書いておけば、「@が含まれない不正なメールアドレス」の行は空欄になり、集計が止まりません。</p>



<h2 class="wp-block-heading"><span id="toc21">まとめ：FIND関数の活用ポイント</span></h2>



<p class="wp-block-paragraph">FIND関数の使いどころを最後に整理しますね。</p>



<ul class="wp-block-list"><li><strong>基本</strong>: <code>=FIND(検索文字, 対象, [開始位置])</code> で1始まりの位置を返す。大文字小文字は <strong>区別する</strong>、ワイルドカードは <strong>非対応</strong></li><li><strong>SEARCH関数との使い分け</strong>: 厳密なデータ（コード・メールアドレス）はFIND、表記ゆれやあいまい検索はSEARCH</li><li><strong>LEFT/MID/RIGHTとの組み合わせが本領</strong>: 商品コードの型番抽出・メールアドレス分離・カッコ内抽出の3パターンはテンプレとして覚えると実務で即戦力</li><li><strong>開始位置の指定</strong> は「2つ目の同一文字」を狙うときの必須テクニック。FINDをネストするとシンプルに書ける</li><li><strong>FIND+LEN</strong> の組み合わせで可変長文字列にも対応できる</li><li><strong>IFERRORでの保険</strong> を忘れずに。0返しは数値計算向き、空文字返しは表示向き。LEFT/MID/RIGHTと組み合わせるときはIFERRORを外側に巻くのが安全</li></ul>



<p class="wp-block-paragraph">FIND関数は単独で眺めるとシンプルですが、LEFT・MID・RIGHT・LEN・IFERROR・SUBSTITUTEと組み合わせることで、実務データをきれいにさばけるようになります。 文字列操作の全体像を俯瞰したい方は、<a href="https://mashukabu.com/excel-string-functions-guide/">Excelの文字列関数まとめ</a> もぜひ読んでみてくださいね。 1つずつ手を動かして試せば、「コードの分解は手作業でやる」状態から必ず卒業できますよ。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-find/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのREGEXEXTRACT関数の使い方｜正規表現で文字列を抽出する</title>
		<link>https://mashukabu.com/excel-function-howto-use-regexextract/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-regexextract/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 09 Apr 2026 04:11:05 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[Microsoft 365]]></category>
		<category><![CDATA[REGEXEXTRACT関数]]></category>
		<category><![CDATA[REGEXTEST]]></category>
		<category><![CDATA[データクレンジング]]></category>
		<category><![CDATA[文字列抽出]]></category>
		<category><![CDATA[正規表現]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=5896</guid>

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



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



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



<p class="wp-block-paragraph">この記事では、ExcelのREGEXEXTRACT関数の使い方を基本から実務例まで解説します。キャプチャグループの使い方や姉妹関数との使い分けもまとめましたので、ぜひ参考にしてください。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ExcelのREGEXEXTRACT関数とは？</a><ol><li><a href="#toc2" tabindex="0">どんなときに使う関数か</a></li><li><a href="#toc3" tabindex="0">利用条件（Microsoft 365が必須）</a></li></ol></li><li><a href="#toc4" tabindex="0">REGEXEXTRACT関数の構文と引数</a><ol><li><a href="#toc5" tabindex="0">基本構文</a></li><li><a href="#toc6" tabindex="0">第1引数：テキスト</a></li><li><a href="#toc7" tabindex="0">第2引数：正規表現パターン</a></li><li><a href="#toc8" tabindex="0">第3引数：戻り値モード（return_mode）</a></li><li><a href="#toc9" tabindex="0">第4引数：大文字小文字の区別</a></li></ol></li><li><a href="#toc10" tabindex="0">Excel REGEXEXTRACT関数の基本的な使い方</a><ol><li><a href="#toc11" tabindex="0">文字列から最初の数字列を取り出す</a></li><li><a href="#toc12" tabindex="0">郵便番号を抜き出す</a></li><li><a href="#toc13" tabindex="0">本文からメールアドレスを抽出する</a></li><li><a href="#toc14" tabindex="0">IFERRORでエラーを隠す</a></li></ol></li><li><a href="#toc15" tabindex="0">実践的な使い方・応用例</a><ol><li><a href="#toc16" tabindex="0">電話番号の市外局番だけを抽出する</a></li><li><a href="#toc17" tabindex="0">URLからドメイン部分を取得する</a></li><li><a href="#toc18" tabindex="0">日付文字列から年・月・日を分離する</a></li><li><a href="#toc19" tabindex="0">本文中のハッシュタグをすべて抽出する</a></li><li><a href="#toc20" tabindex="0">メールアドレスからユーザー名とドメインを分ける</a></li></ol></li><li><a href="#toc21" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc22" tabindex="0">#N/A エラー</a></li><li><a href="#toc23" tabindex="0">#VALUE! エラー</a></li><li><a href="#toc24" tabindex="0">#NAME? エラー</a></li><li><a href="#toc25" tabindex="0">エラー一覧表</a></li></ol></li><li><a href="#toc26" tabindex="0">列全体に一括適用する方法（MAP関数との組み合わせ）</a><ol><li><a href="#toc27" tabindex="0">MAP + LAMBDAの書き方パターン</a></li></ol></li><li><a href="#toc28" tabindex="0">REGEXTEST と組み合わせたフィルタリングパターン</a><ol><li><a href="#toc29" tabindex="0">メールアドレスが含まれる行だけを絞り込む</a></li><li><a href="#toc30" tabindex="0">絞り込んだ上で抽出する2段階パターン</a></li></ol></li><li><a href="#toc31" tabindex="0">REGEXREPLACE との使い分けと連携</a><ol><li><a href="#toc32" tabindex="0">取り出しにくいなら「削除」で代用する</a></li><li><a href="#toc33" tabindex="0">よく使う正規表現パターン早見表</a></li></ol></li><li><a href="#toc34" tabindex="0">REGEXTEST・REGEXREPLACEとの使い分け</a></li><li><a href="#toc35" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



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



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



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



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



<p class="wp-block-paragraph">REGEXEXTRACT関数は次のようなシーンで活躍します。</p>



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



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



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



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



<p class="wp-block-paragraph">対応環境は次のとおりです。</p>



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



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



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



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



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



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



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



<p class="wp-block-paragraph">抽出元の文字列またはセル参照を指定します。</p>



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



<p class="wp-block-paragraph">それでは実際に数式を組み立ててみましょう。</p>



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



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



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



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



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



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



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



<p class="wp-block-paragraph">住所の中から郵便番号だけを取り出す例です。</p>



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



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



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



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



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



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



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



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



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



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



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



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



<p class="wp-block-paragraph">電話番号の先頭部分だけを取り出す例です。</p>



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



<p class="wp-block-paragraph">アットマークの前後を分けて取り出す例です。</p>



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



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



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



<p class="wp-block-paragraph">REGEXEXTRACT関数で表示されるエラーと対処法をまとめました。</p>



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



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



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



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



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



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



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



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



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



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



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



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



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



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



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



<h2 class="wp-block-heading"><span id="toc26">列全体に一括適用する方法（MAP関数との組み合わせ）</span></h2>



<p class="wp-block-paragraph">REGEXEXTRACT関数にセル範囲を直接渡すと <code>#VALUE!</code> になってしまいます。列全体に適用したい場合は、<strong>MAP関数</strong>（配列の各要素に関数を適用する関数）と組み合わせましょう。</p>



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



<p class="wp-block-paragraph">この数式はA2:A100の各セルに対してREGEXEXTRACTを実行し、エラーのセルは空欄に置き換えてくれます。結果はA2から下方向にスピルします。</p>



<h3 class="wp-block-heading"><span id="toc27">MAP + LAMBDAの書き方パターン</span></h3>



<pre class="wp-block-code"><code>=MAP(範囲, LAMBDA(変数名, IFERROR(REGEXEXTRACT(変数名, &quot;パターン&quot;), &quot;&quot;)))</code></pre>



<p class="wp-block-paragraph"><code>LAMBDA</code> の第1引数は変数名（任意）で、第2引数に実行する処理を書きます。次の例では電話番号列から市外局番だけを一括抽出しています。</p>



<pre class="wp-block-code"><code>=MAP(B2:B50, LAMBDA(tel, IFERROR(REGEXEXTRACT(tel, &quot;^0d{1,4}&quot;), &quot;&quot;)))</code></pre>



<p class="wp-block-paragraph">従来はフィルコピーや絶対参照の調整が必要でしたが、MAP関数を使えばセル1つに数式を書くだけで済みます。大量データの一括処理で特に重宝しますよ。</p>



<h2 class="wp-block-heading"><span id="toc28">REGEXTEST と組み合わせたフィルタリングパターン</span></h2>



<p class="wp-block-paragraph">「パターンに一致するものだけを別セルに抽出したい」という場面では、REGEXTEST関数（パターンに一致するか TRUE/FALSE を返す関数）とFILTER関数を組み合わせるのが効果的です。</p>



<h3 class="wp-block-heading"><span id="toc29">メールアドレスが含まれる行だけを絞り込む</span></h3>



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



<p class="wp-block-paragraph">この数式でA2:A100の中から、メールアドレスのパターンを含む行だけをすべて取り出せます。REGEXTEST が各行に TRUE/FALSE を返し、FILTER がTRUEの行だけを残す仕組みです。</p>



<h3 class="wp-block-heading"><span id="toc30">絞り込んだ上で抽出する2段階パターン</span></h3>



<p class="wp-block-paragraph">REGEXTESTで先に入力値を検証してから、REGEXEXTRACTで取り出す2段階パターンも実務でよく使います。</p>



<pre class="wp-block-code"><code>=IF(REGEXTEST(A2, &quot;[w.+-]+@[w.-]+.w+&quot;),
    REGEXEXTRACT(A2, &quot;[w.+-]+@[w.-]+.w+&quot;),
    &quot;メール形式ではありません&quot;)</code></pre>



<p class="wp-block-paragraph">同じパターンを2回書く必要がありますが、エラーメッセージを日本語で出せるのがIFERROR単独との違いです。パターンが長い場合はLET関数で変数化すると管理しやすくなります。</p>



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



<p class="wp-block-paragraph"><code>LET</code> 関数（変数を定義して数式を整理できる関数）を使うとパターンを1か所で管理でき、正規表現を修正するときも1箇所直すだけで済みますよ。</p>



<h2 class="wp-block-heading"><span id="toc31">REGEXREPLACE との使い分けと連携</span></h2>



<p class="wp-block-paragraph">REGEXEXTRACTで「取り出せない」と感じたとき、REGEXREPLACEで「不要な部分を消す」発想に切り替えると解決できることがあります。</p>



<h3 class="wp-block-heading"><span id="toc32">取り出しにくいなら「削除」で代用する</span></h3>



<p class="wp-block-paragraph">たとえば「売上: ¥1,200」から数字とカンマだけを取り出したい場合、次の2つの書き方が考えられます。</p>



<p class="wp-block-paragraph"><strong>REGEXEXTRACTで取り出すアプローチ:</strong></p>



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



<p class="wp-block-paragraph"><strong>REGEXREPLACEで不要部分を削除するアプローチ:</strong></p>



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



<p class="wp-block-paragraph">後者は「数字とカンマ以外をすべて削除する」という発想です。<code>[^...]</code> は「括弧内の文字以外」を表す否定文字クラスです。複雑な抽出パターンを考えるより、削除するパターンのほうがシンプルに書けるケースも多いですよ。</p>



<h3 class="wp-block-heading"><span id="toc33">よく使う正規表現パターン早見表</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>整数</td><td><code>d+</code></td><td>123</td></tr><tr><td>小数点あり数値</td><td><code>d+.?d*</code></td><td>1200.5</td></tr><tr><td>郵便番号</td><td><code>d{3}-d{4}</code></td><td>100-0001</td></tr><tr><td>固定電話</td><td><code>0d{1,4}-d{1,4}-d{4}</code></td><td>03-1234-5678</td></tr><tr><td>携帯電話</td><td><code>0[789]0-d{4}-d{4}</code></td><td>090-1234-5678</td></tr><tr><td>メールアドレス</td><td><code>[w.+-]+@[w.-]+.w+</code></td><td>user@example.com</td></tr><tr><td>URLドメイン</td><td><code>https?://([^/]+)</code></td><td>www.example.com</td></tr><tr><td>日付（ハイフン）</td><td><code>d{4}-d{2}-d{2}</code></td><td>2026-04-09</td></tr><tr><td>日本語の年月日</td><td><code>(d{4})年(d{1,2})月(d{1,2})日</code></td><td>2026年4月9日</td></tr></tbody></table></figure>



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



<p class="wp-block-paragraph">REGEXEXTRACT関数には2つの姉妹関数があります。用途が異なるので、目的に合わせて使い分けましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>戻り値</th><th>用途</th></tr></thead><tbody><tr><td>REGEXTEST</td><td>TRUE / FALSE</td><td>パターンに一致するかを判定する</td></tr><tr><td>REGEXEXTRACT</td><td>一致した文字列</td><td>パターンに一致する部分を抜き出す</td></tr><tr><td>REGEXREPLACE</td><td>置換後の文字列</td><td>パターンに一致する部分を別の文字列に置き換える</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">使い分けのフローは次のとおりです。</p>



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



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



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



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



<p class="wp-block-paragraph">この記事のポイントを整理します。</p>



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



<p class="wp-block-paragraph">まずは <code>=REGEXEXTRACT("価格1200円", "d+")</code> のようなシンプルな式から試してみてください。LEFTやMIDを組み合わせた長い数式から解放されて、データ整理がぐっとラクになりますよ。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-regexextract/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Excelの文字列関数まとめ｜抽出・結合・分割・置換を実務シーン別に解説</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-3" checked><label class="toc-title" for="toc-checkbox-3">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">文字列関数の逆引きインデックス【やりたいこと別】</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>
