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

執筆者:

カテゴリ:

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

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

書式

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

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

基本の使い方

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

=LEFT(A1, 3)   → ABC

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

実務ではこちらのほうが多くなります。区切り文字の位置を 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桁)

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

=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)

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

まとめ

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

関連する関数

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です