Excelで最初のハイフンより前を取りたい。TEXTBEFOREの1とマイナス1は何が違う?

※本記事には広告・アフィリエイトリンクが含まれます。

たとえば、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版』は、関数の基本やデータの抽出・変換を扱う入門書です。出版社の公開目次で、その章立てを確認できます。

『できるExcel関数』の版・書誌を楽天市場で確認する

公開目次だけでは、この本のTEXTBEFORE個別解説までは確認できません。また、本の書名にExcel 2019や2021があっても、この関数がその版で使えるという意味にはなりません。今回の式と対応版は、Microsoftの案内を見てね。

「東京」が欲しいのか、「東京-営業」が欲しいのか。まず欲しい結果を一つ書いてから、何番目のハイフンを目印にするかを決めてみよう。

参照:Microsoft Support、インプレス公開目次、楽天市場bookfan。2026年10月21日確認。

  • URLをコピーしました!

この記事を書いた人

仕事の段取りや伝え方、道具の選び方を検証し、実践しやすく紹介する編集部です。

目次