Excelで「文字列の先頭から何文字かだけ取り出したい」と思ったことはありませんか? 商品コードの頭2文字でカテゴリを判定したり、郵便番号の上3桁で地域を分類したりと、先頭部分だけ抜き出したい場面は意外と多いですよね。 手作業でやると件数が増えるほどミスも増えて大変です。
そんなときに使えるのが LEFT関数 です。 左端から指定した文字数を一発で取り出せるので、データ整理がぐっと楽になりますよ。 この記事では、LEFT関数の基本構文からFIND関数との組み合わせまで、実務に使える知識を順を追って解説します。
対象バージョン: Excel 2016 / 2019 / 2021 / Microsoft 365(Windows・Mac共通)
LEFT関数とは?文字列の先頭から文字を取り出す関数
ExcelのLEFT関数は、文字列の 左端(先頭)から指定した文字数 を取り出す関数です。 読み方は「レフト」で、英語の「Left(左)」がそのまま由来になっています。
たとえば「東京都渋谷区」から「東京都」だけ取り出す、「AB-001」から「AB」だけ取り出す、といった操作が1つの関数で完了します。
Excelには文字を取り出す関数が3つあります。 まずは全体像を把握しておきましょう。
| 関数 | 取り出す位置 | 引数 | 使いどころ |
|---|---|---|---|
| LEFT | 先頭(左端)から | 文字列, 文字数 | 先頭のコード・郵便番号上3桁など |
| RIGHT | 末尾(右端)から | 文字列, 文字数 | 末尾の拡張子・年度下2桁など |
| MID | 任意の位置(途中)から | 文字列, 開始位置, 文字数 | コード中央の分類番号など |
LEFT関数は「先頭から何文字」と指定するだけなので、3つの中で一番シンプルです。 文字列操作の入門としてもおすすめですよ。
LEFT関数の書き方(構文・引数)
基本構文
LEFT関数の構文は次のとおりです。
=LEFT(文字列, [文字数])
引数は2つで、文字数は省略可能です。 それぞれの役割を表で確認しましょう。
| 引数 | 必須/省略可 | 説明 | 指定例 |
|---|---|---|---|
| 文字列 | 必須 | 取り出し元の文字列またはセル参照 | A1, “ABCDE” |
| 文字数 | 省略可 | 先頭から何文字取り出すか(省略時は1) | 3 → 先頭3文字 |
文字数を省略すると1文字が返る
文字数を省略した場合、先頭の 1文字だけ が返ります。
=LEFT("Excel")
→ 結果: "E"
「とりあえず先頭1文字がほしい」ときは、文字数を書かなくてOKです。
全角・半角のカウント方法
LEFT関数では、全角文字も半角文字も 1文字=1 としてカウントされます。
=LEFT("エクセル", 2)
→ 結果: "エク"
=LEFT("Excel", 2)
→ 結果: "Ex"
どちらも2文字として扱われます。 バイト数で計算したい場合は後述のLEFTB関数を使いますが、通常の業務ではLEFT関数で問題ありません。
LEFT関数の基本的な使い方
セル参照で先頭から取り出す
実務では直接値よりセル参照を使うのが一般的です。 セルA1に「PRD-001-BK」が入っている場合を見てみましょう。
=LEFT(A1, 3)
→ 結果: "PRD"
先頭から3文字分、つまり「PRD」が取り出されます。 ハイフンやスペースも1文字としてカウントされるので注意してくださいね。
文字数を多めに指定した場合の動作
「文字列の長さより大きい数を指定したらどうなるの?」と気になる方もいるかもしれません。 結論から言うと、エラーにはなりません。 文字列全体がそのまま返ります。
=LEFT("Hello", 100)
→ 結果: "Hello"
はみ出した分は無視されるので、安心して使ってください。
結果は常に文字列になる
LEFT関数の結果は 常に文字列 です。 数字を取り出しても、そのままでは計算に使えません。
=LEFT("12345", 3)
→ 結果: "123"(文字列として返る)
取り出した数字でSUM関数やIF関数の計算をしたいときは、VALUE関数で数値に変換する必要があります。
=VALUE(LEFT(A1, 3))
VALUE関数で囲むだけで、数値として扱えるようになりますよ。
LEFT関数の実務活用パターン
ここからは、実務でよく使う活用パターンを紹介します。 基本から応用まで段階的に見ていきましょう。
パターン1: 商品コードの頭2文字でカテゴリを判定する
商品コード「AB-001」「CD-002」のように、先頭2文字がカテゴリを表しているケースです。
=LEFT(A1, 2)
→ 結果: "AB"
取り出した2文字を使って、IF関数やVLOOKUP関数で分類処理につなげられます。 LEFT関数は「他の関数への橋渡し役」としても活躍しますよ。
パターン2: 郵便番号の上3桁を取り出す
「123-4567」形式の郵便番号から、上3桁(地域コード)を取り出す例です。
=LEFT(A1, 3)
→ 結果: "123"
先頭3文字を取るだけなので、ハイフンの位置を気にする必要はありません。 郵便番号を地域ごとに集計・分類したいときに便利です。
パターン3: 日付文字列から年だけ取り出す
「2026-04-04」のようなテキスト形式の日付から年だけ取り出す場合です。
=LEFT(A1, 4)
→ 結果: "2026"
年が先頭4文字に入っているので、LEFT関数でスパッと取り出せます。 ただし、セルが日付型(シリアル値)の場合は表示と異なる結果になることがあります。 日付型の場合はTEXT関数で文字列に変換してから使いましょう。
=LEFT(TEXT(A1, "YYYY-MM-DD"), 4)
パターン4: FIND関数と組み合わせて区切り文字の手前を取り出す
ここからが実務で大活躍するパターンです。 「田中 太郎」からスペースの手前「田中」を取り出す場合を考えましょう。
姓の長さは人によって違うので、文字数を固定できません。 こうした 可変長データ にはFIND関数(検索文字の位置を返す関数)が頼りになります。
=LEFT(A1, FIND(" ", A1) - 1)
この式を分解すると、次のとおりです。
- FIND(” “, A1) → スペースの位置を取得(「田中 太郎」なら3)
- – 1 → スペースの1つ手前まで(3-1=2文字)
- LEFT(A1, 2) → 先頭から2文字「田中」を取り出す
FIND関数が区切り文字の位置を自動で見つけてくれるので、姓が2文字でも3文字でも対応できますよ。
パターン5: メールアドレスから@より前のユーザー名を取り出す
「tanaka@example.com」から「tanaka」を取り出すケースです。 パターン4と同じ考え方です。
=LEFT(A1, FIND("@", A1) - 1)
→ 結果: "tanaka"
FIND(“@”, A1) で@の位置(7)を取得し、そこから1を引いた6文字をLEFTで取り出しています。
ただし、@が含まれないデータが混在する場合はFIND関数がエラーを返します。 IFERROR関数(エラー時に別の値を返す関数)で囲んでおくと安心です。
=IFERROR(LEFT(A1, FIND("@", A1) - 1), "")
エラー時は空文字を返すので、他のデータに影響しません。
パターン6: 都道府県名を住所から抽出する
住所データから都道府県名だけを取り出す場面はとても多いですよね。 ただし、都道府県名は「東京都」が3文字、「神奈川県」が4文字と長さが異なるのが厄介です。
IF関数を使って、4文字の都道府県かどうかで分岐させる方法が定番です。
=IF(MID(A1,4,1)="県", LEFT(A1,4), LEFT(A1,3))
この式の考え方はこうです。
- MID関数で4文字目を確認
- 4文字目が「県」なら4文字の県(神奈川県、和歌山県、鹿児島県)
- そうでなければ3文字(東京都、大阪府、北海道、その他の県)
「北海道」は3文字なので3文字パターンで取得できます。 多くの実務データではこの方法で十分対応できますよ。
よくあるエラーと対処法
LEFT関数を使っていて「あれ?」となるケースをまとめました。
#VALUE!エラーが出るケース
#VALUE! エラーの原因はほぼ1つです。
- 文字数にマイナスの値を指定している
=LEFT(A1, -1)
→ #VALUE! エラー
FIND関数と組み合わせたときに起こりやすいパターンです。 検索文字が見つからないとFIND関数が #VALUE! を返し、LEFT関数にも波及します。
=IFERROR(LEFT(A1, FIND("-", A1) - 1), A1)
IFERROR関数で囲んでおけば、区切り文字がないデータでもエラーになりません。
数値セルで意図しない結果になるケース
LEFT関数は文字列を扱う関数です。 数値セルに使うと、書式に関係なくセルの実際の値から取り出されます。
たとえば、日付セルに 2026/4/4 と表示されていても、内部的にはシリアル値(46114のような数値)です。 LEFT関数はこのシリアル値の先頭から取り出してしまいます。
=LEFT(A1, 4) ← 日付セル
→ 結果: "4611"(表示値と異なる!)
対策は、TEXT関数で表示形式を文字列に変換してからLEFTを適用することです。
=LEFT(TEXT(A1, "YYYY/MM/DD"), 4)
→ 結果: "2026"
空文字が返るケース
LEFT関数が空文字(””)を返すのは次のケースです。
- 文字数に0を指定した場合
- 参照セルが空の場合
どちらもエラーにはなりませんが、意図した結果かどうか確認しておきましょう。
LEFT関数とLEFTB関数の違い
LEFT関数とよく比較されるのがLEFTB関数です。 両者の違いは 文字の数え方 にあります。
| 項目 | LEFT関数 | LEFTB関数 |
|---|---|---|
| カウント基準 | 文字数(1文字=1) | バイト数(全角=2、半角=1) |
| 「Excel」の長さ | 5 | 5(すべて半角) |
| 「エクセル」の長さ | 4 | 8(すべて全角) |
| 主な用途 | 一般的な文字抽出 | 固定バイト長データの処理 |
LEFTB関数の構文はLEFT関数と同じです。
=LEFTB(文字列, [バイト数])
具体例で見てみましょう。 「エクセル関数」から取り出す場合に結果が変わります。
=LEFT("エクセル関数", 3)
→ 結果: "エクセ"(3文字)
=LEFTB("エクセル関数", 3)
→ 結果: "エ"(3バイト = 全角1文字 + 半端な1バイトは切り捨て)
LEFTB関数は、全角文字を2バイト、半角文字を1バイトとして計算します。 3バイト指定だと全角は1文字(2バイト)+余り1バイトとなり、半端な文字は切り捨てられます。
通常の業務では LEFT関数を使えば問題ありません。 LEFTB関数が必要になるのは、レガシーシステムから出力された固定バイト長データ(COBOL系や銀行データなど)を扱うような限られた場面だけです。
似た関数との比較・使い分け
LEFT関数と併用する機会が多い関数を整理しました。
| 関数 | 役割 | LEFTとの関係 |
|---|---|---|
| RIGHT | 末尾から文字を取り出す | LEFTの逆方向版 |
| MID | 任意の位置から文字を取り出す | 中央の取り出しに使う |
| LEN | 文字数を数える | LEFTの文字数指定に活用 |
| TRIM | 余分なスペースを除去する | LEFT適用前のデータ前処理に |
| SUBSTITUTE | 文字列を置換する | 区切り文字の変換と組み合わせ |
| IFERROR | エラー時に別の値を返す | FIND連携時のエラー防止に |
どの関数を使うか迷ったときは、次の判断フレームで選んでみてください。
- 先頭から数えたほうが早い → LEFT関数
- 末尾から数えたほうが早い → RIGHT関数
- 真ん中あたりにある → MID関数
- 区切り文字の前後で分けたい → LEFT + FIND または MID + FIND
文字列操作の関数を体系的に学びたい方は、Excelの文字列関数まとめもあわせてチェックしてみてくださいね。
まとめ
この記事では、ExcelのLEFT関数の使い方を基本から実務活用まで解説しました。 最後にポイントを振り返りましょう。
- LEFT関数は
=LEFT(文字列, 文字数)で先頭から文字を取り出す - 文字数を省略すると 1文字だけ 返る
- 文字数を多めに指定してもエラーにならず、文字列全体が返る
- FIND関数と組み合わせれば、可変長の区切り文字にも対応できる
- LEFTB関数はバイト単位で数える関数で、通常業務ではLEFTで十分
- 結果は文字列になるので、数値として使うならVALUE関数で変換する
LEFT関数は文字列操作の基本中の基本です。 まずは「先頭から何文字取り出す」というシンプルな使い方から試してみてください。 FIND関数との組み合わせに慣れれば、データ整理の幅がぐっと広がりますよ。
