エクセルで、文字列の左から(先頭から)決まった文字数を取り出すには、LEFT関数を使います。たとえば、商品コード「AB-1023」の先頭2文字は、=LEFT(A3,2) で「AB」と取り出せます。
LEFTB関数は、文字数の代わりにバイト数で数えて、左から取り出します。全角の文字は2バイト、半角の文字は1バイトです。=LEFTB(A7,7) は「Excel関数」の左から7バイトの「Excel関」を取り出します。
区切り文字(ハイフンや空白)の前までを取り出したいときは、FIND関数と組み合わせます。この記事では、LEFT関数の基本、区切りの前まで取り出す方法、バイト数で数えるLEFTB関数、うまくいかないときの直し方を、1つの表で説明します。下の練習ツールで、元の文字列を書き換えて結果の変わり方を試せます。
LEFT関数・LEFTB関数の書き方
| 引数 | 入れるもの | ポイント |
|---|---|---|
| 文字列 | 取り出す元の文字列(セル番地) | 数値を指定しても、結果は文字列になります。 |
| 文字数 | 左から取り出す文字数 | 省略すると 1 文字です。元の文字数より多くても、エラーになりません。 |
LEFTB関数は、文字数の代わりにバイト数で数えます。日本語の環境では、全角の文字は2バイト、半角の文字は1バイトとして数えます。
まず動かしてみよう|この記事のサンプルをその場で試せます
練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。
LEFT関数の使い方|やりたいこと別の式
| やりたいこと | 式(例) | 結果 |
|---|---|---|
| 商品コードの先頭2文字 | =LEFT(A3,2) | AB |
| 住所の先頭3文字(都道府県) | =LEFT(A4,3) | 東京都 |
| 日付の文字列から年 | =LEFT(A5,4) | 2026 |
| ハイフンの前まで | =LEFT(A6,FIND(“-“,A6)-1) | TK |
| 先頭の7バイト | =LEFTB(A7,7) | Excel関 |
| 文字数を省略 | =LEFT(A8) | 山 |
| 取り出した数字を数値にする | =VALUE(LEFT(A10,2)) | 45 |

左から決まった文字数を取り出す
手順:C3 に LEFT の式を入れて Enter
商品コード「AB-1023」の先頭2文字を取り出します。 C3 に次の式を入力して、Enter キーを押します❶。
=LEFT(A3,2) A32青に元の文字のセル、オレンジに取り出す文字数を入れます。例:住所(B 列)の先頭3文字
=LEFT(B2,3) 
確認:左から2文字の「AB」が出た

答えは AB になりました❷。式は、次の順に計算しています。
- 「AB-1023」の左端から数える
⇒ A(1文字目)・B(2文字目) - 2文字ぶんを取り出す
⇒ AB
=LEFT(A4,3) で「東京都」は取れますが、「神奈川県」は4文字です。区切りの前まで取るときは、次の LEFT+FIND を使います。▶ この式(C3)を、練習ツールで試す / この式(C4)を、練習ツールで試す / この式(C5)を、練習ツールで試す
区切り文字の前までを取り出す(LEFT+FIND)
「TK-5501」のハイフンより前のように、長さが決まっていない部分を取り出すときは、FIND関数で区切り文字の位置を探し、その1つ手前までを LEFT関数で取り出します。
FIND関数はハイフンが 3 文字目にあることを返すので、3−1=2文字を取り出し、結果は TK です。氏名を姓と名に分けるときも同じ考え方です(姓と名に分割する方法)。FIND関数のくわしい使い方はFIND関数の使い方を参照してください。
練習用ファイルの表で試した結果です。=LEFT(A6,FIND("-",A6)-1) で、「TK-5501」の「-」より前の「TK」を取り出せました(③)。FIND で「-」の位置(3文字目)を探し、その1つ前までを LEFT で取り出しています。

バイト数で取り出す(LEFTB)
「Excel関数」は、半角の Excel が5バイト、全角の「関」「数」が2バイトずつです。=LEFTB(A7,7) は、左から7バイト(5バイト+2バイト)を取り出すので、結果は Excel関 です。
全角と半角が混ざったデータを、決まった「桁数(バイト数)」でそろえる必要があるときに使います。ふつうに文字数で取り出すなら、LEFT関数で十分です。
=LEFTB(A7,7) は「Excel関」でした(③)。半角の「Excel」が5バイト、全角の「関」が2バイトで、合わせて7バイトです。

文字数を省略したとき・多すぎるとき
文字数を省略すると、先頭の1文字だけを取り出します。=LEFT(A8) は「山田」の 山 です。文字数が元の文字列より多いときは、エラーにならず、ある分だけを返します。=LEFT(A9,5) は ab です。
▶ この式(C8)を、練習ツールで試す / この式(C9)を、練習ツールで試す
文字数を省略した =LEFT(A8) は「山」(②)、元より多い 5 文字を指定した =LEFT(A9,5) はエラーにならず「ab」でした(③)。

取り出した数字を計算に使う(VALUE)
LEFT関数の結果は、数字に見えても文字列です。数値「45678」の先頭2桁を取り出して計算に使うときは、VALUE関数で数値に戻します。
結果は数値の 45 です。文字列のままだと、右寄せにならなかったり、並べ替えが数値の順にならなかったりします(VALUE関数の使い方)。
VALUE で囲んだ C10 は右にそろった数値の 45(②)、VALUE なしの =LEFT(A10,2) は左にそろった文字の「45」です(③、比べるために練習用ファイルの表に D 列を足しました)。

LEFT関数がうまくいかないときの確認表
| 症状 | 考えられる原因 | 対処 |
|---|---|---|
| 「#VALUE!」になる | FIND関数で探す文字が見つからない/文字数がマイナス | 区切り文字が入っているか確かめる。IFERROR関数で、見つからないときの表示を決める。 |
| 取り出した数字で計算できない | 結果が文字列になっている | VALUE関数で数値に戻す。 |
| 日付から年が取れない | セルが本物の日付(シリアル値)になっている | YEAR関数を使う。LEFT関数だとシリアル値の先頭の数字が返る。 |
| 先頭に空白が入っている | 元のデータの前に空白がある | TRIM関数で空白を取ってから LEFT関数を使う。 |
| 全角・半角で文字数がずれる | LEFTB関数を使っている | 文字数で数えるなら LEFT関数を使う。 |
LEFT関数のよくある質問
右から取り出すには?
RIGHT関数を使います(RIGHT関数の使い方)。途中から取り出すときは MID関数です(MID関数の使い方)。
左から○文字を「削除」したいときは?
RIGHT関数と LEN関数を組み合わせて、残す部分を取り出します(左から・右から○文字削除する方法)。
LEFTB関数と LEFT関数の違いは?
LEFT関数は文字数、LEFTB関数はバイト数で数えます。日本語の環境では全角は2バイト、半角は1バイトです。全角と半角が混ざったデータをバイト数でそろえるときに使い、ふつうに文字数で取り出すなら LEFT関数で十分です。
LEFTB関数で全角文字の途中のバイト数を指定するとどうなりますか?
全角文字の途中(1バイト目)で区切られる位置を指定すると、その文字の代わりに空白が入ることがあります。バイト数は、全角文字の区切りに合わせて指定します。
あわせて読みたい:文字列を取り出す関連記事
練習用ファイル:練習用Excelファイル(.xlsx・無料)
