Menu

LEFT・RIGHT・MID関数の使い方: 文字列の一部を取り出す

=LEFT(A2,3)はA2の先頭3文字を、=RIGHT(A2,2)は末尾2文字を、=MID(A2,5,4)は5文字目から4文字を返します。長さが変わるときはFINDやLENと組み合わせます。

このページのシートはすべて実際に動きます。数値や数式を変えると再計算されます。

=LEFT(A2,3)はA2の文字列の先頭3文字を、=RIGHT(A2,1)は最後の1文字を、=MID(A2,5,4)は5文字目から4文字を返します。コードNYC-2041-Bなら、それぞれNYC、B、2041です。

コードを分解する
B2
ABCD
1CodeCityNumberSize
2NYC-2041-BNYC2041B
3LAX-1187-ALAX1187A
4SFO-3302-CSFO3302C
5BOS-0915-BBOS0915B
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

C2をクリックして5を4に変えてみてください。結果がハイフンから始まります。スペースや記号も1文字として数え、最初の文字の位置は1です。

構文

=LEFT(text, [num_chars])
=RIGHT(text, [num_chars])
=MID(text, start_num, num_chars)
  • LEFTとRIGHTのnum_chars(文字数)は省略でき、省略すると1になります。
  • 実際の文字数より多く指定してもエラーにはならず、文字列全体が返ります。=LEFT("Ann",10)はAnnです。
  • 文字数がマイナスになると#VALUE!になります。たとえば3文字より短い文字列に=LEFT(A2,LEN(A2)-3)を使った場合です。

長さが変わるとき: LEFT、RIGHT、MIDとFIND

コードの長さがすべて同じことはめったにありません。FINDで区切りの位置を探し、文字数は数式に計算させます:

ハイフンの前と後
B2
ABC
1CodeBefore the dashAfter the dash
2NY-2041NY2041
3BOSTON-15BOSTON15
4LA-30087LA30087
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。
  • FIND("-",A2)はハイフンの位置を返し、NY-2041では3です。
  • LEFT(A2,3-1)はその前の2文字を取り出します。
  • MID(A2,3+1,50)はハイフンの次から最大50文字を取り出します。どのコードよりも長いので、末尾まで届きます。

Microsoft 365とExcel 2024では、TEXTBEFORE(A2,"-")とTEXTAFTER(A2,"-")がもっと短い数式で同じ結果を返します。文字列の分割を参照してください。

先頭や末尾の文字を削除する

文字を取り除くには、残りを取り出します。LENで全体の長さを求め、取り除きたい分を引きます:

先頭や末尾の文字を取り除く
B2
ABC
1TextWithout first 3Without last 2
2ID-5821058210ID-582
3ID-77347734ID-77
4ID-120120ID-1
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。
下4桁
B2
AB
1CardLast four
24111 2222 3333 9876
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

やってみよう: B2で、A2のカード番号の最後の4文字を返してください。

コードから数字を取り出す

LEFT、RIGHT、MIDは、取り出した文字が数字でも常に文字列を返します。文字列の数字は数値のように見えますがSUMでは無視されるので、取り出した数字の合計が0になることがあります:

文字列の数字と数値
B2
ABC
1OrderMID (text)VALUE(MID)
2SO-0120-X0120120
3SO-0345-Y0345345
4SO-1000-Z10001000
5Total01465
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

B列はまだ文字列なので先頭の0が付いた0120を表示し、B5の合計は0です。C列はVALUEでそれぞれを変換していて、合計が正しく出ます。=--MID(A2,4,4)や=MID(A2,4,4)*1も同じように変換します。詳しくは文字列を数値に変換するを参照してください。

数量を取り出す
B2
AB
1ItemQuantity
2PK-045-BAG
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

やってみよう: 数量は2つのハイフンの間にあり、常に3桁です。B2で、合計できる数値として取り出してください。

よくある間違い: 日付にLEFTを使う

日付は数値として保存されているので、日付2026-03-15に=LEFT(B2,4)を使っても2026は返りません。返るのは、その日付の中身であるシリアル値46096の先頭4桁、4609です。

LEFTは日付の中の数値を読む
C2
ABCD
1EventDateLEFT(date,4)Year
2Launch2026-03-1546092026
32026
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

年を数値で取り出すならYEAR(B2)を、文字列で取り出すならTEXT(B2,"yyyy")を使います。ほかの部分はMONTH、DAY、それに"mmm"や"dd"を指定したTEXTで取り出せます。

よくある質問

Excelで先頭からN文字を取り出すには?

LEFTに文字数を指定します。=LEFT(A2,3)は先頭の3文字を返します。2つ目の引数を省いた=LEFT(A2)は最初の1文字だけを返します。

Excelで先頭や末尾の文字を削除するには?

LENを使って残りを取り出します。=RIGHT(A2,LEN(A2)-3)は先頭の3文字を、=LEFT(A2,LEN(A2)-2)は末尾の2文字を取り除きます。

MIDが返した数字を合計できないのはなぜですか?

LEFT、RIGHT、MIDは常に文字列を返し、SUMは文字列を無視するからです。VALUEかマイナス記号2つで数値に変えます:=VALUE(MID(A2,5,4))または=--MID(A2,5,4)。

Excelで特定の文字より前の文字列を取り出すには?

その文字の位置を探して1を引きます。=LEFT(A2,FIND("-",A2)-1)は最初のハイフンより前をすべて返します。Microsoft 365では=TEXTBEFORE(A2,"-")でも同じ結果になります。

Coddyのプログラミング言語のイラスト

Coddyでコードを学ぼう

始める