<?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>TEXTBEFORE &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/textbefore/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>TEXTBEFORE &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<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-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">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>
