LEFT関数の使い方・読み方|文字列の先頭から指定文字数を取り出す

執筆者:

カテゴリ:

LEFT関数の使い方・読み方のイメージ

文字列

LEFT関数の使い方・読み方

Excel関数辞典

読み方:LEFT は「レフト」と読みます。(一般的な読み方です。公式に読み仮名の定めはありません)

LEFTは、文字列の先頭から、指定した文字数だけ取り出す関数です。

使える環境Excel○Googleスプレッドシート○
このページの中身(26項目)
  1. 書式
  2. 基本の使い方
  3. 文字数が決まっていないとき
  4. 大文字小文字を区別しない検索
  5. 全角・半角の数え方
  6. 日付に使うと数字になる
  7. 数値に使うと文字列になる
  8. 全行に適用する
  9. SPLITやREGEXEXTRACTとの使い分け
  10. エラーの対処
  11. 位置で切り出すことの限界
  12. 全角と半角、そして文字数の数え方
  13. 取り出した結果は文字列になる
  14. 実務での組み立て例
  15. コードの設計が処理の難易度を決める
  16. 取り出した結果の検算
  17. 「文字列」の関数を全体から見る
  18. 数式を書く前の手順
  19. どの関数でも共通する確認
  20. 引き継ぐときに残すこと
  21. このサイトの収録状況
  22. よくある質問
  23. まとめ
  24. 関連する関数
  25. LEFT でエラーが出たときの読み方
  26. 全角と半角が混ざる表での注意

この記事の書式と対応環境の出どころ(2026-08-26 確認)

関数の仕様は追加・変更されることがあります。書式が合わないときは、上の公式ページで最新をご確認ください。

「商品コードの先頭3文字が分類コード」といった、位置が決まっているデータの切り出しに使います。ExcelとGoogleスプレッドシートで共通です。

LEFT関数の使い方の記事構成図
LEFT関数の使い方:この記事で扱う内容

書式

=LEFT(文字列, [文字数])

文字数を省略すると1文字だけ返します。

基本の使い方

A1に ABC-1234 が入っているとします。

=LEFT(A1, 3)   → ABC
LEFT関数の使い方の要点図
LEFT関数の使い方

文字数が決まっていないとき

実務ではこちらのほうが多くなります。区切り文字の位置を FIND で求めて、その手前までを取り出します。

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

FIND("-", A1) は「-」が4文字目にあることを返すので、-1 して3文字を取り出しています。

区切り文字が無いと #VALUE! になります

対処は IFERROR で包むか、FIND の結果を確認してから使います。

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

区切りが無ければ元の文字列をそのまま返す、という書き方です。

大文字小文字を区別しない検索

FIND は大文字小文字を区別します。区別したくないなら SEARCH を使ってください。

=LEFT(A1, SEARCH("x", A1) - 1)

SEARCH はワイルドカード(* ?)も使えます。

全角・半角の数え方

LEFTは全角も半角も1文字として数えます。

=LEFT("東京都", 2)   → 東京

バイト単位で数えたい場合は LEFTB を使います。ただし実務でバイト数が必要な場面は限られます(固定長のシステム連携など)。

日付に使うと数字になる

日付セルにLEFTを使うと、内部のシリアル値の先頭が返ります。

=LEFT(A1, 4)   → 4611   (2026/4/1 のシリアル値の先頭4桁)

日付から年を取り出したいなら TEXT か YEAR を使ってください。

=TEXT(A1, "yyyy")   → 2026
=YEAR(A1)           → 2026

LEFTは文字列専用の関数だと考えてください。

数値に使うと文字列になる

LEFTの結果は常に文字列です。計算に使うなら VALUE で戻します。

=VALUE(LEFT(A1, 3))

全行に適用する

ARRAYFORMULA で包みます。

=ARRAYFORMULA(IF(A2:A="", "", LEFT(A2:A, 3)))

SPLITやREGEXEXTRACTとの使い分け

やりたいこと使う関数
位置が固定LEFT
区切り文字で分けるSPLIT
パターンで取り出すREGEXEXTRACT

区切り文字が複数あったり、パターンが複雑なら REGEXEXTRACT のほうが素直に書けます。

=REGEXEXTRACT(A1, "^([^-]+)")

「最初の - までを取り出す」という意味です。FIND を使った書き方より短く、区切りが無くてもエラーになりません。

エラーの対処

#VALUE! が出る

  • FIND が対象を見つけられていない
  • 文字数にマイナスを指定している(FIND(...) - 1 が0未満になった)

IFERROR で包むか、FIND 単体の結果を確認してください。

想定と違う位置で切れる

対象に見えない文字(改行・全角スペース・タブ)が含まれている可能性があります。LEN() で文字数を確認すると分かります。

=LEN(A1)

見た目の文字数と合わなければ、不可視文字が入っています。TRIM や CLEAN で整えてください。


位置で切り出すことの限界

先頭から指定した文字数を取り出す処理は単純ですが、そのまま使えるのは桁数が固定されている場合だけです。実務のデータは、たいてい桁数が揃っていません。

商品コードが「A-101」「AB-2001」のように、記号の前の桁数が違う場合を考えます。先頭から一文字を取れば前者は正しく取れますが、後者は途中で切れます。二文字にすれば逆になります。固定の文字数では対応できません。

こういう場合は、区切りの位置を先に求めてから、その手前までを取り出します。区切り文字を検索する関数で位置を求め、そこから一を引いた文字数を指定する形です。これで桁数が違っても正しく取れます。

この「位置を求めてから切り出す」という組み立ては、文字列処理の基本形です。先頭からでも末尾からでも中間からでも、考え方は同じです。固定の数字を書いている数式を見つけたら、桁数が本当に固定なのかを疑ってください。取り込むデータの形式が変わった瞬間に、静かに壊れます。


全角と半角、そして文字数の数え方

文字数を数える方法には二通りあります。文字の個数で数える方法と、バイト数に近い考え方で数える方法です。

通常の数え方では、全角も半角も一文字として数えます。「東京」は二文字、「Tokyo」は五文字です。日本語を扱う場面では、たいていこちらが直感に合います。

もう一方の数え方では、全角を二として数えます。固定長のテキストファイルを扱う場合や、印字位置を揃える必要がある場合に使います。取り出す関数にも対応する版があり、同じ考え方で切り出せます。

問題は、両者を混在させたときです。文字数を通常の方法で数えて、切り出しをもう一方の方法で行うと、位置がずれます。データに全角と半角が混ざっていると、ずれ方も行によって変わるため、原因の特定に時間がかかります。

方針としては、どちらか一方に統一してください。日本語を含むデータなら、通常の数え方で揃えるのが分かりやすくなります。固定長の形式を扱う必要がある場合にだけ、もう一方を使います。


取り出した結果は文字列になる

先頭から数字を取り出した場合、結果は数値ではなく文字列になります。見た目は数字ですが、計算には使えません。

これが問題になるのは、取り出した値をキーとして検索に使う場合です。検索先が数値として入っていると一致しません。逆に、検索先も文字列なら一致します。型を揃える必要があります。

数値として使いたい場合は、数値に変換する関数で包みます。この一手間を忘れると、検索が該当なしになったり、集計から漏れたりします。

もうひとつ、先頭のゼロが意味を持つコードには注意が必要です。「0012」から先頭二文字を取り出すと「00」という文字列になります。これを数値に変換すると、ゼロになります。コードとして扱うなら、文字列のままにしておくべきです。

このように、切り出しの結果をどう扱うかは、その後の用途で決まります。切り出した直後に型を決めておくと、後の工程で迷いません。


実務での組み立て例

取り込んだデータから必要な部分を取り出す作業は、いくつかの型に分類できます。

固定長のコードから分類部分を取り出す場合は、単純に先頭から指定した文字数を取ります。桁数が仕様として決まっているなら、これで安定します。

区切り文字の手前を取り出す場合は、区切りの位置を検索してから切り出します。桁数が可変でも対応できます。

区切り文字が存在しない行がある場合は、エラーになります。検索の関数が位置を返せないためです。先に区切り文字が含まれているかを判定して分岐するか、エラー時の処理を書いてください。

複数の要素に分けたい場合は、区切り文字で分割する関数を使うほうが簡単です。一度に複数のセルへ展開できます。→ SPLIT関数の使い方

いずれの場合も、取り出した結果を作業列に置いておくのが基本です。数式の中で毎回切り出していると、どこで何をしているのか追えなくなります。


コードの設計が処理の難易度を決める

文字列から一部を取り出す処理が難しくなるかどうかは、そのコードがどう設計されているかで決まります。自分でコードを設計する立場なら、次の点を意識してください。

桁数を固定する

分類が一桁で足りると思っても、将来増える可能性があるなら二桁にしておきます。桁数が固定されていれば、位置で切り出せます。可変になると、区切り文字の位置を求める処理が必要になります。

区切り文字を入れる

桁数を固定できない場合は、要素の間に区切り文字を入れます。ハイフンやアンダースコアが一般的です。区切りがあれば、分割の関数で一度に分けられます。

区切り文字を要素の中に使わない

商品名にハイフンが含まれる可能性があるなら、区切りには別の記号を使ってください。要素の中に区切りと同じ文字があると、分割が意図どおりに動きません。

先頭にゼロを使うなら文字列として扱う

数値として保存すると先頭のゼロが消えます。桁数が意味を持つコードは、必ず文字列として管理してください。

要素の意味を混ぜない

一つのコードに分類と連番と年度を詰め込むと、どれか一つが変わったときに全体を作り直すことになります。可能なら列を分けて持ってください。

既存のコード体系は変えられないことが多いのですが、新しく作る場合はこの五点を押さえておくと、後の処理が格段に楽になります。


取り出した結果の検算

切り出しの処理は、間違っていてもエラーが出ません。想定と違う文字列が返るだけです。したがって、検算の仕組みが重要になります。

もっとも簡単なのは、元の文字数を確認する列を置くことです。想定した桁数と違う行があれば、そこで切り出しが失敗している可能性があります。

次に、切り出した結果の文字数も確認します。指定した文字数より短い結果が返っていれば、元のデータが短すぎるということです。

三つ目に、切り出した結果の種類を数えます。分類コードを取り出したなら、種類は限られているはずです。想定より多ければ、余計な文字が混ざっています。重複を除く関数で一覧を出せば、すぐに分かります。

四つ目に、マスタとの突き合わせです。取り出したコードがマスタに存在するかを判定すれば、該当なしの行が異常です。

これらの確認は、作業列を数本足すだけで済みます。一度作れば、取り込みのたびに機能します。切り出しの処理を含むシートでは、必ず入れておいてください。

「文字列」の関数を全体から見る

文字を加工する関数群です。同じカテゴリの関数は、つまずく場所も似ています。この記事のほかに31本あります。

記事
CHAR
CLEAN
CODE
CONCAT
CONCATENATE
EXACT
FIND
FIXED
HYPERLINK
IMAGE
JIS
LEN
LENB
LOWER
MID
NUMBERVALUE
PROPER
REGEXEXTRACT
REGEXMATCH
REGEXREPLACE
REPLACE
REPT
RIGHT
SEARCH
SPLIT
SUBSTITUTE
TEXT
TEXTJOIN
TRIM
UPPER
VALUE

このカテゴリで共通するつまずき

全角と半角、前後の空白、改行。この3つが原因のほとんどです。1つで理解した内容は、同じカテゴリの他の関数にもそのまま使えます。

どれを使うかの決め方

位置で取るのか、記号を目印に取るのかで使う関数が変わります。関数の一覧を眺めて選ぼうとすると、どれも当てはまるように見えて決まりません。

迷ったときは

→ 全関数の一覧 に目的別の索引があります。


数式を書く前の手順

先に決めておけば、書くのは数分で終わります。

1. 出したい結果を一文で書く

「何を、どの条件で、どんな形で出したいか」。この一文が書ければ、関数はほぼ決まります。書けないなら、まだ要件が固まっていません。

2. 元データの型を確認する

全角と半角、前後の空白、改行。この3つが原因のほとんどです。=ISNUMBER(A2) で数値かどうかを確認できます。見た目が同じでも、数値と文字列は別物です。

3. 空欄と0の扱いを決める

未入力なのか、実績が0なのか。表の意味が変わります。どちらとして扱うかを決めてから書いてください。

4. 条件の数を数える

位置で取るのか、記号を目印に取るのかで使う関数が変わります。将来条件が増える可能性があるなら、最初から複数条件に対応する形にしてください。

5. 共有先の環境を確認する

新しい関数は、古い環境で開くとエラーになります。社外に渡すファイルでは、この一点で選択肢が変わります。

6. 1行だけ書いて確認する

全行にコピーする前に、1行分の結果が正しいかを見てください。間違ったまま広げると、直す手間が増えます。


どの関数でも共通する確認

うまくいかないときに見る場所は、ほぼ決まっています。

参照を固定したか

下方向にコピーする数式では、動いてはいけない参照を固定します。上の数行だけ見て判断しないでください。ずれは下のほうで表面化します。

範囲の行数が揃っているか

複数の範囲を渡す関数では、行数がずれると結果が狂います。エラーにならず値が返るため、気づきにくい種類の間違いです。

型が揃っているか

=ISNUMBER(A2)

数値として入っているかを判定します。システムから書き出したデータでは、これが原因のことが多くあります。

前後に空白が入っていないか

=LEN(A2)&" / "&LEN(TRIM(A2))

数が違えば、余分な空白が入っています。見た目では判別できません。

別の方法で検算したか

同じ数字を別の関数でも出して、突き合わせてください。1つの結果だけを見ても、正しいかどうかは判断できません。

最終行まで確認したか

一番下までスクロールして、結果を見てください。途中から値が変わっていないかを確認します。


引き継ぐときに残すこと

数式は動いていても、意図は残りません。渡す前に、次の点をシート内にメモしてください。3分で終わります。

何を出している数式か

一行で構いません。読めば分かると思っても、数か月後の自分には分かりません。

どの表を参照しているか

参照先のシート名と、更新の担当。別ファイルなら、その場所も書いてください。

該当しないときの扱い

空欄にしているのか、文言を出しているのか、エラーのまま残しているのか。書いていないと、受け取った側は空欄をデータなしと読みます。

触ってはいけない場所

列を挿入すると壊れる数式がある場合、必ず書き残してください。この一行があるだけで、引き継ぎ後の事故が大きく減ります。

使った関数の対応環境

新しい関数を使っている場合、古い環境では開けません。共有の範囲が広がる可能性があるなら、明記してください。

確定した期間は値にする

締めた月の集計は、値貼り付けにしてください。参照元を消しても壊れなくなり、ファイルも軽くなります。

このサイトの収録状況

収録は201本です。カテゴリごとの内訳を出しておきます。

カテゴリ記事数
目的別51本
集計47本
文字列31本 ←この記事
日付19本
検索・参照15本
条件15本
機能12本
配列・抽出10本
関数一覧1本

探し方の順番

関数名が分かっているなら検索窓から。やりたいことだけ決まっているなら「目的別」から。近い関数を比べたいなら、同じカテゴリの一覧から入ってください。

記事の構成

どの記事も、書式・実例・つまずきやすいところ・似た関数との使い分けを同じ順番で並べています。1本読めば、他の記事も同じ場所を探せます。


よくある質問

Q. 文字数を省略するとどうなりますか

一文字だけが返ります。省略できることを知らずに書いている場合が多いのですが、意図せず省略すると想定外の結果になります。

Q. 指定した文字数より短い場合は

エラーにはならず、全体が返ります。四文字を指定して中身が二文字なら、二文字が返ります。

Q. 空白も一文字として数えますか

数えます。前後に空白が入っていると、位置がずれます。先に空白を落としてください。

Q. 取り出した数字で計算できません

文字列になっています。数値に変換する関数で包んでください。

Q. 全角文字が正しく取れません

数え方の種類を確認してください。全角を二として数える版と混在していると、ずれます。

Q. 区切り文字までを取りたいのですが

区切りの位置を検索する関数で求め、そこから一を引いた文字数を指定してください。

Q. 区切り文字がない行でエラーになります

検索の関数が位置を返せないためです。含まれているかを先に判定するか、エラー時の処理を書いてください。

Q. 末尾から取りたいのですが

末尾から取り出す関数があります。考え方は同じです。→ RIGHT関数の使い方



まとめ

  • 書式は =LEFT(文字列, 文字数)
  • 文字数が可変なら FIND と組み合わせる
  • 区切りが無い場合に備えて IFERROR で包む
  • 全角も半角も1文字として数える
  • 日付に使うとシリアル値が返る。TEXT を使うこと
  • パターンが複雑なら REGEXEXTRACT のほうが短い

関連する関数

LEFT でエラーが出たときの読み方

LEFT が返すエラーはほぼ #VALUE! の一種類です。 原因も限られているので、見る場所は3つで足ります。

2つ目の引数が数値になっていない

=LEFT(A2,B2) で B2 が文字列だと #VALUE! です。 B2に「3」と入っていても、文字列なら通りません。 =LEFT(A2,VALUE(B2)) か、B2側の型を直してください。

取り出す文字数を数式で出していて、負になった

=LEFT(A2,FIND("-",A2)-1) のような書き方で、 A2にハイフンが無いと FIND が #VALUE! を返し、そのまま伝わります。 ハイフンが無い行があるなら、先に有無を判定します。

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

取り出した結果を計算に使っている

LEFT の結果は必ず文字列です。 =LEFT(A2,4)*1 のように掛けるか、 VALUE で変換しないと、数値として扱えません。 年を取り出して比較したい、といった場面で引っかかります。

#VALUE! そのものの見つけ方は #VALUE!エラーの直し方にまとめています。

全角と半角が混ざる表での注意

LEFT は文字数で数えるので、全角も半角も1文字です。 バイト数で数えたいときは LENB と LEFTB を使いますが、 Googleスプレッドシートに LEFTB はありません。 環境をまたぐ表では、文字数で揃えるほうが安全です。