概要
文字列の中で「指定した文字より前の部分」を取り出したいときに使えるのが、=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))
まとめ
LEFTとFINDを組み合わせることで「指定文字以前の部分」を簡単に抽出できます。
- FINDで位置を調べる
- LEFTでその位置の直前までを切り出す
- IFERRORやTRIMを組み合わせるとさらに実務で使いやすくなる
講師として強調したいのは「文字列処理は関数の組み合わせで自在にできる」という点。これを理解すれば、Excelでのデータ整形がぐっと効率的になります。
