<?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/%e3%83%86%e3%82%ad%e3%82%b9%e3%83%88%e6%8a%bd%e5%87%ba/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Sun, 17 May 2026 09:17:13 +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のTEXTAFTER関数の使い方｜特定の文字より後ろの文字列を抽出する</title>
		<link>https://mashukabu.com/excel-function-howto-use-textafter/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-textafter/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 24 Dec 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[TEXTAFTER]]></category>
		<category><![CDATA[テキスト抽出]]></category>
		<category><![CDATA[文字列]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2583</guid>

					<description><![CDATA[ExcelのTEXTAFTER関数で区切り文字より後ろの文字列を取り出す方法を解説。インスタンス指定・後ろから数える・エラー処理・TEXTBEFORE/TEXTSPLITとの使い分けまで、実務で使えるコピペ数式つきで紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「メールアドレスから@より後ろのドメインだけ取り出したい」「ファイルパスからファイル名だけ抜き出したい」――。こんな文字列操作で時間を取られていませんか。</p>



<p class="wp-block-paragraph">従来はRIGHT関数とFIND関数とLEN関数を組み合わせた長い数式が必要でした。読みづらく、後から見返したときに修正に手間がかかる数式です。</p>



<p class="wp-block-paragraph">そんな手間を一気に解消してくれるのが <strong>TEXTAFTER関数（テキストアフター関数）</strong> です。区切り文字より後ろの文字列を、たった一行の数式で取り出せます。</p>



<p class="wp-block-paragraph">この記事ではTEXTAFTER関数の使い方を網羅的に解説します。書式・基本例・複数区切り・後ろから数えた抽出・TEXTBEFOREとの使い分け・エラー対処・FAQまでカバーしています。Excel 2021とMicrosoft 365で使える便利な新関数を、明日から実務で活かしてください。</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">TEXTAFTER関数とは？読み方と何ができるか</a><ol><li><a href="#toc2" tabindex="0">読み方と語源</a></li><li><a href="#toc3" tabindex="0">TEXTAFTER関数でできること</a></li><li><a href="#toc4" tabindex="0">対応バージョンと注意点</a></li></ol></li><li><a href="#toc5" tabindex="0">TEXTAFTER関数の書式と引数</a><ol><li><a href="#toc6" tabindex="0">基本構文</a></li><li><a href="#toc7" tabindex="0">引数一覧表</a></li><li><a href="#toc8" tabindex="0">引数を使い分ける目安</a></li></ol></li><li><a href="#toc9" tabindex="0">TEXTAFTER関数の基本的な使い方</a><ol><li><a href="#toc10" tabindex="0">例1：メールアドレスからドメインを取り出す</a></li><li><a href="#toc11" tabindex="0">例2：氏名から「名前」だけを抽出する</a></li><li><a href="#toc12" tabindex="0">例3：商品コードからサイズだけ取り出す</a></li><li><a href="#toc13" tabindex="0">例4：従来の数式との比較</a></li></ol></li><li><a href="#toc14" tabindex="0">TEXTAFTER関数の使い方｜複数の区切り文字を指定する</a><ol><li><a href="#toc15" tabindex="0">インスタンス引数の基本</a></li><li><a href="#toc16" tabindex="0">TEXTBEFOREと組み合わせて中間項目を切り出す</a></li><li><a href="#toc17" tabindex="0">CSVデータからN番目の項目を抜き出す関数のひな型</a></li></ol></li><li><a href="#toc18" tabindex="0">TEXTAFTER関数の使い方｜後ろから数えた位置で抽出する</a><ol><li><a href="#toc19" tabindex="0">負のインスタンスの基本</a></li><li><a href="#toc20" tabindex="0">ファイルパスからファイル名だけ取り出す</a></li><li><a href="#toc21" tabindex="0">URLから末尾のスラッグを取り出す</a></li><li><a href="#toc22" tabindex="0">拡張子だけを取り出す</a></li></ol></li><li><a href="#toc23" tabindex="0">TEXTAFTER関数とTEXTBEFORE・TEXTSPLITとの使い分け</a><ol><li><a href="#toc24" tabindex="0">3つの関数の役割比較</a></li><li><a href="#toc25" tabindex="0">TEXTBEFORE と TEXTAFTER の対比</a></li><li><a href="#toc26" tabindex="0">TEXTSPLIT が向くケース</a></li><li><a href="#toc27" tabindex="0">使い分けの判断フロー</a></li></ol></li><li><a href="#toc28" tabindex="0">TEXTAFTER関数でよくあるエラーと対処法</a><ol><li><a href="#toc29" tabindex="0">エラー一覧</a></li><li><a href="#toc30" tabindex="0">#N/A エラー：区切り記号が見つからない</a></li><li><a href="#toc31" tabindex="0">#VALUE! エラー：インスタンスが不正</a></li><li><a href="#toc32" tabindex="0">#NAME? エラー：バージョン非対応</a></li><li><a href="#toc33" tabindex="0">#SPILL! エラー：配列入力の競合</a></li></ol></li><li><a href="#toc34" tabindex="0">TEXTAFTER関数のよくある質問（FAQ）</a><ol><li><a href="#toc35" tabindex="0">Q1. TEXTAFTER関数はどのバージョンのExcelから使えますか</a></li><li><a href="#toc36" tabindex="0">Q2. 区切り文字に複数の候補を指定できますか</a></li><li><a href="#toc37" tabindex="0">Q3. 大文字と小文字を区別したくないときはどうすればいいですか</a></li><li><a href="#toc38" tabindex="0">Q4. 区切り文字自体も含めて取り出したい場合はどうしますか</a></li><li><a href="#toc39" tabindex="0">Q5. RIGHT関数とTEXTAFTER関数はどう使い分けますか</a></li><li><a href="#toc40" tabindex="0">Q6. 区切り記号が見つからないときに元の文字列を返したい</a></li><li><a href="#toc41" tabindex="0">Q7. TEXTAFTER関数を使うと数式が遅くなりますか</a></li></ol></li><li><a href="#toc42" tabindex="0">まとめ</a><ol><li><a href="#toc43" tabindex="0">関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">TEXTAFTER関数とは？読み方と何ができるか</span></h2>



<p class="wp-block-paragraph">まずはTEXTAFTER関数の正体を整理しておきます。読み方・語源・対応バージョン・できることを順に確認しましょう。</p>



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



<p class="wp-block-paragraph">TEXTAFTERは「テキスト アフター」と読みます。TEXT（テキスト）＋ AFTER（〜より後）が語源です。</p>



<p class="wp-block-paragraph">つまり「指定した文字よりも後ろの部分を抽出するテキスト関数」というのが、関数名そのものに表れています。対になる関数として、前の部分を取り出すTEXTBEFORE関数（テキストビフォア）が用意されています。</p>



<h3 class="wp-block-heading"><span id="toc3">TEXTAFTER関数でできること</span></h3>



<p class="wp-block-paragraph">TEXTAFTER関数は、文字列の中から指定した <strong>区切り文字（デリミタ）より後ろ</strong> の部分を抽出します。</p>



<p class="wp-block-paragraph">具体的には次のような処理を1つの数式で実現できます。</p>



<ul class="wp-block-list"><li>メールアドレスの「@」より後ろのドメインを取り出す</li><li>ファイルパスの最後の「」より後ろのファイル名を取り出す</li><li>「苗字 名前」形式から名前だけを抽出する</li><li>カンマ区切りデータから特定の項目だけを切り出す</li><li>URLから特定のディレクトリ以降を取得する</li></ul>



<p class="wp-block-paragraph">しかも区切り文字が複数ある場合に「何番目を基準にするか」も指定できます。負の値を使えば末尾から数えることも可能です。</p>



<h3 class="wp-block-heading"><span id="toc4">対応バージョンと注意点</span></h3>



<p class="wp-block-paragraph">TEXTAFTER関数は新しい関数です。対応バージョンを必ず事前に確認してください。</p>



<figure class="wp-block-table"><table><thead><tr><th>バージョン</th><th>TEXTAFTER関数の利用可否</th></tr></thead><tbody><tr><td>Microsoft 365</td><td>使える</td></tr><tr><td>Excel 2021</td><td>使える</td></tr><tr><td>Excel 2019</td><td>使えない</td></tr><tr><td>Excel 2016 / 2013</td><td>使えない</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Excel 2019以前ではTEXTAFTER関数を使えません。共有先の環境がExcel 2019以前の場合は、<a href="https://mashukabu.com/excel-function-howto-use-find/">FIND関数</a>と<a href="https://mashukabu.com/excel-function-howto-use-right/">RIGHT関数</a>を組み合わせる従来の方法で書く必要があります。</p>



<h2 class="wp-block-heading"><span id="toc5">TEXTAFTER関数の書式と引数</span></h2>



<p class="wp-block-paragraph">TEXTAFTER関数は引数が多めです。とはいえ実務で使うのは最初の2〜3個がほとんどです。まずは全体像を掴みましょう。</p>



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



<pre class="wp-block-code"><code>=TEXTAFTER(文字列, 区切り記号, [インスタンス], [一致モード], [検索方法], [見つからない場合])</code></pre>



<p class="wp-block-paragraph">必須引数は <strong>文字列</strong> と <strong>区切り記号</strong> の2つだけです。3つ目以降は省略可能で、必要に応じて指定します。</p>



<h3 class="wp-block-heading"><span id="toc7">引数一覧表</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>文字列</td><td>必須</td><td>―</td><td>抽出元の文字列またはセル参照を指定します</td></tr><tr><td>区切り記号</td><td>必須</td><td>―</td><td>この文字より「後ろ」を抽出する目印を指定します</td></tr><tr><td>インスタンス</td><td>任意</td><td>1</td><td>区切り記号が複数ある場合に何番目を基準にするか指定します</td></tr><tr><td>一致モード</td><td>任意</td><td>0</td><td>大文字小文字を区別するか指定します（0=区別する／1=区別しない）</td></tr><tr><td>検索方法</td><td>任意</td><td>0</td><td>末尾から検索するかどうかを指定します（0=先頭から／1=末尾から）</td></tr><tr><td>見つからない場合</td><td>任意</td><td>#N/A</td><td>区切り記号が見つからないときに返す値を指定します</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc8">引数を使い分ける目安</span></h3>



<p class="wp-block-paragraph">引数の選び方には次のような目安があります。</p>



<ul class="wp-block-list"><li>1〜2個だけ使う：シンプルな抽出ならこれで足りる</li><li>3個目（インスタンス）を使う：区切り記号が複数あるとき</li><li>6個目（見つからない場合）を使う：エラーを別の文字に置き換えたいとき</li><li>4・5個目はあまり使わない：特殊なケースで登場する程度</li></ul>



<p class="wp-block-paragraph">最初は文字列と区切り記号の2つだけ覚えれば十分です。慣れてきたらインスタンスと「見つからない場合」を追加していきましょう。</p>



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



<p class="wp-block-paragraph">ここからは実際の使用例を見ていきます。まずは最もシンプルなパターンからです。</p>



<h3 class="wp-block-heading"><span id="toc10">例1：メールアドレスからドメインを取り出す</span></h3>



<p class="wp-block-paragraph">メールアドレスを「@」で分けて、後ろのドメイン部分だけ取り出してみます。</p>



<p class="wp-block-paragraph">A2セルに <code>tanaka@example.com</code> が入っているとしましょう。</p>



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



<p class="wp-block-paragraph">結果は <code>example.com</code> です。「@」より後ろの文字列だけが抽出されます。</p>



<h3 class="wp-block-heading"><span id="toc11">例2：氏名から「名前」だけを抽出する</span></h3>



<p class="wp-block-paragraph">「苗字 名前」のように半角スペース区切りの氏名から、名前だけを取り出す例です。</p>



<p class="wp-block-paragraph">A2セルに <code>田中 太郎</code> が入っているとします。</p>



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



<p class="wp-block-paragraph">結果は <code>太郎</code> です。半角スペースより後ろの「太郎」だけが返されます。</p>



<p class="wp-block-paragraph">全角スペース区切りの場合は、区切り記号も全角スペースで書きます。区切り記号は <strong>完全一致</strong> が原則です。</p>



<h3 class="wp-block-heading"><span id="toc12">例3：商品コードからサイズだけ取り出す</span></h3>



<p class="wp-block-paragraph">商品コードのような構造化された文字列にも応用できます。</p>



<p class="wp-block-paragraph">A2セルに <code>PROD-1234-LL</code> のような商品コードが入っているとしましょう。サイズ部分の <code>LL</code> だけを取り出します。</p>



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



<p class="wp-block-paragraph">結果は <code>LL</code> です。インスタンス引数に <code>-1</code> を指定すると「末尾から1番目のハイフン」が基準になります。</p>



<h3 class="wp-block-heading"><span id="toc13">例4：従来の数式との比較</span></h3>



<p class="wp-block-paragraph">TEXTAFTER関数のありがたみは、従来の数式と比べると一目瞭然です。</p>



<pre class="wp-block-code"><code>'--- TEXTAFTER関数（新しい書き方） ---
=TEXTAFTER(A2, &quot;@&quot;)

'--- 従来の書き方（RIGHT + FIND + LEN の組み合わせ） ---
=RIGHT(A2, LEN(A2) - FIND(&quot;@&quot;, A2))</code></pre>



<p class="wp-block-paragraph">どちらも結果は同じです。しかし読みやすさはTEXTAFTER関数が圧倒的です。</p>



<p class="wp-block-paragraph">しかも従来の式は「@がない場合」にエラー処理を自前で書く必要がありました。TEXTAFTER関数なら引数1つでエラー処理まで指定できます。</p>



<h2 class="wp-block-heading"><span id="toc14">TEXTAFTER関数の使い方｜複数の区切り文字を指定する</span></h2>



<p class="wp-block-paragraph">区切り文字が複数回登場する文字列では、インスタンス引数が活躍します。CSVデータやログから特定の項目を切り出す場面で重宝します。</p>



<h3 class="wp-block-heading"><span id="toc15">インスタンス引数の基本</span></h3>



<p class="wp-block-paragraph">インスタンス引数は「何番目の区切り文字を基準にするか」を整数で指定します。省略すると <code>1</code> が使われます。</p>



<p class="wp-block-paragraph">A2セルに <code>田中,太郎,male,22</code> というカンマ区切りデータが入っているとしましょう。</p>



<pre class="wp-block-code"><code>'--- 1番目のカンマより後ろ（省略時と同じ） ---
=TEXTAFTER(A2, &quot;,&quot;)
'--- 結果：太郎,male,22

'--- 2番目のカンマより後ろ ---
=TEXTAFTER(A2, &quot;,&quot;, 2)
'--- 結果：male,22

'--- 3番目のカンマより後ろ ---
=TEXTAFTER(A2, &quot;,&quot;, 3)
'--- 結果：22</code></pre>



<p class="wp-block-paragraph">インスタンスを変えるだけで、取り出す範囲がスライドしていきます。</p>



<h3 class="wp-block-heading"><span id="toc16">TEXTBEFOREと組み合わせて中間項目を切り出す</span></h3>



<p class="wp-block-paragraph">「2番目と3番目のカンマの間」のように、中間の項目だけ欲しいときがあります。その場合はTEXTAFTERとTEXTBEFOREを組み合わせます。</p>



<p class="wp-block-paragraph">先ほどの <code>田中,太郎,male,22</code> から <code>male</code> だけを取り出してみましょう。</p>



<pre class="wp-block-code"><code>'--- まず2番目のカンマより後ろを取り出す ---
'--- 結果：male,22
'--- そこから1番目のカンマより前を取り出す
=TEXTBEFORE(TEXTAFTER(A2, &quot;,&quot;, 2), &quot;,&quot;)
'--- 最終結果：male</code></pre>



<p class="wp-block-paragraph">2段階で考えるのがコツです。最初に「ここから後ろ」、次に「ここまで前」と切り出します。</p>



<p class="wp-block-paragraph">これはTEXTSPLIT関数でも実現できますが、特定の1項目だけ欲しい場合はこの組み合わせのほうがシンプルです。</p>



<h3 class="wp-block-heading"><span id="toc17">CSVデータからN番目の項目を抜き出す関数のひな型</span></h3>



<p class="wp-block-paragraph">汎用的なひな型として覚えておくと便利です。N番目の項目を取り出す式は次のようになります。</p>



<pre class="wp-block-code"><code>'--- N番目の項目を取り出す汎用パターン ---
'--- A2のカンマ区切り文字列から、3番目（指定したN番目）の項目を取り出す例
=TEXTBEFORE(TEXTAFTER(&quot;,&quot; &amp; A2, &quot;,&quot;, 3), &quot;,&quot;)</code></pre>



<p class="wp-block-paragraph">文字列の先頭に <code>","</code> を結合しているのがポイントです。これで「最初の項目」も同じロジックで扱えます。</p>



<p class="wp-block-paragraph">ただし、項目数が多い場合はTEXTSPLIT関数で配列に展開してからINDEX関数で取り出すほうが見通しが良くなります。場面で使い分けましょう。</p>



<h2 class="wp-block-heading"><span id="toc18">TEXTAFTER関数の使い方｜後ろから数えた位置で抽出する</span></h2>



<p class="wp-block-paragraph">TEXTAFTER関数の隠れた便利機能が <strong>負のインスタンス指定</strong> です。末尾から数えた区切り文字を基準にできます。</p>



<h3 class="wp-block-heading"><span id="toc19">負のインスタンスの基本</span></h3>



<p class="wp-block-paragraph">インスタンスに <code>-1</code> を指定すると「末尾から1番目」、<code>-2</code> なら「末尾から2番目」となります。</p>



<p class="wp-block-paragraph">A2セルに <code>田中,太郎,male,22</code> が入っている例で確認しましょう。</p>



<pre class="wp-block-code"><code>'--- 末尾から1番目のカンマより後ろ ---
=TEXTAFTER(A2, &quot;,&quot;, -1)
'--- 結果：22

'--- 末尾から2番目のカンマより後ろ ---
=TEXTAFTER(A2, &quot;,&quot;, -2)
'--- 結果：male,22

'--- 末尾から3番目のカンマより後ろ ---
=TEXTAFTER(A2, &quot;,&quot;, -3)
'--- 結果：太郎,male,22</code></pre>



<p class="wp-block-paragraph">データの構造が不規則で、項目数が一定でない場合に重宝します。</p>



<h3 class="wp-block-heading"><span id="toc20">ファイルパスからファイル名だけ取り出す</span></h3>



<p class="wp-block-paragraph">最も実用的なのがファイルパスの処理です。フォルダ階層が深くても、ファイル名だけをきれいに取り出せます。</p>



<p class="wp-block-paragraph">A2セルに <code>C:UserstanakaDocumentsreport.xlsx</code> が入っているとしましょう。</p>



<pre class="wp-block-code"><code>'--- 末尾の「」より後ろを取り出す ---
=TEXTAFTER(A2, &quot;&quot;, -1)
'--- 結果：report.xlsx</code></pre>



<p class="wp-block-paragraph">フォルダの階層が3層でも10層でも、結果は常に最後のファイル名になります。階層の深さを気にしなくて済むのが大きな利点です。</p>



<h3 class="wp-block-heading"><span id="toc21">URLから末尾のスラッグを取り出す</span></h3>



<p class="wp-block-paragraph">URLからページのスラッグ部分だけを抜き出すケースにも応用できます。</p>



<p class="wp-block-paragraph">A2セルに <code>https://mashukabu.com/excel-function-howto-use-textafter/</code> が入っている場合を考えます。末尾のスラッシュが邪魔ですね。</p>



<pre class="wp-block-code"><code>'--- まず末尾のスラッシュを取り除く ---
'--- その後、末尾から2番目の「/」より後ろを取り出す
=TEXTAFTER(TRIM(SUBSTITUTE(A2, &quot;/&quot;, &quot;/&quot;, LEN(A2)-LEN(SUBSTITUTE(A2, &quot;/&quot;, &quot;&quot;)))), &quot;/&quot;, -1)</code></pre>



<p class="wp-block-paragraph">少し複雑ですが、SUBSTITUTEで前処理してからTEXTAFTERに渡すパターンを覚えておくと、不規則なURLにも対応できます。</p>



<h3 class="wp-block-heading"><span id="toc22">拡張子だけを取り出す</span></h3>



<p class="wp-block-paragraph">ファイル名から拡張子だけを取り出すのもTEXTAFTERが得意です。</p>



<pre class="wp-block-code"><code>'--- ファイル名から拡張子を取り出す ---
=TEXTAFTER(A2, &quot;.&quot;, -1)
'--- 例：report.xlsx → xlsx
'--- 例：archive.tar.gz → gz（複数のドットがあっても末尾のみ）</code></pre>



<p class="wp-block-paragraph">ドットが複数あるファイル名でも、末尾の拡張子だけを正しく抽出できます。</p>



<h2 class="wp-block-heading"><span id="toc23">TEXTAFTER関数とTEXTBEFORE・TEXTSPLITとの使い分け</span></h2>



<p class="wp-block-paragraph">TEXTAFTER関数は、TEXTBEFORE関数・TEXTSPLIT関数とセットで覚えるのが効率的です。3つの関数の役割を整理しましょう。</p>



<h3 class="wp-block-heading"><span id="toc24">3つの関数の役割比較</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>TEXTBEFORE</td><td>区切り文字より前</td><td>1つの値</td><td>ユーザー名・苗字・先頭部分が欲しいとき</td></tr><tr><td>TEXTAFTER</td><td>区切り文字より後</td><td>1つの値</td><td>ドメイン・名前・末尾部分が欲しいとき</td></tr><tr><td>TEXTSPLIT</td><td>全体を分割</td><td>複数セルに展開</td><td>全項目を別々のセルに展開したいとき</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">「結果が1つ欲しい」のか「全部欲しい」のかで使い分けるのが基本です。</p>



<h3 class="wp-block-heading"><span id="toc25">TEXTBEFORE と TEXTAFTER の対比</span></h3>



<p class="wp-block-paragraph">同じ文字列に両方を使うと、ちょうど前後で切り分けられます。</p>



<p class="wp-block-paragraph">A2セルに <code>user@example.com</code> が入っているとします。</p>



<pre class="wp-block-code"><code>'--- @より前を取り出す（TEXTBEFORE） ---
=TEXTBEFORE(A2, &quot;@&quot;)
'--- 結果：user

'--- @より後を取り出す（TEXTAFTER） ---
=TEXTAFTER(A2, &quot;@&quot;)
'--- 結果：example.com</code></pre>



<p class="wp-block-paragraph">メールアドレスのリストから「ユーザー名」と「ドメイン」を別々の列に分けたいときによく使う組み合わせです。</p>



<h3 class="wp-block-heading"><span id="toc26">TEXTSPLIT が向くケース</span></h3>



<p class="wp-block-paragraph">カンマ区切りの全項目を別々のセルに展開したいときは、TEXTSPLIT関数が圧倒的に楽です。</p>



<pre class="wp-block-code"><code>'--- A2 = 「田中,太郎,male,22」を4つのセルに展開 ---
=TEXTSPLIT(A2, &quot;,&quot;)
'--- 結果：B2に「田中」、C2に「太郎」、D2に「male」、E2に「22」がスピルされる</code></pre>



<p class="wp-block-paragraph">ただし、欲しいのが「3番目の項目だけ」のように1つだけなら、TEXTAFTERとTEXTBEFOREの組み合わせのほうが行が増えなくて済みます。</p>



<h3 class="wp-block-heading"><span id="toc27">使い分けの判断フロー</span></h3>



<p class="wp-block-paragraph">迷ったときは次の順で考えると決めやすいです。</p>



<ol class="wp-block-list"><li>全項目を別々のセルに展開したい → <strong>TEXTSPLIT</strong></li><li>1つの値だけ欲しくて、それが前半部分 → <strong>TEXTBEFORE</strong></li><li>1つの値だけ欲しくて、それが後半部分 → <strong>TEXTAFTER</strong></li><li>中間の項目が欲しい → <strong>TEXTAFTER + TEXTBEFORE の組み合わせ</strong></li></ol>



<p class="wp-block-paragraph">この4パターンを押さえておけば、文字列分割の大半に対応できます。</p>



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



<p class="wp-block-paragraph">便利な関数ですが、引数の指定ミスや想定外のデータでエラーになることもあります。代表的なエラーと対処法を押さえておきましょう。</p>



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



<p class="wp-block-paragraph">TEXTAFTER関数で発生しやすいエラーをまとめました。</p>



<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>第6引数に代替値を指定する</td></tr><tr><td>#VALUE!</td><td>インスタンスに 0 を指定している</td><td>1以上または負の整数を指定する</td></tr><tr><td>#VALUE!</td><td>インスタンスの絶対値が区切り記号の出現数を超えている</td><td>データを見直すかインスタンスを調整する</td></tr><tr><td>#NAME?</td><td>関数名のスペルミス、または対応していないバージョンで使用</td><td>スペルとExcelのバージョンを確認する</td></tr><tr><td>#SPILL!</td><td>スピル先のセルが空いていない</td><td>スピル先のセルを空ける</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc30">#N/A エラー：区切り記号が見つからない</span></h3>



<p class="wp-block-paragraph">最もよく出会うのが #N/A エラーです。指定した区切り記号が文字列の中に存在しないと発生します。</p>



<pre class="wp-block-code"><code>'--- A2 に「user_example」（@が含まれない）が入っている場合 ---
=TEXTAFTER(A2, &quot;@&quot;)
'--- 結果：#N/A エラー</code></pre>



<p class="wp-block-paragraph">対処法は2つあります。</p>



<p class="wp-block-paragraph"><strong>対処法1：第6引数で代替値を指定する</strong></p>



<pre class="wp-block-code"><code>=TEXTAFTER(A2, &quot;@&quot;, , , , &quot;該当なし&quot;)
'--- @が含まれない場合は「該当なし」が表示される</code></pre>



<p class="wp-block-paragraph">カンマの数に注意してください。第3・第4・第5引数を省略する場合でも、カンマは必要です。</p>



<p class="wp-block-paragraph"><strong>対処法2：IFERROR関数で包む</strong></p>



<pre class="wp-block-code"><code>=IFERROR(TEXTAFTER(A2, &quot;@&quot;), &quot;該当なし&quot;)
'--- TEXTAFTERがエラーになったら「該当なし」を返す</code></pre>



<p class="wp-block-paragraph">IFERROR関数で包むほうが直感的で、他の関数でも使い回しやすい書き方です。</p>



<h3 class="wp-block-heading"><span id="toc31">#VALUE! エラー：インスタンスが不正</span></h3>



<p class="wp-block-paragraph">インスタンス引数に 0 を指定するとエラーになります。インスタンスは1以上の整数か、負の整数（末尾から数える）のみ有効です。</p>



<pre class="wp-block-code"><code>'--- これはエラー ---
=TEXTAFTER(A2, &quot;,&quot;, 0)
'--- 結果：#VALUE! エラー

'--- 正しくは1以上または負の整数 ---
=TEXTAFTER(A2, &quot;,&quot;, 1)   '正常
=TEXTAFTER(A2, &quot;,&quot;, -1)  '正常</code></pre>



<p class="wp-block-paragraph">「0番目」という概念がないことを意識しておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc32">#NAME? エラー：バージョン非対応</span></h3>



<p class="wp-block-paragraph">数式を入力しても #NAME? が出る場合は、Excelのバージョンが古い可能性があります。</p>



<p class="wp-block-paragraph"><code>ファイル → アカウント</code> でバージョンを確認してください。Excel 2019以前ではTEXTAFTER関数自体が使えません。</p>



<p class="wp-block-paragraph">その場合は次のような従来式に書き換える必要があります。</p>



<pre class="wp-block-code"><code>'--- TEXTAFTER関数の代替（Excel 2019以前向け） ---
=RIGHT(A2, LEN(A2) - FIND(&quot;@&quot;, A2))
'--- @以降を取り出す従来の書き方</code></pre>



<h3 class="wp-block-heading"><span id="toc33">#SPILL! エラー：配列入力の競合</span></h3>



<p class="wp-block-paragraph">複数セルに対してTEXTAFTERを使うとスピルが発生します。スピル先に既存データがあるとエラーになります。</p>



<pre class="wp-block-code"><code>=TEXTAFTER(A2:A10, &quot;@&quot;)
'--- B2 から B10 にスピルしようとするが、B5に既存データがあると #SPILL! エラー</code></pre>



<p class="wp-block-paragraph">スピル先の範囲を空けるか、対象セルを一つずつ指定する数式に書き換えましょう。</p>



<h2 class="wp-block-heading"><span id="toc34">TEXTAFTER関数のよくある質問（FAQ）</span></h2>



<p class="wp-block-paragraph">ここでは実務でよく聞かれる疑問を整理しておきます。</p>



<h3 class="wp-block-heading"><span id="toc35">Q1. TEXTAFTER関数はどのバージョンのExcelから使えますか</span></h3>



<p class="wp-block-paragraph">Excel 2021とMicrosoft 365で使えます。Excel 2019以前では使えません。</p>



<p class="wp-block-paragraph">社内で共有するファイルにTEXTAFTER関数を使う場合は、相手のExcelバージョンを必ず確認してください。Excel 2019で開くと数式部分が #NAME? エラーになり、値も表示されなくなります。</p>



<h3 class="wp-block-heading"><span id="toc36">Q2. 区切り文字に複数の候補を指定できますか</span></h3>



<p class="wp-block-paragraph">TEXTAFTER関数の区切り記号には <strong>配列</strong> も指定できます。複数の候補を渡したい場合は中括弧で囲みます。</p>



<pre class="wp-block-code"><code>'--- カンマ・セミコロン・タブのどれかで区切る ---
=TEXTAFTER(A2, {&quot;,&quot;, &quot;;&quot;, CHAR(9)})</code></pre>



<p class="wp-block-paragraph">文字列内で最初に見つかったいずれかの区切り記号で抽出します。データ提供元によって区切り文字がバラバラな場合に便利です。</p>



<h3 class="wp-block-heading"><span id="toc37">Q3. 大文字と小文字を区別したくないときはどうすればいいですか</span></h3>



<p class="wp-block-paragraph">第4引数の一致モードに <code>1</code> を指定します。</p>



<pre class="wp-block-code"><code>'--- HELLO でも hello でも同じものとして扱う ---
=TEXTAFTER(&quot;Hello World&quot;, &quot;HELLO&quot;, 1, 1)
'--- 結果： World（先頭スペースを含む）</code></pre>



<p class="wp-block-paragraph">英語のテキストやログファイルで、大文字と小文字の表記がバラバラなときに使います。</p>



<h3 class="wp-block-heading"><span id="toc38">Q4. 区切り文字自体も含めて取り出したい場合はどうしますか</span></h3>



<p class="wp-block-paragraph">TEXTAFTER関数は区切り記号より後ろの部分しか返しません。区切り記号自体も含めたい場合は、抽出後に文字列を結合します。</p>



<pre class="wp-block-code"><code>'--- 区切り記号「@」を結果の先頭に追加する ---
=&quot;@&quot; &amp; TEXTAFTER(A2, &quot;@&quot;)
'--- 結果： @example.com</code></pre>



<p class="wp-block-paragraph">ファイルパスからファイル名と拡張子だけを残し、拡張子の前のドットも残したい場合などに使います。</p>



<h3 class="wp-block-heading"><span id="toc39">Q5. RIGHT関数とTEXTAFTER関数はどう使い分けますか</span></h3>



<p class="wp-block-paragraph">RIGHT関数は「文字数指定」、TEXTAFTER関数は「区切り記号指定」と覚えると分かりやすいです。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>抽出基準</th><th>使いどころ</th></tr></thead><tbody><tr><td><a href="https://mashukabu.com/excel-function-howto-use-right/">RIGHT関数</a></td><td>末尾からN文字</td><td>取り出す文字数が決まっている</td></tr><tr><td>TEXTAFTER関数</td><td>区切り記号より後</td><td>区切り記号の位置で決まる</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">固定長データならRIGHT、可変長データならTEXTAFTERが第一候補になります。</p>



<h3 class="wp-block-heading"><span id="toc40">Q6. 区切り記号が見つからないときに元の文字列を返したい</span></h3>



<p class="wp-block-paragraph">第6引数に文字列引数自身を指定します。</p>



<pre class="wp-block-code"><code>'--- 区切り記号がなければ元の文字列を返す ---
=TEXTAFTER(A2, &quot;@&quot;, 1, 0, 0, A2)</code></pre>



<p class="wp-block-paragraph">メールアドレスのチェックで、@が含まれない不正データもそのまま表示して目視確認したい場合に使います。</p>



<h3 class="wp-block-heading"><span id="toc41">Q7. TEXTAFTER関数を使うと数式が遅くなりますか</span></h3>



<p class="wp-block-paragraph">通常の使い方であれば、TEXTAFTER関数のパフォーマンスは十分に高速です。</p>



<p class="wp-block-paragraph">ただし数万行に対してスピル形式で配列を渡すと、再計算が重くなる場合があります。シートの動作が遅いと感じたら、必要な範囲だけに数式を限定するか、一度コピーして「値の貼り付け」で静的データに変換しましょう。</p>



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



<p class="wp-block-paragraph">TEXTAFTER関数の使い方をまとめます。実務で迷ったら次のポイントを思い出してください。</p>



<ul class="wp-block-list"><li>TEXTAFTER関数は <strong>区切り記号より後ろ</strong> の文字列を1つの数式で抽出できる</li><li>必須引数は <strong>文字列</strong> と <strong>区切り記号</strong> の2つだけ</li><li><strong>インスタンス引数</strong> で「何番目の区切り記号より後ろか」を指定できる</li><li>インスタンスに <strong>負の値</strong> を指定すると末尾から数えた位置で抽出できる</li><li>区切り記号が見つからないときは <strong>第6引数</strong> または <strong>IFERROR関数</strong> で代替値を指定する</li><li>TEXTBEFORE関数と組み合わせると <strong>中間の項目</strong> だけ取り出せる</li><li>全項目を別セルに展開したいときはTEXTSPLIT関数のほうが向く</li><li>対応バージョンは <strong>Excel 2021・Microsoft 365</strong> のみ</li></ul>



<p class="wp-block-paragraph">メールアドレスのドメイン抽出・ファイル名の取り出し・氏名分割など、文字列処理の定番作業がTEXTAFTER関数なら一行で書けます。RIGHT関数とFIND関数を組み合わせた複雑な数式とはお別れして、シンプルで読みやすい数式に置き換えていきましょう。</p>



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-textbefore/">TEXTBEFORE関数の使い方｜特定の文字より前の文字列を抽出する方法</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-right/">RIGHT関数の使い方｜文字列の右側から指定文字数を抽出する</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-find/">FIND関数の使い方｜文字列の中から特定の文字位置を検索する</a></li><li><a href="https://mashukabu.com/excel-function-alphabetical-order/">Excel関数一覧（アルファベット順）｜全関数を名前から検索できる辞書</a></li><li><a href="https://mashukabu.com/excel-function-list-by-function/">Excel関数一覧【機能別】やりたいことから引ける逆引きリファレンス</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-textafter/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのTEXTBEFORE関数の使い方｜特定の文字より前の文字列を抽出する</title>
		<link>https://mashukabu.com/excel-function-howto-use-textbefore/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-textbefore/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Fri, 23 Dec 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[TEXTBEFORE]]></category>
		<category><![CDATA[テキスト抽出]]></category>
		<category><![CDATA[文字列]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2585</guid>

					<description><![CDATA[ExcelのTEXTBEFORE関数で区切り文字より前の文字列を取り出す方法を解説。インスタンス指定・後ろから数える・エラー処理・TEXTAFTER/TEXTSPLITとの使い分けまで、実務で使えるコピペ数式つきで紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「メールアドレスから @ より前のユーザー名だけを取り出したい」「フルネームの苗字部分だけを抜き出したい」――こうした文字列操作の場面で、従来は LEFT 関数と FIND 関数を組み合わせる必要がありました。</p>



<p class="wp-block-paragraph">数式を1つ書くたびに区切り文字の位置を計算する手間が発生し、可読性も落ちます。文字列が複雑になるほど数式は長くなり、メンテナンスのたびに頭を悩ませることになります。</p>



<p class="wp-block-paragraph">そこで活躍するのが <strong>TEXTBEFORE関数</strong> です。指定した区切り文字よりも前の文字列を、わずか1つの数式で取り出せます。この記事では、TEXTBEFORE関数の基本から実務応用まで、コピペで使える数式とともに解説します。対応バージョンは Excel 2021 と Microsoft 365 です。</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のTEXTBEFORE関数とは？読み方と何ができるか</a><ol><li><a href="#toc2" tabindex="0">読み方と語源</a></li><li><a href="#toc3" tabindex="0">TEXTBEFORE関数でできること</a></li><li><a href="#toc4" tabindex="0">対応バージョン</a></li></ol></li><li><a href="#toc5" tabindex="0">TEXTBEFORE関数の書式と引数の渡し方</a><ol><li><a href="#toc6" tabindex="0">基本構文</a></li><li><a href="#toc7" tabindex="0">引数の詳細解説</a></li><li><a href="#toc8" tabindex="0">引数を渡す順番のコツ</a></li></ol></li><li><a href="#toc9" tabindex="0">TEXTBEFORE関数の使い方①｜基本的な前文字列の抽出</a><ol><li><a href="#toc10" tabindex="0">例1：メールアドレスからユーザー名を抽出する</a></li><li><a href="#toc11" tabindex="0">例2：フルネームから苗字を抽出する</a></li><li><a href="#toc12" tabindex="0">例3：商品コードから種別記号を抽出する</a></li><li><a href="#toc13" tabindex="0">例4：URLからパス部分を取得する</a></li></ol></li><li><a href="#toc14" tabindex="0">TEXTBEFORE関数の使い方②｜インスタンス指定・後ろから数える</a><ol><li><a href="#toc15" tabindex="0">複数の区切り文字がある場合のインスタンス指定</a></li><li><a href="#toc16" tabindex="0">負の値で末尾から数える</a></li><li><a href="#toc17" tabindex="0">末尾から数える実用例：拡張子を除いたファイル名を取得</a></li><li><a href="#toc18" tabindex="0">一致モードで大文字・小文字を無視する</a></li></ol></li><li><a href="#toc19" tabindex="0">TEXTBEFORE関数の使い方③｜エラー処理と「見つからない場合」の引数</a><ol><li><a href="#toc20" tabindex="0">「見つからない場合」引数で代替値を返す</a></li><li><a href="#toc21" tabindex="0">IFERROR より「見つからない場合」を使うべき理由</a></li><li><a href="#toc22" tabindex="0">末尾から検索する検索方法引数</a></li></ol></li><li><a href="#toc23" tabindex="0">TEXTBEFORE関数の応用｜実務での活用例（メール・パス・氏名分割）</a><ol><li><a href="#toc24" tabindex="0">活用例1：メールアドレスのユーザー名一覧を作る</a></li><li><a href="#toc25" tabindex="0">活用例2：氏名から苗字・名前を分割する</a></li><li><a href="#toc26" tabindex="0">活用例3：ファイルパスからフォルダ部分を抽出する</a></li><li><a href="#toc27" tabindex="0">活用例4：URLからホスト名（ドメイン）を抽出する</a></li><li><a href="#toc28" tabindex="0">活用例5：商品コードから種別＋年式を取り出す</a></li><li><a href="#toc29" tabindex="0">活用例6：日付文字列から年月を抽出する</a></li><li><a href="#toc30" tabindex="0">活用例7：CSVのN列目までを取り出す</a></li></ol></li><li><a href="#toc31" tabindex="0">TEXTBEFORE・TEXTAFTER・TEXTSPLITの使い分け</a><ol><li><a href="#toc32" tabindex="0">3関数の比較表</a></li><li><a href="#toc33" tabindex="0">同じ文字列を両方向から処理する例</a></li><li><a href="#toc34" tabindex="0">旧関数との対応表</a></li></ol></li><li><a href="#toc35" tabindex="0">TEXTBEFORE関数でよくあるエラーと対処法</a><ol><li><a href="#toc36" tabindex="0">エラー一覧と原因</a></li><li><a href="#toc37" tabindex="0">#N/A エラーの典型例と対処</a></li><li><a href="#toc38" tabindex="0">#VALUE! エラーの注意点</a></li><li><a href="#toc39" tabindex="0">全角・半角の区別に注意</a></li></ol></li><li><a href="#toc40" tabindex="0">ExcelのTEXTBEFORE関数 よくある質問（FAQ）</a><ol><li><a href="#toc41" tabindex="0">Q1. TEXTBEFORE関数は Excel 2019 や Excel 2016 でも使えますか？</a></li><li><a href="#toc42" tabindex="0">Q2. 区切り文字に複数の候補（例：カンマかセミコロン）を指定できますか？</a></li><li><a href="#toc43" tabindex="0">Q3. TEXTBEFORE と LEFT 関数の違いは何ですか？</a></li><li><a href="#toc44" tabindex="0">Q4. インスタンスに負の値を指定する意味は何ですか？</a></li><li><a href="#toc45" tabindex="0">Q5. 区切り文字が見つからない場合に元の文字列をそのまま返す方法はありますか？</a></li><li><a href="#toc46" tabindex="0">Q6. スピル（動的配列）で範囲指定して一括処理できますか？</a></li></ol></li><li><a href="#toc47" tabindex="0">まとめ</a><ol><li><a href="#toc48" tabindex="0">関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ExcelのTEXTBEFORE関数とは？読み方と何ができるか</span></h2>



<p class="wp-block-paragraph">TEXTBEFORE関数は、Excel 2021 および Microsoft 365 で追加された文字列操作関数です。指定した区切り文字より前の部分を、シンプルな1行の数式で抽出できます。</p>



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



<p class="wp-block-paragraph">「テキスト ビフォア」と読みます。英単語の <strong>TEXT（テキスト）＋ BEFORE（〜より前）</strong> が語源です。まさに「指定した文字よりも前のテキスト部分を取り出す」関数です。</p>



<p class="wp-block-paragraph">姉妹関数として TEXTAFTER 関数（「テキスト アフター」、区切り文字より後ろを抽出）と TEXTSPLIT 関数（「テキスト スプリット」、複数セルに分割展開）があります。3つセットで覚えると文字列操作の幅が広がります。</p>



<h3 class="wp-block-heading"><span id="toc3">TEXTBEFORE関数でできること</span></h3>



<p class="wp-block-paragraph">TEXTBEFORE関数を使うと、次のような処理が1つの数式で完結します。</p>



<ul class="wp-block-list"><li>メールアドレスの「@」より前のユーザー名を取り出す</li><li>「苗字 名前」形式のフルネームから苗字だけを抽出する</li><li>ファイルパスの最後の「」より前のフォルダパスを取り出す</li><li>区切り文字が複数ある場合に「N番目より前」を柔軟に指定する</li><li>区切り文字が見つからない場合のエラー処理を引数で指定する</li></ul>



<p class="wp-block-paragraph">LEFT 関数と FIND 関数の組み合わせで書いていた長い数式が、TEXTBEFORE 一本でスッキリ書き換えられます。これが最大の魅力です。</p>



<h3 class="wp-block-heading"><span id="toc4">対応バージョン</span></h3>



<p class="wp-block-paragraph">TEXTBEFORE関数が使えるのは以下の環境です。</p>



<figure class="wp-block-table"><table><thead><tr><th>環境</th><th>対応可否</th></tr></thead><tbody><tr><td>Microsoft 365（Windows / Mac / Web）</td><td>利用可能</td></tr><tr><td>Excel 2021</td><td>利用可能</td></tr><tr><td>Excel 2019 以前（2016 / 2013 など）</td><td>利用不可</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Excel 2019 以前では <code>#NAME?</code> エラーになります。組織内で共有するファイルでは、利用環境を確認しておきましょう。</p>



<h2 class="wp-block-heading"><span id="toc5">TEXTBEFORE関数の書式と引数の渡し方</span></h2>



<p class="wp-block-paragraph">TEXTBEFORE関数は引数が多めですが、必須は2つだけです。残りはオプションなので、基本的な使い方ではあまり意識する必要はありません。</p>



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



<pre class="wp-block-code"><code>=TEXTBEFORE(文字列, 区切り記号, [インスタンス], [一致モード], [検索方法], [見つからない場合])</code></pre>



<p class="wp-block-paragraph">最小構成では次のようにシンプルに書けます。</p>



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



<h3 class="wp-block-heading"><span id="toc7">引数の詳細解説</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>文字列</td><td>必須</td><td>抽出対象となる文字列、またはセル参照</td><td>—</td></tr><tr><td>区切り記号</td><td>必須</td><td>この文字よりも「前」を抽出する目印となる文字</td><td>—</td></tr><tr><td>インスタンス</td><td>任意</td><td>区切り記号が複数ある場合に何番目を基準にするか</td><td>1</td></tr><tr><td>一致モード</td><td>任意</td><td>大文字・小文字を区別するか（0=区別する／1=区別しない）</td><td>0</td></tr><tr><td>検索方法</td><td>任意</td><td>末尾から検索するか（0=先頭から／1=末尾から）</td><td>0</td></tr><tr><td>見つからない場合</td><td>任意</td><td>区切り記号がない場合に返す値</td><td>#N/A</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">覚えておきたいのは、<strong>インスタンスに負の値を指定すると末尾から数える</strong> という挙動です。例えば <code>-1</code> なら「末尾から1番目の区切り記号より前」を意味します。</p>



<h3 class="wp-block-heading"><span id="toc8">引数を渡す順番のコツ</span></h3>



<p class="wp-block-paragraph">任意の引数は左から順に指定する必要があります。途中をスキップしたい場合は、間の引数も明示的に既定値で書いておきます。</p>



<pre class="wp-block-code"><code>=TEXTBEFORE(A1, &quot;@&quot;, 1, 0, 0, &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">「見つからない場合」だけを指定したい場合でも、インスタンス・一致モード・検索方法をそれぞれ既定値で埋めてから渡します。</p>



<h2 class="wp-block-heading"><span id="toc9">TEXTBEFORE関数の使い方①｜基本的な前文字列の抽出</span></h2>



<p class="wp-block-paragraph">最もシンプルな使い方から始めましょう。区切り文字を1つ指定するだけで、その手前までの文字列が返ってきます。</p>



<h3 class="wp-block-heading"><span id="toc10">例1：メールアドレスからユーザー名を抽出する</span></h3>



<p class="wp-block-paragraph">A1セルに <code>tanaka@example.com</code> というメールアドレスがあるとします。</p>



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



<p class="wp-block-paragraph">結果は <code>tanaka</code> です。「@」より前のユーザー名部分だけがシンプルに取り出せます。</p>



<p class="wp-block-paragraph">従来は <code>=LEFT(A1, FIND("@", A1) - 1)</code> のように書く必要がありました。TEXTBEFORE のほうが意図が明確で、数式の読み手にも親切です。LEFT 関数の使い方は <a href="https://mashukabu.com/excel-function-howto-use-left/">ExcelのLEFT関数の使い方</a> も参考にしてください。</p>



<h3 class="wp-block-heading"><span id="toc11">例2：フルネームから苗字を抽出する</span></h3>



<p class="wp-block-paragraph">A1セルに <code>田中 太郎</code>（半角スペース区切り）が入っているケースです。</p>



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



<p class="wp-block-paragraph">結果は <code>田中</code> となり、苗字だけがきれいに取り出せます。全角スペース区切りの場合は、第2引数を <code>"　"</code>（全角スペース）に置き換えて使います。</p>



<h3 class="wp-block-heading"><span id="toc12">例3：商品コードから種別記号を抽出する</span></h3>



<p class="wp-block-paragraph">商品コード <code>ABC-001-JP</code> から先頭の種別記号 <code>ABC</code> だけを取り出します。</p>



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



<p class="wp-block-paragraph">結果は <code>ABC</code> です。複数のハイフンがあっても、デフォルトでは最初に見つかったハイフンを基準に動作します。</p>



<h3 class="wp-block-heading"><span id="toc13">例4：URLからパス部分を取得する</span></h3>



<p class="wp-block-paragraph"><code>https://mashukabu.com/excel-function-howto-use-textbefore/</code> のような長いURLから、ドメインまでの部分を取り出したい場合です。</p>



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



<p class="wp-block-paragraph">「3番目の <code>/</code> より前」を指定することで、<code>https://mashukabu.com</code> が取り出せます。URLの構造（<code>https://</code> のスラッシュ2つ＋ホスト名後のスラッシュ）を考えると、3番目を指定するのが自然です。</p>



<h2 class="wp-block-heading"><span id="toc14">TEXTBEFORE関数の使い方②｜インスタンス指定・後ろから数える</span></h2>



<p class="wp-block-paragraph">区切り記号が文字列内に複数登場する場合、第3引数 <strong>インスタンス</strong> で「何番目を基準にするか」を細かく制御できます。これが TEXTBEFORE の真価を発揮する場面です。</p>



<h3 class="wp-block-heading"><span id="toc15">複数の区切り文字がある場合のインスタンス指定</span></h3>



<p class="wp-block-paragraph">A1セルに <code>田中,太郎,male,22</code> というCSV形式のデータがあるとします。</p>



<pre class="wp-block-code"><code>=TEXTBEFORE(A1, &quot;,&quot;)      → &quot;田中&quot;（既定：1番目のカンマより前）
=TEXTBEFORE(A1, &quot;,&quot;, 2)   → &quot;田中,太郎&quot;（2番目のカンマより前）
=TEXTBEFORE(A1, &quot;,&quot;, 3)   → &quot;田中,太郎,male&quot;（3番目のカンマより前）</code></pre>



<p class="wp-block-paragraph">インスタンス番号を変えるだけで、抽出する範囲を柔軟に切り替えられます。</p>



<h3 class="wp-block-heading"><span id="toc16">負の値で末尾から数える</span></h3>



<p class="wp-block-paragraph">インスタンスに <strong>負の値</strong> を指定すると、文字列の末尾から数えた位置になります。</p>



<pre class="wp-block-code"><code>=TEXTBEFORE(A1, &quot;,&quot;, -1)  → &quot;田中,太郎,male&quot;（末尾から1番目のカンマより前）
=TEXTBEFORE(A1, &quot;,&quot;, -2)  → &quot;田中,太郎&quot;（末尾から2番目のカンマより前）</code></pre>



<p class="wp-block-paragraph">「最後の区切り文字以降を捨てたい」というケースで重宝します。例えばファイル名から拡張子を取り除く場合に有効です。</p>



<h3 class="wp-block-heading"><span id="toc17">末尾から数える実用例：拡張子を除いたファイル名を取得</span></h3>



<p class="wp-block-paragraph">A1セルに <code>report.final.xlsx</code> というファイル名があるとします。ピリオドが複数含まれていても、末尾の拡張子だけを除去できます。</p>



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



<p class="wp-block-paragraph">結果は <code>report.final</code> です。<code>=TEXTBEFORE(A1, ".")</code> だと最初のピリオドで切れて <code>report</code> になります。拡張子を除く目的では <code>-1</code> 指定が正解です。</p>



<h3 class="wp-block-heading"><span id="toc18">一致モードで大文字・小文字を無視する</span></h3>



<p class="wp-block-paragraph">第4引数 <strong>一致モード</strong> に <code>1</code> を指定すると、英字の大文字・小文字を区別しません。</p>



<pre class="wp-block-code"><code>=TEXTBEFORE(&quot;Hello World&quot;, &quot;world&quot;, 1, 1)</code></pre>



<p class="wp-block-paragraph"><code>world</code>（小文字）を指定していますが、一致モード <code>1</code> のおかげで <code>World</code>（大文字始まり）にもマッチします。結果は <code>Hello </code>（末尾に半角スペースあり）が返ります。英語データでケース揺れがあるときに安定して動作させたい場面で使えます。</p>



<h2 class="wp-block-heading"><span id="toc19">TEXTBEFORE関数の使い方③｜エラー処理と「見つからない場合」の引数</span></h2>



<p class="wp-block-paragraph">データの中に区切り記号が含まれない行が混じっていると、TEXTBEFOREはデフォルトで <code>#N/A</code> エラーを返します。実務ではエラー表示のままだと見栄えが悪いため、第6引数で別の値に差し替えるのが定石です。</p>



<h3 class="wp-block-heading"><span id="toc20">「見つからない場合」引数で代替値を返す</span></h3>



<p class="wp-block-paragraph">A1〜A5 にメールアドレスが入っているデータの中に、空白や <code>unknown</code> のような不正値が混ざっているケースを想定します。</p>



<pre class="wp-block-code"><code>=TEXTBEFORE(A1, &quot;@&quot;, 1, 0, 0, &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">「@」を含まないセルでは <code>該当なし</code> と表示されます。<code>#N/A</code> のエラー羅列を避けられます。</p>



<h3 class="wp-block-heading"><span id="toc21">IFERROR より「見つからない場合」を使うべき理由</span></h3>



<p class="wp-block-paragraph">従来は次のように <code>IFERROR</code> で囲んでエラーを処理していました。</p>



<pre class="wp-block-code"><code>=IFERROR(TEXTBEFORE(A1, &quot;@&quot;), &quot;該当なし&quot;)</code></pre>



<p class="wp-block-paragraph">これでも動作はしますが、次のデメリットがあります。</p>



<ul class="wp-block-list"><li>数式が長くなり可読性が下がる</li><li>TEXTBEFORE が返す他のエラー（<code>#VALUE!</code> など）まで一律に握りつぶしてしまう</li><li>数式評価が二重になりわずかにパフォーマンスが落ちる</li></ul>



<p class="wp-block-paragraph">第6引数の「見つからない場合」を使えば、<strong>「区切り記号が見つからないとき限定」</strong> の処理になります。意図が明確で安全です。</p>



<h3 class="wp-block-heading"><span id="toc22">末尾から検索する検索方法引数</span></h3>



<p class="wp-block-paragraph">第5引数 <strong>検索方法</strong> に <code>1</code> を指定すると、区切り記号を末尾から探します。</p>



<pre class="wp-block-code"><code>=TEXTBEFORE(&quot;a-b-c-d&quot;, &quot;-&quot;, 1, 0, 1)</code></pre>



<p class="wp-block-paragraph">末尾から最初に見つかったハイフン（c と d の間）より前、つまり <code>a-b-c</code> が返ります。インスタンスを <code>-1</code> にする方法でも同じ結果が得られます。こちらの書き方も覚えておくと選択肢が広がります。</p>



<h2 class="wp-block-heading"><span id="toc23">TEXTBEFORE関数の応用｜実務での活用例（メール・パス・氏名分割）</span></h2>



<p class="wp-block-paragraph">ここからは、実務で遭遇しやすい7つのシーンを、コピペで動く数式とともに紹介します。</p>



<h3 class="wp-block-heading"><span id="toc24">活用例1：メールアドレスのユーザー名一覧を作る</span></h3>



<p class="wp-block-paragraph">社内メールリスト（A列）から、ユーザー名だけを抽出する一括処理です。</p>



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



<p class="wp-block-paragraph">数式を下方向にコピーするだけで、全アドレスのユーザー名が並びます。Microsoft 365 環境であれば、<code>=TEXTBEFORE(A2:A100, "@")</code> のように範囲指定でスピル（自動展開）させることもできます。</p>



<h3 class="wp-block-heading"><span id="toc25">活用例2：氏名から苗字・名前を分割する</span></h3>



<p class="wp-block-paragraph">A1セルに <code>田中 太郎</code>、隣のB1に名前を出したい場合の組み合わせです。</p>



<pre class="wp-block-code"><code>B1: =TEXTBEFORE(A1, &quot; &quot;)    → &quot;田中&quot;
C1: =TEXTAFTER(A1, &quot; &quot;)     → &quot;太郎&quot;</code></pre>



<p class="wp-block-paragraph">TEXTAFTER と組み合わせると、2つの数式でフルネームの分割が完了します。詳しくは <a href="https://mashukabu.com/excel-function-howto-use-textafter/">ExcelのTEXTAFTER関数の使い方</a> を参照してください。</p>



<h3 class="wp-block-heading"><span id="toc26">活用例3：ファイルパスからフォルダ部分を抽出する</span></h3>



<p class="wp-block-paragraph">A1セルに <code>C:UserstanakaDocumentsreport.xlsx</code> のようなフルパスがある場合です。</p>



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



<p class="wp-block-paragraph">結果は <code>C:UserstanakaDocuments</code> です。ファイル名を除いたフォルダパスを取り出せます。別のシステムにフォルダ情報だけ渡したいときに便利です。</p>



<h3 class="wp-block-heading"><span id="toc27">活用例4：URLからホスト名（ドメイン）を抽出する</span></h3>



<p class="wp-block-paragraph">A1セルに <code>https://mashukabu.com/excel-function-howto-use-textbefore/</code> がある場合です。</p>



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



<p class="wp-block-paragraph">TEXTAFTER で <code>//</code> の後ろを取り出し、その結果から TEXTBEFORE で <code>/</code> の前を抽出します。結果は <code>mashukabu.com</code> になり、ホスト名だけがきれいに取れます。</p>



<h3 class="wp-block-heading"><span id="toc28">活用例5：商品コードから種別＋年式を取り出す</span></h3>



<p class="wp-block-paragraph">A1セルに <code>ABC-2024-001-JP</code> のような複合コードがある場合です。</p>



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



<p class="wp-block-paragraph">結果は <code>ABC-2024</code> です。2番目のハイフンより前を指定することで、種別と年式だけを取り出せます。</p>



<h3 class="wp-block-heading"><span id="toc29">活用例6：日付文字列から年月を抽出する</span></h3>



<p class="wp-block-paragraph">A1セルに <code>2026-05-17</code> の形式で日付文字列が入っている場合です。</p>



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



<p class="wp-block-paragraph">結果は <code>2026-05</code> です。年月集計のキーとして使う場合に重宝します。</p>



<h3 class="wp-block-heading"><span id="toc30">活用例7：CSVのN列目までを取り出す</span></h3>



<p class="wp-block-paragraph">A1セルに <code>田中,太郎,営業部,東京,03-1234-5678</code> のようなCSVデータがある場合です。</p>



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



<p class="wp-block-paragraph">結果は <code>田中,太郎,営業部</code> です。先頭3列分だけを残して、残りを切り捨てる用途に使えます。</p>



<h2 class="wp-block-heading"><span id="toc31">TEXTBEFORE・TEXTAFTER・TEXTSPLITの使い分け</span></h2>



<p class="wp-block-paragraph">文字列抽出系の新関数3つの使い分けを整理しておきます。それぞれ得意分野が違うので、シーンに応じて選択しましょう。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>抽出方向</th><th>返り値の形</th><th>使いどころ</th></tr></thead><tbody><tr><td>TEXTBEFORE</td><td>区切り文字より前</td><td>単一の文字列</td><td>苗字・ユーザー名・先頭部分を取り出す</td></tr><tr><td>TEXTAFTER</td><td>区切り文字より後ろ</td><td>単一の文字列</td><td>ドメイン・名前・末尾部分を取り出す</td></tr><tr><td>TEXTSPLIT</td><td>区切り文字で分割</td><td>配列（複数セルに展開）</td><td>全要素を一気に列または行に展開する</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc33">同じ文字列を両方向から処理する例</span></h3>



<p class="wp-block-paragraph">A1セルに <code>user@example.com</code> がある場合です。</p>



<pre class="wp-block-code"><code>=TEXTBEFORE(A1, &quot;@&quot;)   → &quot;user&quot;（@より前）
=TEXTAFTER(A1, &quot;@&quot;)    → &quot;example.com&quot;（@より後）
=TEXTSPLIT(A1, &quot;@&quot;)    → &quot;user&quot;, &quot;example.com&quot;（B1とC1にスピル）</code></pre>



<p class="wp-block-paragraph">「片方だけ取り出したい」なら TEXTBEFORE / TEXTAFTER、「両方とも別セルで一気に取り出したい」なら TEXTSPLIT が最短です。</p>



<h3 class="wp-block-heading"><span id="toc34">旧関数との対応表</span></h3>



<p class="wp-block-paragraph">LEFT・MID・RIGHT・FIND・SEARCH などの旧関数との対応も押さえておきましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>やりたいこと</th><th>旧関数の組み合わせ</th><th>新関数</th></tr></thead><tbody><tr><td>区切り文字より前を取り出す</td><td><code>LEFT(A1, FIND("@", A1) - 1)</code></td><td><code>TEXTBEFORE(A1, "@")</code></td></tr><tr><td>区切り文字より後ろを取り出す</td><td><code>MID(A1, FIND("@", A1) + 1, LEN(A1))</code></td><td><code>TEXTAFTER(A1, "@")</code></td></tr><tr><td>区切り文字で全部分割</td><td><code>LEFT</code> と <code>MID</code> のネスト</td><td><code>TEXTSPLIT(A1, "@")</code></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">旧関数は Excel 全バージョンで使えますが、新関数のほうが圧倒的に短くて読みやすいです。FIND 関数の詳細は <a href="https://mashukabu.com/excel-function-howto-use-find/">ExcelのFIND関数の使い方</a> を、LEFT 関数の詳細は <a href="https://mashukabu.com/excel-function-howto-use-left/">ExcelのLEFT関数の使い方</a> を合わせて確認してください。</p>



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



<p class="wp-block-paragraph">実務で TEXTBEFORE を使っていると、いくつかのエラーや想定外の結果に出会うことがあります。代表的なケースと対処法をまとめました。</p>



<h3 class="wp-block-heading"><span id="toc36">エラー一覧と原因</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>主な原因</th><th>対処法</th></tr></thead><tbody><tr><td><code>#N/A</code></td><td>区切り記号が文字列内に存在しない</td><td>第6引数に代替値を指定、または第5引数で末尾検索</td></tr><tr><td><code>#VALUE!</code></td><td>インスタンスに 0 を指定している</td><td>インスタンスは 1 以上、または負の整数で指定する</td></tr><tr><td><code>#VALUE!</code></td><td>文字列引数が空、または不正な配列</td><td>セル参照範囲とデータ型を確認する</td></tr><tr><td><code>#NAME?</code></td><td>Excel 2019 以前で使用している</td><td>Microsoft 365 または Excel 2021 に更新する</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc37">#N/A エラーの典型例と対処</span></h3>



<p class="wp-block-paragraph">A1セルに <code>tanaka_example.com</code>（@ なし）がある場合に <code>=TEXTBEFORE(A1, "@")</code> を実行すると <code>#N/A</code> が返ります。</p>



<p class="wp-block-paragraph">対処法は2つあります。</p>



<pre class="wp-block-code"><code>=TEXTBEFORE(A1, &quot;@&quot;, 1, 0, 0, &quot;@なし&quot;)</code></pre>



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



<p class="wp-block-paragraph">第6引数を使うほうが意図が明確なので、優先して採用してください。</p>



<h3 class="wp-block-heading"><span id="toc38">#VALUE! エラーの注意点</span></h3>



<p class="wp-block-paragraph">インスタンスを <code>0</code> にすると <code>#VALUE!</code> になります。「すべての区切り文字を対象にしたい」つもりで <code>0</code> を指定してしまう誤りが多いので注意しましょう。</p>



<pre class="wp-block-code"><code>=TEXTBEFORE(A1, &quot;,&quot;, 0)  → #VALUE!
=TEXTBEFORE(A1, &quot;,&quot;, 1)  → 正常（1番目のカンマより前）</code></pre>



<h3 class="wp-block-heading"><span id="toc39">全角・半角の区別に注意</span></h3>



<p class="wp-block-paragraph">TEXTBEFORE は <strong>全角と半角を完全に区別</strong> します。同じ「スペース」でも全角と半角は別物として扱われます。データのスペース種別を必ず確認しましょう。</p>



<pre class="wp-block-code"><code>=TEXTBEFORE(A1, &quot; &quot;)   → &quot;田中&quot;（半角スペースで区切られた &quot;田中 太郎&quot; の場合）
=TEXTBEFORE(A1, &quot; &quot;)   → #N/A（全角スペースで区切られた &quot;田中　太郎&quot; に半角スペースを指定した場合）</code></pre>



<p class="wp-block-paragraph">データのクレンジングが必要な場合は、事前に SUBSTITUTE 関数で全角スペースを半角に統一しておくと安全です。</p>



<h2 class="wp-block-heading"><span id="toc40">ExcelのTEXTBEFORE関数 よくある質問（FAQ）</span></h2>



<h3 class="wp-block-heading"><span id="toc41">Q1. TEXTBEFORE関数は Excel 2019 や Excel 2016 でも使えますか？</span></h3>



<p class="wp-block-paragraph">使えません。TEXTBEFORE関数は <strong>Excel 2021 と Microsoft 365</strong> で利用可能です。Excel 2019 以前のバージョンで実行すると <code>#NAME?</code> エラーが返ります。旧バージョンを使う環境では、<code>LEFT(A1, FIND("@", A1) - 1)</code> のように LEFT と FIND を組み合わせる従来の数式で代用してください。</p>



<h3 class="wp-block-heading"><span id="toc42">Q2. 区切り文字に複数の候補（例：カンマかセミコロン）を指定できますか？</span></h3>



<p class="wp-block-paragraph">第2引数に配列定数 <code>{",",";"}</code> を渡すことで、複数の区切り記号を同時指定できます。<code>=TEXTBEFORE(A1, {",",";"})</code> と書くと、カンマかセミコロンのどちらか先に見つかったほうを区切りとして使います。CSV と TSV が混在するデータの整形に便利です。</p>



<h3 class="wp-block-heading"><span id="toc43">Q3. TEXTBEFORE と LEFT 関数の違いは何ですか？</span></h3>



<p class="wp-block-paragraph">LEFT 関数は「先頭から指定文字数」を取り出します。TEXTBEFORE は「指定した区切り文字より前」を取り出します。LEFT は文字数を数値で渡す必要があるため、区切り文字の位置を FIND で計算する手間が生じます。区切り文字をキーに抽出したい場合は TEXTBEFORE のほうが短く、可読性も高いです。</p>



<h3 class="wp-block-heading"><span id="toc44">Q4. インスタンスに負の値を指定する意味は何ですか？</span></h3>



<p class="wp-block-paragraph">文字列の <strong>末尾から数えた区切り文字の位置</strong> を指定する意味です。例えば <code>=TEXTBEFORE(A1, "", -1)</code> とすると、最後の <code></code> より前の部分が取れます。これはファイルパスからファイル名を除いたフォルダパスに相当します。複数の区切り文字を含む文字列で「最後の区切り以前を取りたい」シーンで重宝します。</p>



<h3 class="wp-block-heading"><span id="toc45">Q5. 区切り文字が見つからない場合に元の文字列をそのまま返す方法はありますか？</span></h3>



<p class="wp-block-paragraph">第6引数の「見つからない場合」に元のセル参照を渡せば実現できます。</p>



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



<p class="wp-block-paragraph">「@」が含まれない場合は A1 の値そのまま、含まれる場合は @ より前を返します。データの中に対象外の行が混じっていても、エラーを出さずに処理を続けたい場合に有効です。</p>



<h3 class="wp-block-heading"><span id="toc46">Q6. スピル（動的配列）で範囲指定して一括処理できますか？</span></h3>



<p class="wp-block-paragraph">可能です。Microsoft 365 環境であれば次のように書けます。</p>



<pre class="wp-block-code"><code>=TEXTBEFORE(A2:A100, &quot;@&quot;)</code></pre>



<p class="wp-block-paragraph">A2 から A100 までの全アドレスについて、それぞれユーザー名が縦方向にスピルされます。1行ずつ数式を貼る必要がなく、列全体の処理が一発で終わります。</p>



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



<p class="wp-block-paragraph">ExcelのTEXTBEFORE関数について、基本から実務応用までを解説しました。要点を振り返ります。</p>



<ul class="wp-block-list"><li>TEXTBEFORE関数は <strong>指定した区切り文字より前</strong> の文字列を1つの数式で抽出できる</li><li>必須引数は <strong>文字列・区切り記号</strong> の2つだけで、最小構成なら <code>=TEXTBEFORE(A1, "@")</code> の形</li><li><strong>インスタンス引数</strong> で「N番目の区切り文字」を指定でき、負の値なら末尾から数える</li><li>第6引数の <strong>「見つからない場合」</strong> でエラー表示を制御でき、IFERROR より意図が明確</li><li>TEXTAFTER・TEXTSPLIT とセットで覚えると、文字列操作の幅が一気に広がる</li><li>対応バージョンは <strong>Excel 2021 / Microsoft 365 限定</strong>、旧バージョンでは <code>#NAME?</code> になる</li></ul>



<p class="wp-block-paragraph">LEFT 関数と FIND 関数のネストで書いていた数式を、TEXTBEFORE 一本に書き換えるだけでファイルの可読性が大きく改善します。まずはメールアドレスや氏名分割のような身近な例で試して、すぐに業務へ取り入れてみてください。</p>



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-textafter/">ExcelのTEXTAFTER関数の使い方｜特定の文字から後ろの文字列を抽出する</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-textsplit/">ExcelのTEXTSPLIT関数の使い方｜テキストを区切り文字で分割して複数セルに展開する</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-left/">ExcelのLEFT関数の使い方｜文字列の左から指定文字数を抽出する</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-find/">ExcelのFIND関数の使い方｜文字列の中から特定の文字位置を検索する</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-textbefore/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
