Excel関数 逆引き集 | 指定文字以前を抽出 → LEFT(FIND(“-“,A1)-1)

Excel
スポンサーリンク

概要

文字列の中で「指定した文字より前の部分」を取り出したいときに使えるのが、
=LEFT(A1,FIND("-",A1)-1) という組み合わせです。

ここでは「-(ハイフン)」を例にしていますが、任意の文字に置き換えれば同じ仕組みで利用できます。
FIND関数で指定文字の位置を調べ、その位置の1つ前までをLEFT関数で切り出すのがポイントです。


基本の使い方

書式

=LEFT(対象文字列, FIND(検索文字, 対象文字列)-1)
  • FINDで検索文字の位置を取得
  • その位置から1を引くことで「指定文字の直前までの文字数」を計算
  • LEFTでその文字数分を左側から切り出す

=LEFT("ABC-123",FIND("-", "ABC-123")-1)
// 結果: "ABC"

具体例

商品コードから品番部分を抽出

=LEFT(A2,FIND("-",A2)-1)

「ABC-123」というコードから「ABC」を取り出せます。

氏名をスペースで区切って姓だけ抽出

=LEFT(B2,FIND(" ",B2)-1)

「山田 太郎」から「山田」を抽出。

メールアドレスからユーザー名部分を抽出

=LEFT(C2,FIND("@",C2)-1)

「user@example.com」から「user」を取り出せます。


応用テンプレート

複数の区切り文字に対応

「-」や「_」など複数の可能性がある場合はIFERRORで切り替えます。

=IFERROR(LEFT(D2,FIND("-",D2)-1),LEFT(D2,FIND("_",D2)-1))

指定文字が存在しない場合のエラー対策

=IFERROR(LEFT(E2,FIND("-",E2)-1),E2)

ハイフンがなければ文字列全体を返すように設定。

TRIMと組み合わせて余分なスペースを削除

=TRIM(LEFT(F2,FIND(" ",F2)-1))

姓を抽出した後に余分なスペースを取り除きます。


よくあるつまずきと対策

指定文字が見つからないとエラーになる

FINDは検索文字が存在しないと#VALUE!エラーになります。IFERRORで補うと安心です。

全角と半角の違い

「-」と「-」は別文字です。入力データの全角半角を統一してから使いましょう。

複数回出現する場合

FINDは最初に見つかった位置を返します。2回目以降を対象にしたい場合はFINDの開始位置を指定します。


例題

問題1: A2セルの文字列「ABC-123」から「-」以前の文字列をB2に表示してください。

解答例:

=LEFT(A2,FIND("-",A2)-1)

問題2: C2セルの氏名「山田 太郎」からスペース以前の文字列をD2に表示してください。

解答例:

=LEFT(C2,FIND(" ",C2)-1)

問題3: E2セルのメールアドレスから「@」以前の文字列をF2に表示してください。

解答例:

=LEFT(E2,FIND("@",E2)-1)

問題4: G2セルの文字列に「-」がなければ文字列全体をH2に表示してください。

解答例:

=IFERROR(LEFT(G2,FIND("-",G2)-1),G2)

問題5: I2セルの文字列からスペース以前の文字列を抽出し、余分なスペースを削除してJ2に表示してください。

解答例:

=TRIM(LEFT(I2,FIND(" ",I2)-1))

まとめ

LEFTFINDを組み合わせることで「指定文字以前の部分」を簡単に抽出できます。

  • FINDで位置を調べる
  • LEFTでその位置の直前までを切り出す
  • IFERRORやTRIMを組み合わせるとさらに実務で使いやすくなる

講師として強調したいのは「文字列処理は関数の組み合わせで自在にできる」という点。これを理解すれば、Excelでのデータ整形がぐっと効率的になります。

タイトルとURLをコピーしました