Excelで「文字列の先頭から何文字かだけ取り出したい」と思ったことはありませんか。商品コードの頭2文字でカテゴリを判定したり、郵便番号の上3桁で地域を分類したりと、左から数文字だけ抜き出したい場面は意外と多いですよね。手作業でやると件数が増えるほどミスも増えてしまいます。
そんなときに使えるのが LEFT関数 です。左端から指定した文字数を一発で取り出せるので、データ整理がぐっと楽になりますよ。この記事では、LEFT関数の基本構文からMID関数・RIGHT関数との比較、FIND関数との組み合わせ、よくあるエラー対処、FAQまで実務に直結する知識を順に解説します。
対象バージョン: 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つの中で一番シンプルです。文字列操作の入門としてもおすすめですよ。なお、文字数を数えるLEN関数や、行数を数えるROWS関数もデータ整形の場面でセットで使えるので覚えておくと便利です。
LEFT関数の書き方(構文・引数)
LEFT関数の基本構文
LEFT関数の構文は次のとおりです。
=LEFT(文字列, [文字数])
引数は2つで、文字数は省略可能です。それぞれの役割を表で確認しましょう。
| 引数 | 必須/省略可 | 説明 | 指定例 |
|---|---|---|---|
| 文字列 | 必須 | 取り出し元の文字列またはセル参照 | A1, “ABCDE” |
| 文字数 | 省略可 | 先頭から何文字取り出すか(省略時は1) | 3 → 先頭3文字 |
文字数には正の整数を指定します。0を指定すると空文字、負の数を指定すると #VALUE! エラーになります。マイナス値は意図せず発生しやすいので注意してくださいね(後述の「よくあるエラー」で詳しく解説します)。
文字数を省略すると1文字が返る
文字数を省略した場合、先頭の 1文字だけ が返ります。
=LEFT("Excel")
→ 結果: "E"
「とりあえず先頭1文字がほしい」ときは、文字数を書かなくてOKです。ただし可読性の観点からは =LEFT(A1, 1) のように明示する方が、後で式を読み直したときにわかりやすくなります。
LEFT関数の全角・半角のカウント方法
LEFT関数では、全角文字も半角文字も 1文字=1 としてカウントされます。バイト単位ではなく、見た目どおりの文字数で数える点が重要です。
=LEFT("エクセル", 2)
→ 結果: "エク"
=LEFT("Excel", 2)
→ 結果: "Ex"
どちらも2文字として扱われます。バイト数で計算したい場合は後述のLEFTB関数を使いますが、通常の業務ではLEFT関数で問題ありません。
LEFT関数の基本的な使い方
LEFT関数でセル参照から左から取り出す
実務では直接値を書くよりセル参照を使うのが一般的です。セルA1に「PRD-001-BK」が入っている場合を見てみましょう。
=LEFT(A1, 3)
→ 結果: "PRD"
先頭から3文字分、つまり「PRD」が取り出されます。ハイフンやスペースも1文字としてカウントされるので注意してくださいね。商品コードのプレフィックスを抜き出す典型例です。
文字数を多めに指定した場合のLEFT関数の動作
「文字列の長さより大きい数を指定したらどうなるの?」と気になる方もいるかもしれません。結論から言うと、エラーにはなりません。文字列全体がそのまま返ります。
=LEFT("Hello", 100)
→ 結果: "Hello"
はみ出した分は無視されるので、安心して使ってください。長さがばらつくデータでも安全に処理できる仕様です。
LEFT関数の結果は常に文字列になる
LEFT関数の結果は 常に文字列 です。数字を取り出しても、そのままでは計算に使えません。
=LEFT("12345", 3)
→ 結果: "123"(文字列として返る)
取り出した数字でSUM関数やIF関数の計算をしたいときは、VALUE関数で数値に変換する必要があります。
=VALUE(LEFT(A1, 3))
VALUE関数で囲むだけで、数値として扱えるようになりますよ。逆に数値判定で =LEFT(A1, 3) = 123 のように比較すると常に FALSE になるので、比較対象も文字列にして = "123" と書くか、VALUE関数で数値化してから比較しましょう。
LEFT関数の実務活用パターン
ここからは、実務でよく使う活用パターンを紹介します。基本から応用まで段階的に見ていきましょう。
パターン1: 商品コードの頭2文字でカテゴリ判定(LEFT関数の基本活用)
商品コード「AB-001」「CD-002」のように、先頭2文字がカテゴリを表しているケースです。
=LEFT(A1, 2)
→ 結果: "AB"
取り出した2文字を使って、IF関数やVLOOKUP関数で分類処理につなげられます。LEFT関数は「他の関数への橋渡し役」としても活躍しますよ。たとえば次のようにマスタ表を参照すれば、コード先頭からカテゴリ名を引いてくることもできます。
=VLOOKUP(LEFT(A1, 2), カテゴリマスタ, 2, FALSE)
商品分類・店舗分類・部門コードなどで頻出のパターンです。
パターン2: 郵便番号の上3桁をLEFT関数で取り出す
「123-4567」形式の郵便番号から、上3桁(地域コード)を取り出す例です。
=LEFT(A1, 3)
→ 結果: "123"
先頭3文字を取るだけなので、ハイフンの位置を気にする必要はありません。郵便番号を地域ごとに集計・分類したいときに便利です。配送料区分の判定や、エリア別の売上集計でよく使う処理ですね。
パターン3: 日付文字列から年だけLEFT関数で取り出す
「2026-04-04」のようなテキスト形式の日付から年だけ取り出す場合です。
=LEFT(A1, 4)
→ 結果: "2026"
年が先頭4文字に入っているので、LEFT関数でスパッと取り出せます。ただし、セルが日付型(シリアル値)の場合は表示と異なる結果になるので注意が必要です。日付型の場合はTEXT関数で文字列に変換してから使いましょう。
=LEFT(TEXT(A1, "YYYY-MM-DD"), 4)
なお、シリアル値から年だけを数値で取り出したい場合は、専用のYEAR関数を使う方が確実です。LEFT関数はあくまで「文字列の左から取る」関数だと覚えておきましょう。
パターン4: LEFT関数とFIND関数で区切り文字の手前を取り出す
ここからが実務で大活躍するパターンです。「田中 太郎」からスペースの手前「田中」を取り出す場合を考えましょう。
姓の長さは人によって違うので、文字数を固定できません。こうした 可変長データ にはFIND関数(検索文字の位置を返す関数)が頼りになります。
=LEFT(A1, FIND(" ", A1) - 1)
この式を分解すると、次のとおりです。
FIND(" ", A1)→ スペースの位置を取得(「田中 太郎」なら3)- 1→ スペースの1つ手前まで(3-1=2文字)LEFT(A1, 2)→ 先頭から2文字「田中」を取り出す
FIND関数が区切り文字の位置を自動で見つけてくれるので、姓が2文字でも3文字でも対応できますよ。「田中 太郎」「佐々木 花子」のように姓の長さが混在しても1つの式で処理できるのが大きなメリットです。
パターン5: LEFT関数でメールアドレスから@より前を取り出す
「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: LEFT関数で都道府県名を住所から抽出する
住所データから都道府県名だけを取り出す場面はとても多いですよね。ただし、都道府県名は「東京都」が3文字、「神奈川県」が4文字と長さが異なるのが厄介です。
IF関数を使って、4文字の都道府県かどうかで分岐させる方法が定番です。
=IF(MID(A1,4,1)="県", LEFT(A1,4), LEFT(A1,3))
この式の考え方はこうです。
- MID関数で4文字目を確認
- 4文字目が「県」なら4文字の県(神奈川県、和歌山県、鹿児島県)
- そうでなければ3文字(東京都、大阪府、北海道、その他の県)
「北海道」は3文字なので3文字パターンで取得できます。多くの実務データではこの方法で十分対応できますよ。顧客住所マスタの整備や、エリア別の集計表を作るときの基本テクニックです。
LEFT関数の実務活用シーン早見表
ここまで紹介したパターンを実務シーン別にまとめておきます。自分の業務に近いものから試してみてください。
| 業務シーン | データ例 | LEFT関数の式 |
|---|---|---|
| 商品分類 | AB-001 | =LEFT(A1, 2) |
| 郵便番号の地域コード | 123-4567 | =LEFT(A1, 3) |
| 文字列の日付から年抽出 | 2026-04-04 | =LEFT(A1, 4) |
| 氏名から姓抽出 | 田中 太郎 | =LEFT(A1, FIND(" ", A1) - 1) |
| メールアドレスのユーザー名 | tanaka@example.com | =LEFT(A1, FIND("@", A1) - 1) |
| 住所から都道府県 | 東京都渋谷区… | =IF(MID(A1,4,1)="県", LEFT(A1,4), LEFT(A1,3)) |
LEFT関数でよくあるエラーと対処法
LEFT関数を使っていて「あれ?」となるケースをまとめました。事前に知っておくとトラブルを未然に防げます。
LEFT関数で#VALUE!エラーが出るケース
#VALUE! エラーの原因はほぼ1つです。
- 文字数にマイナスの値を指定している
=LEFT(A1, -1)
→ #VALUE! エラー
FIND関数と組み合わせたときに起こりやすいパターンです。検索文字が見つからないとFIND関数が #VALUE! を返し、LEFT関数にも波及します。たとえば =LEFT(A1, FIND("-", A1) - 1) で対象文字列にハイフンが含まれていない場合、FIND がエラーになり結果として #VALUE! が出ます。
=IFERROR(LEFT(A1, FIND("-", A1) - 1), A1)
IFERROR関数で囲んでおけば、区切り文字がないデータでもエラーになりません。元の値をそのまま返す設計にしておくと、後工程での扱いが楽になります。
LEFT関数を数値セルに使うと意図しない結果になる
LEFT関数は文字列を扱う関数です。数値セルに使うと、書式に関係なくセルの実際の値から取り出されます。
たとえば、日付セルに 2026/4/4 と表示されていても、内部的にはシリアル値(46114のような数値)です。LEFT関数はこのシリアル値の先頭から取り出してしまいます。
=LEFT(A1, 4) ← 日付セル
→ 結果: "4611"(表示値と異なる!)
対策は、TEXT関数で表示形式を文字列に変換してからLEFTを適用することです。
=LEFT(TEXT(A1, "YYYY/MM/DD"), 4)
→ 結果: "2026"
「セルに見えている値」と「実際の値」が違うことを意識しておくと、この種のトラブルを避けられますよ。
LEFT関数で空文字が返るケース
LEFT関数が空文字(””)を返すのは次のケースです。
- 文字数に0を指定した場合
- 参照セルが空の場合
どちらもエラーにはなりませんが、意図した結果かどうか確認しておきましょう。空セルを処理するときは、IF関数で事前にチェックする方法もあります。
=IF(A1="", "", LEFT(A1, 3))
これで空セルは空のまま返し、データがある行だけLEFT処理を実行できます。
LEFT関数とLEFTB関数の違い
LEFT関数とよく比較されるのがLEFTB関数です。両者の違いは 文字の数え方 にあります。LEFTB の「B」は Byte(バイト)の頭文字で、バイト単位で数える関数です。
| 項目 | 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関数と似た関数の使い分け
LEFT関数と併用する機会が多い関数を整理しました。文字列処理の引き出しを増やしておくと、複雑なデータ整形もスムーズに対応できますよ。
| 関数 | 役割 | LEFTとの関係 |
|---|---|---|
| RIGHT | 末尾から文字を取り出す | LEFTの逆方向版 |
| MID | 任意の位置から文字を取り出す | 中央の取り出しに使う |
| LEN | 文字数を数える | LEFTの文字数指定に活用 |
| FIND | 検索文字の位置を返す | 可変長の区切り処理に必須 |
| TRIM | 余分なスペースを除去する | LEFT適用前のデータ前処理に |
| SUBSTITUTE | 文字列を置換する | 区切り文字の変換と組み合わせ |
| IFERROR | エラー時に別の値を返す | FIND連携時のエラー防止に |
どの関数を使うか迷ったときは、次の判断フレームで選んでみてください。
- 先頭から数えたほうが早い → LEFT関数
- 末尾から数えたほうが早い → RIGHT関数
- 真ん中あたりにある → MID関数
- 区切り文字の前後で分けたい → LEFT + FIND または MID + FIND
- 末尾の区切り文字以降を取り出したい → RIGHT + FIND(応用)
LEFT関数とMID関数の使い分け
LEFT関数とMID関数はどちらも文字を抽出する関数ですが、使いどころが少し違います。
| 状況 | おすすめ |
|---|---|
| 必ず先頭から取り出す | LEFT関数 |
| 開始位置が2文字目以降 | MID関数 |
| 開始位置を可変にしたい | MID + FIND |
LEFT関数は「先頭から」が固定なので、開始位置を変える必要があるならMID関数の出番です。たとえばコード中央の3文字を取り出したい場合は =MID(A1, 4, 3) のように書きます。
文字列操作の関数を体系的に学びたい方は、Excelの文字列関数まとめもあわせてチェックしてみてくださいね。
LEFT関数のよくある質問(FAQ)
ここでは、LEFT関数についてよく寄せられる質問をまとめました。実務で迷ったときの早見集として活用してください。
Q1. LEFT関数で取り出した数字を計算に使うには?
A. LEFT関数の結果は文字列なので、計算に使うにはVALUE関数で数値に変換します。
=VALUE(LEFT(A1, 3))
または =LEFT(A1, 3) * 1 のように数値演算を加えても文字列を数値化できます。SUMやIFと組み合わせる前のひと手間として覚えておきましょう。
Q2. LEFT関数とFIND関数を組み合わせたときにエラーが出ます
A. FIND関数で検索文字が見つからないと #VALUE! エラーが出て、それがLEFT関数にも伝わります。IFERROR関数で囲むのが定番の対処です。
=IFERROR(LEFT(A1, FIND("-", A1) - 1), A1)
検索文字がないときは元の文字列をそのまま返す、空文字を返す、など要件に応じて分岐させましょう。
Q3. LEFT関数で全角と半角を別々に数えたい
A. LEFT関数は全角・半角を区別せず、すべて1文字として数えます。バイト単位で数えたいときはLEFTB関数を使います。ただし通常業務ではLEFT関数のほうが直感的なので、特別な要件がない限りLEFT関数で十分です。
Q4. LEFT関数で日付セルから年を取り出すと数字が変になります
A. 日付セルは内部的にシリアル値(数値)なので、LEFT関数がシリアル値の先頭を取り出してしまいます。TEXT関数で文字列に変換してから使いましょう。
=LEFT(TEXT(A1, "YYYY/MM/DD"), 4)
数値として年を取りたいだけなら、YEAR関数を使うのがシンプルです。
Q5. LEFT関数の結果をそのまま IF 関数の判定に使えますか?
A. 使えますが、比較する値も文字列で指定する必要があります。
=IF(LEFT(A1, 2) = "AB", "対象", "対象外")
数値と比較したい場合は、=IF(VALUE(LEFT(A1, 3)) > 100, ...) のようにVALUE関数で数値化してから比較しましょう。文字列と数値の比較は意図しない結果(常にFALSE)になることがあります。
Q6. LEFT関数で複数の区切り文字に対応したい
A. FIND関数を入れ子にするか、SUBSTITUTE関数で区切り文字を統一してから処理する方法があります。たとえばスペースか「-」のどちらかを区切りにしたい場合は、SUBSTITUTEで片方をもう片方に置換してからFIND+LEFTを適用するとシンプルです。
=LEFT(A1, FIND("-", SUBSTITUTE(A1, " ", "-")) - 1)
複雑な区切り処理が必要なときは、TEXTSPLIT関数(Microsoft 365)を検討するのもおすすめです。
まとめ
この記事では、ExcelのLEFT関数の使い方を基本から実務活用、FAQまで解説しました。最後にポイントを振り返りましょう。
- LEFT関数は
=LEFT(文字列, 文字数)で先頭から文字を取り出す - 文字数を省略すると 1文字だけ 返る
- 文字数を多めに指定してもエラーにならず、文字列全体が返る
- FIND関数と組み合わせれば、可変長の区切り文字にも対応できる
- LEFTB関数はバイト単位で数える関数で、通常業務ではLEFTで十分
- 結果は文字列になるので、数値として使うならVALUE関数で変換する
- 区切り文字がないデータが混在するならIFERROR関数で安全に処理する
LEFT関数は文字列操作の基本中の基本です。まずは「先頭から何文字取り出す」というシンプルな使い方から試してみてください。FIND関数との組み合わせに慣れれば、データ整理の幅がぐっと広がりますよ。次のステップとしてRIGHT関数やMID関数も合わせて覚えれば、文字列操作の達人に近づけます。
