※本記事には広告・アフィリエイトリンクが含まれます。
たとえば、A2セルに「東京-営業-01」と入っていて、「東京」だけを別の列へ出したい場面。何文字目まで切り出すかを毎回数えるより、ハイフンを目印にしたいよね。
TEXTBEFOREは、指定した文字より前の部分を取り出す関数です。この例なら、=TEXTBEFORE(A2,"-")で「東京」になります。関数は、決まった処理を式の名前で呼び出す仕組みのことだよ。
Microsoftの対応一覧は、Microsoft 365版とExcel 2024のWindows・Macです。使っている版で利用できるかも、先に確認してね。
最初のハイフン? 最後のハイフン? 同じ文字列でも答えが変わる
MicrosoftのTEXTBEFOREの説明では、区切り文字が何回目に現れたかを指定でき、省略時は1回目とされています。区切り文字は、取り出す位置の目印にする文字です。
A2が「東京-営業-01」の場合を、説明用の例で並べてみよう。
| 式 | 取り出す部分 |
|---|---|
=TEXTBEFORE(A2,"-") |
東京 |
=TEXTBEFORE(A2,"-",2) |
東京-営業 |
=TEXTBEFORE(A2,"-",-1) |
東京-営業 |
マイナス1は、後ろから最初に見つかるハイフンを使う指定です。取り出すのは、そのハイフンの「前」。後ろから探すからといって、末尾の「01」を取り出すわけではありません。
この例ではハイフンが二つなので、2とマイナス1の結果が同じ。区切りの数が違うデータでは、同じになるとは限らないよ。
ハイフンがない行は、既定では「#N/A」になる
たとえば「大阪営業」のように、指定したハイフンが含まれない行。既定の結果は、該当する目印が見つからないことを示す#N/Aです。
見つからないときの表示を、最後の引数で指定する方法もあります。引数は、関数へ渡す条件や値のこと。今回は例として「区切りなし」と表示させる式です。
=TEXTBEFORE(A2,"-",1,0,0,"区切りなし")
途中の0は、文字の大文字・小文字を区別する指定と、文字列の末尾を区切りとして扱わない指定です。この例は記号のハイフンを探すので、大文字・小文字の違いはありません。
式を下の行へコピーする前に、区切りが一つの行、複数の行、ない行を見よう。実際の会社名やコードを書き換えず、別列に結果を出して元の値と比べると、欲しい部分かを確かめられます。
関数の基本から見たいなら、書籍の範囲と対応版を分けて確認
『できるExcel関数 Copilot対応 Office 2024/2021/2019&Microsoft 365版』は、関数の基本やデータの抽出・変換を扱う入門書です。出版社の公開目次で、その章立てを確認できます。
公開目次だけでは、この本のTEXTBEFORE個別解説までは確認できません。また、本の書名にExcel 2019や2021があっても、この関数がその版で使えるという意味にはなりません。今回の式と対応版は、Microsoftの案内を見てね。
「東京」が欲しいのか、「東京-営業」が欲しいのか。まず欲しい結果を一つ書いてから、何番目のハイフンを目印にするかを決めてみよう。
参照:Microsoft Support、インプレス公開目次、楽天市場bookfan。2026年10月21日確認。