Excel 2024

文字列の抜き出しや分割が驚くほど簡単になる3つの新関数

投稿日 2026年2月5日   更新日 

Excel 2024とMicrosoft 365のExcelでは、[TEXTBEFORE][TEXTAFTER][TEXTSPLIT]関数が使用できます。

これらの関数を使うと、入力済みの文字列から必要な部分だけを抜き出したり、スペースや区切り文字で分割したりといった操作が、とても簡単にできます。

従来の関数を組み合わせたり、フラッシュフィルを使っても同じことはできますが、今回紹介する新関数は操作が分かりやすく、初心者の方にも扱いやすいのが特徴です。

TEXTSPLIT関数で文字列を分割した表

TEXTBEFORE・TEXTAFTER・TEXTSPLIT関数とは

Excelで文字列を抜き出したり、分割したい場合は多くあります。

例えば、姓名が1つのセルに入力されているようなケースです。

姓名が1つのセルに入力されている表

このようにスペースなどで区切られている場合は、Excelの標準機能である区切り位置ウィザードやフラッシュフィルを使って抜き出したり、分割できます。

関数が苦手な方にとっては、有力な方法です。

氏名を姓と名に分割できる[区切り位置指定ウィザード]の使い方

Excelで氏名セルを姓と名の別々のセルに分けるという作業をしなければならないことがあります。 以下に2つの表があります。 上の表の[氏名] ...

フラッシュフィル(文字列の結合や抜き出しをワンクリックで)

フラッシュフィルとは、Excelが入力されたデータから規則性を自動的に認識して実行してくれる機能です。Excel 2013の新機能です。 こ ...

また、サイト内では、LEFT(レフト)関数やSEARCHA(サーチエー)関数などを使って分割する方法を解説しています。

関数を使って氏名の列を[姓]と[名]に分割してふりがなを表示

Excelで氏名の列を姓と名の列に分割したい場合がありますね。 区切り位置指定ウィザードを使用して分割する方法は、以下の記事で解説しています ...

SUBSTITUTE(サブスティチュート)関数も紹介しています。文字列中の指定した文字を新しい文字で置き換える関数です。

A列の文字列からB列の文字列を省くにはSUBSTITUTE関数

Excelで下のようにA列とB列に文字列が入力されていて、A列のセルからB列の文字列を抜いた文字列をC列のセルへ表示する方法です。 SUBS ...

従来のFIND(ファインド)関数や MID(ミッド)関数を組み合わせて文字列を抜き出す方法もありますが、少し複雑に感じる方も多いと思います。

新関数の登場

Microsoft 365のExcelでは、早くから[TEXTBEFORE][TEXTAFTER][TEXTSPLIT]関数が使用できていました。

その後、Excel 2024が登場し、365のExcelと同じ新関数の一部が使用できるようになりました。

今回紹介する3つの関数は、とても分かりやすく文字列を驚くほど簡単に抜き出したり分割できます。

TEXTBEFORE関数 ( 指定した文字の[前]を抜き出す)

TEXTBEFORE(テキストビフォー)関数は、指定した文字より前にある部分を返す関数です。

TEXTBEFORE 関数 - Microsoft サポート(Microsoft)

参考Microsoftのサポートページでは、365のみが適用となっていますが、Excel 2024でも使用できます。

TEXTBEFOREの書式

書式は次のとおりです。

=TEXTBEFORE(テキスト, 区切り文字, [区切り位置], [検索方法], [文字列の終端], [見つからない場合])

TEXTBEFOREの引数ダイアログボックスでは、引数は英語表記になっています。

引数(日本語) 引数(英語) 説明
テキスト text 対象となる文字列  例:セル A1
区切り文字 delimiter どこで区切るかを指定  例:[-]や[@]
区切り位置
(省略可)
instance_num 何番目の区切り文字を使うか。1 を指定すると最初の区切り文字の前を返す
負の数は右から
検索方法
(省略可)
match_mode 大文字小文字を区別するかどうか
0:区別する(既定)
1:区別しない
文字列の終端
(省略可)
match_end テキストの末尾を区切り文字として扱うかどうかを指定します。
0:末尾を区切り文字があるとみなさない(既定)
1:末尾を区切り文字があるとみなす
見つからない場合
(省略可)
if_not_found 区切り文字が見つからない場合に返す値(既定は#N/A )

※Excelの[関数の引数]ダイアログボックスでは、引数[match_mode]の既定値が[1]と表示されていますが、実際の既定値は[0](大文字小文字を区別する)です。
また、引数[match_end] は非常に分かりにくいです。
[後ろから探す]わけではなく、この引数は、テキストの末尾に区切り文字が[あるものとして扱うかどうか] を指定します。

参考関数はセルに直接入力してもかまいませんが、初心者の方は[関数の引数]ダイアログボックスを使うとミスなく入力できます。ここでは、[関数の引数]ダイアログボックスを使って解説します。

基本的な使い方(スペースの前を抜き出す)

以下のような表があります。B列の文字列からスペースの前の文字列をC列へ抜き出します。

姓と名の間は、半角スペースで区切られています。

氏名が半角スペースで区切られた表

セル[C2]を選択して、半角で[=]を入力し、続けて[textb]まで入力すると、自動で[TEXTBEFORE]が表示されますので、[Tab]キーで確定します。ダブルクリックでもかまいません。

[Enter]キーは押さないように気を付けてください。

セル[C2]に[=textb]を入力して[TEXTBEFORE]を表示

数式バーに関数名が表示されます。

数式バーの[fx](関数の挿入)ボタンをクリックして、[関数の引数]ダイアログボックスを表示します。

数式バーの[fx](関数の挿入)ボタン

TEXTBEFOREの[関数の引数]ダイアログボックスの引数は英語表記になっています。

TEXTBEFOREの[関数の引数]ダイアログボックス

引数[if_not_found]は、下へスクロールすると表示されます。

[関数の引数]ダイアログボックスの引数[If_not_found]

引数[text](テキスト)には、セル[B2]を指定し、引数[delimiter](区切り文字)には、[" "](半角スペース)を指定します。

引数[delimiter](区切り文字)は、半角スペースを入力するだけでOKです。ダブルクォーテーションは自動で入力されます。

[OK]ボタンをクリックします。

TEXTBEFOREの[関数の引数]ダイアログボックスに必要項目を入力

数式バーには、以下のように入力されています。

セル[C2]には、セル[B2]の文字列の中から、スペースの前の文字列が抜き出されています。

=TEXTBEFORE(B2," ")

数式の結果

この数式をオートフィルを使って、下のセルへコピーします。

セル[C2]のフィルハンドルを下へドラッグするか、ダブルクリックします。

フィルハンドルをドラッグして数式をコピー

結果、以下のようになります。

数式をコピーした結果

スピルを使用するには

TEXTBEFORE関数では、スピルを使用できます。

スピルを使用するには、[関数の引数]ダイアログボックスの引数[text]に範囲を指定します。

[関数の引数]ダイアログボックスの[Text]に範囲を指定

これだけで、スピルになります。

スピルで表示された結果

区切り文字が複数ある場合

もし、セル内に区切り文字が複数ある場合は、何番目の区切り文字かを引数[instance_num](区切り位置)に指定します。

ここでは、[2]を指定します。

[関数の引数]ダイアログボックスの[Instance_num](出現回数)に指定

結果、以下のようになります。

数式の結果

TEXTAFTER関数 ( 指定した文字の[後]を抜き出す)

TEXTAFTER(テキストアフター)関数は、指定した文字より後ろにある部分を返す関数です。

TEXTAFTER 関数 - Microsoft サポート(Microsoft)

TEXTAFTERの書式

書式は次のとおりです。

=TEXTAFTER(テキスト, 区切り文字, [区切り位置], [検索方法], [文字列の終端], [見つからない場合])

TEXTAFTERの引数ダイアログボックスでは、引数は英語表記で表示されます。

TEXTBEFORE関数と引数は同じです。違いは、[前を返す]か[後ろを返す]かだけです。

引数(日本語) 引数(英語) 説明
テキスト text 対象となる文字列  例:セル A1
区切り文字 delimiter どこで区切るかを指定  例:[-]や[@]
区切り位置
(省略可)
instance_num 何番目の区切り文字を使うか。1 を指定すると最初の区切り文字の後ろを返す
負の数は右から
検索方法
(省略可)
match_mode 大文字小文字を区別するかどうか
0:区別する(既定)
1:区別しない
文字列の終端
(省略可)
match_end テキストの末尾を区切り文字として扱うかどうかを指定します。
0:末尾を区切り文字があるとみなさない(既定)
1:末尾を区切り文字があるとみなす
見つからない場合
(省略可)
if_not_found 区切り文字が見つからない場合に返す値(既定は#N/A )

※Excelの[関数の引数]ダイアログボックスでは、引数[match_mode]の既定値が[1]と表示されていますが、実際の既定値は[0](大文字小文字を区別する)です。
また、引数[match_end] は非常に分かりにくいです。
[後ろから探す]わけではなく、この引数は、テキストの末尾に区切り文字が[あるものとして扱うかどうか] を指定します。

参考関数はセルに直接入力してもかまいませんが、初心者の方は[関数の引数]ダイアログボックスを使うとミスなく入力できます。ここでは、[関数の引数]ダイアログボックスを使って解説します。

基本的な使い方(スペースの後ろを抜き出す)

以下のような表があります。B列の文字列からスペースの後ろの文字列をC列へ抜き出します。

姓と名の間は、半角スペースで区切られています。

氏名が半角スペースで区切られた表

セル[C2]を選択して、半角で[=]を入力し、続けて[texta]まで入力すると、自動で[TEXTAFTER]が表示されますので、[Tab]キーで確定します。ダブルクリックでもかまいません。

[Enter]キーは押さないように気を付けてください。

セル[C2]に[=texta]まで入力して[TEXTAFTER]を表示

数式バーに関数名が表示されます。

数式バーの[fx](関数の挿入)ボタンをクリックして、[関数の引数]ダイアログボックスを表示します。

数式バーの[fx](関数の挿入)ボタン

TEXTAFTERの[関数の引数]ダイアログボックスの引数は英語表記になっています。

引数[if_not_found]は、下へスクロールすると表示されます。

TEXTAFTERの[関数の引数]ダイアログボックス

引数[Text](テキスト)には、セル[B2]を指定し、引数[delimiter](区切り文字)には、[" "](半角スペース)を指定します。

引数[delimiter](区切り文字)は、半角スペースを入力するだけでOKです。ダブルクォーテーションは自動で入力されます。

[OK]ボタンをクリックします。

TEXTBEFOREの[関数の引数]ダイアログボックスに必要事項を入力

数式バーには、以下のように入力されています。

セル[C2]には、セル[B2]の文字列の中から、スペースの後ろの文字列が抜き出されています。

=TEXTAFTER(B2," ")

数式の結果

フィルハンドルを使用して、数式をコピーします。結果、以下のようになります。

フィルハンドルを使用して数式をコピーした結果

参考TEXTAFTER関数もTEXTBEFORE関数と同じように、引数[text]に範囲を指定すると、スピルします。

TEXTAFTER関数のスピル

TEXTSPLIT関数 ( 文字列を区切り文字で分割する)

TEXTSPLIT(テキストスプリット)関数は、区切り文字を使用してテキストを行または列に分割する関数です。

TEXTSPLIT 関数 - Microsoft サポート(Microsoft)

TEXTSPLITの書式

=TEXTSPLIT(テキスト, 列の区切り文字, [行の区切り文字], [空白を無視], [検索方法],  [埋める値])

TEXTSPLITの引数ダイアログボックスでは、引数は英語表記で表示されます。

引数(日本語) 引数(英語) 説明
テキスト text 分割したい元の文字列  例:セルA1
列の区切り文字 col_delimiter 列方向(横方向)に分割するときの区切り文字
行の区切り文字 row_delimiter 行方向(縦方向)に分割するときの区切り文字
空白を無視
(省略可)
ignore_empty TRUEにすると空の値(空白)を無視して分割する(既定はFALSE )
検索方法
(省略可)
match_mode 大文字小文字を区別するかどうか
0:区別する(既定)
1:区別しない
埋める値
(省略可)
pad_with 分割結果の形をそろえるために、足りない部分を埋める値(既定は#N/A )

基本的な使い方(姓と名を分ける)

以下のような表があります。B列の文字列からスペースで分割してC列とD列へ抜き出します。

姓と名の間は、半角スペースで区切られています。

半角スペースで区切られた氏名の表

セル[C2]を選択して、半角で[=]を入力し、続けて[texts]まで入力すると、自動で[TEXTSPLIT]が表示されますので、[Tab]キーで確定します。ダブルクリックでもかまいません。

セル[C2]を選択して[=texts]を入力して[TEXTSPLIT]を表示

数式バーに関数名が表示されます。

数式バーの[fx](関数の挿入)ボタンをクリックして、[関数の引数]ダイアログボックスを表示します。

数式バーの[fx](関数の挿入)ボタン

TEXTSPLITの[関数の引数]ダイアログボックスの引数は英語表記になっています。

TEXTSPLITの[関数の引数]ダイアログボックス

下へスクロールすると、[pad_with]の引数が表示されます。

[関数の引数]ダイアログボックスの引数[Pad_with]

引数[text](テキスト)には、セル[B2]を指定し、引数[col_delimiter](列の区切り文字)には、[" "](半角スペース)を指定します。

引数[col_delimiter](区切り文字)は、半角スペースを入力するだけでOKです。ダブルクォーテーションは自動で入力されます。

[OK]ボタンをクリックします。

[関数の引数]ダイアログボックスに必要事項を入力

数式バーには、以下のように入力されています。

セル[C2]とセル[D2]にセル[B2]の文字列がスペースで分割して抜き出されています。

=TEXTSPLIT(B2," ")

数式の結果

セル[C2]を選択して、フィルハンドルをドラッグして数式をコピーします。

セル[C2]を選択した時のフィルハンドル

結果、以下のようになります。

フィルハンドルをドラッグ

参考TEXTSPLIT関数の場合、引数[text]で範囲を指定すると、以下のように先頭の文字のみが抜き出されますので注意してください。

TEXTSPLIT関数で引数[Text]で範囲を指定した場合の結果

分割ではなく、文字列の結合については、以下の記事で解説しています。

TEXTJOIN関数は、区切り文字を挿入して結合できる関数で、Excel 2019から使用できます。

複数の文字列を結合して1つのセルにまとめる5つの方法

Excelで複数のセルの文字列を1つに結合して表示する方法を解説します。 定番の「&(アンパサンド)」から、Excel 2019やM ...

  • この記事を書いた人
  • 最新記事

-Excel 2024 

Copyright © 2001-2026 初心者のためのOffice講座 All Rights Reserved.