ExcelのLEFT・MID・RIGHT関数の使い方|文字列抽出の基本から実務で使える組み合わせ技まで

どうも、くまおやぢです。

「フルネームから名字だけ取り出したい」「商品コードの一部だけ切り出したい」——Excelを使っていると、こういう場面が山ほど出てきます。

手でコピーして貼り直す?100件なら死にます。

そこで覚えておきたいのが、LEFT・MID・RIGHTの3兄弟です。


急いでいる人へ|3つの関数の使い分け早見表

やりたいこと使う関数構文
先頭から○文字取り出すLEFT=LEFT(文字列, 文字数)
途中の○文字目から取り出すMID=MID(文字列, 開始位置, 文字数)
末尾から○文字取り出すRIGHT=RIGHT(文字列, 文字数)

これだけ覚えれば、基本の文字列抽出はOKです。詳しい使い方・よくあるミス・実務で使える組み合わせ技は、以下で順番に解説します。


この記事でできること

  • LEFT・MID・RIGHT関数の構文と使い方を理解できる
  • それぞれの使い分けの判断基準がわかる
  • FIND・LENと組み合わせた、文字数が可変なデータへの対応ができるようになる
  • 「なぜか思い通りに抽出できない」つまずきポイントを事前に潰せる

01. そもそも文字列抽出が必要になる場面

Excelのデータは、きれいに整理された状態で届くことのほうが少ないです。

「山田 太郎」から名字だけ取り出したい、「A-001-東京」から「001」だけ抜きたい、「TEL: 03-1234-5678」から電話番号の部分だけ切り出したい——こういった作業は、手でやると地獄です。

しかも一度だけじゃなく、毎月・毎週繰り返す。

だから関数で自動化するんです。LEFT・MID・RIGHTは、そのための最初の武器です。

LEFT・MID・RIGHTの役割をざっくり理解する

3つの関数の役割は、名前のとおりです。

  • LEFT:文字列の左(先頭)から指定した文字数を取り出す
  • MID:文字列の任意の位置から指定した文字数を取り出す
  • RIGHT:文字列の右(末尾)から指定した文字数を取り出す

文字列をどこから切り出したいかで、使う関数が決まります。


02. LEFT関数の使い方|先頭から文字を切り出す

基本構文

=LEFT(文字列, 文字数)
  • 文字列:抽出したいデータが入ったセル(またはテキスト)
  • 文字数:先頭から何文字取り出すか

使用例1:名前から名字だけを抽出する

セルA1に「山田太郎」と入力されていて、「山田」だけ取り出したい場合。

=LEFT(A1, 2)

結果:山田

名字が2文字固定の場合はこれで一発です。ただし「一 太郎」(名字が1文字)や「徳川 家康」(スペース区切り)など、文字数がバラバラなデータには要注意。その場合はFINDと組み合わせる必要があります(→07章で解説)。

使用例2:商品コードの先頭1文字(区分コード)を取り出す

セルA2に「A-001-東京」という商品コードがあって、先頭の「A」だけ取り出したい場合。

=LEFT(A2, 1)

結果:A

商品の種別や区分が先頭1文字で表現されているコード体系は、現場でよく見ます。

よくあるミスと対処法

文字数を1つ間違える
「あいう」から「あい」を取りたいのに =LEFT(A1, 3) と書いて「あいう」が全部出てくる、というミスはあるあるです。実際にセルの文字を指で数えてから書く癖をつけると防げます。

全角・半角の混在に注意
LEFT・MID・RIGHTは「文字数」で数えます。「A」(半角)も「A」(全角)も1文字として数えます。見た目が同じでも、実際のデータが半角か全角かで結果が変わることがあるので、抽出がずれたら元データの全角半角を確認してください。


03. MID関数の使い方|途中の文字を切り出す

基本構文

=MID(文字列, 開始位置, 文字数)
  • 文字列:抽出したいデータが入ったセル
  • 開始位置:何文字目から取り出すか(1文字目=1)
  • 文字数:何文字取り出すか

LEFTやRIGHTと違い、どこから始めるかを自分で指定するのがMIDの特徴です。

使用例1:IDの中の数字部分だけを取り出す

セルA1に「AB-123-XY」という文字列があって、「123」だけ取り出したい場合。

=MID(A1, 4, 3)

結果:123

「AB-」が3文字なので、4文字目から3文字取り出す、という考え方です。

使用例2:住所から都道府県以降を取り出す

セルA2に「東京都新宿区西新宿1-1-1」という住所があって、「新宿区西新宿1-1-1」だけ取り出したい場合。

=MID(A2, 4, 100)

結果:新宿区西新宿1-1-1

「東京都」が3文字なので4文字目から始め、文字数は大きめ(100など)にしておくと末尾まで取れます。文字数を大きく指定しても、実際の文字数までしか返しません。

文字位置の数え方のポイント

MIDで一番つまずくのが「開始位置の数え方」です。

たとえば「AB-123-XY」なら:

A→1文字目
B→2文字目
-→3文字目
1→4文字目(← ここから取り出したい)

1文字目から数えて、取り出したい最初の文字が何番目か。これを正確に数えることが、MIDを使いこなすコツです。

実務では、位置が毎回変わる場合にFIND関数と組み合わせます(→07章)。


04. RIGHT関数の使い方|末尾から文字を切り出す

基本構文

=RIGHT(文字列, 文字数)
  • 文字列:抽出したいデータが入ったセル
  • 文字数:末尾から何文字取り出すか

使用例1:郵便番号の下4桁を取り出す

セルA1に「123-4567」という郵便番号があって、「4567」だけ取り出したい場合。

=RIGHT(A1, 4)

結果:4567

使用例2:ファイル名から拡張子を取り出す

セルA2に「report_2026.xlsx」というファイル名があって、「xlsx」だけ取り出したい場合。

=RIGHT(A2, 4)

結果:xlsx

ファイル名の一覧から拡張子を抽出して分類する、という作業でよく使います。

文字数が固定されていない場合は工夫が必要

RIGHT関数は「末尾から何文字」なので、文字数が一定のデータに最適です。

でも現実のデータは、ファイル名の長さもまちまち、コードの桁数もバラバラ、ということが多い。

そこで出てくるのが LEN関数との組み合わせです(→次章で詳しく解説)。


05. LEN関数と組み合わせる|文字数が可変なデータに対応する

LEN関数は、文字列の長さ(文字数)を返します。

=LEN(文字列)

例:=LEN("山田太郎")4

これをRIGHTやLEFTと組み合わせると、文字数がバラバラなデータにも対応できます。

使用例:「商品A1234」「商品BB56789」から数字部分だけ取り出す

先頭の「商品」という文字(2文字)を除いた残りを取り出したい場合。

=RIGHT(A1, LEN(A1) - 2)
  • LEN(A1):文字列全体の文字数
  • LEN(A1) - 2:先頭2文字(商品)を除いた文字数
  • RIGHT(A1, その数):末尾からその分を取り出す

「商品A1234」なら6文字 – 2 = 4文字 → 「A1234」が取れます。


06. FIND関数と組み合わせる|位置が固定されていないデータに対応する

FIND関数は、指定した文字が文字列の何文字目にあるかを返します。

=FIND(検索文字, 文字列, [開始位置])

例:=FIND("-", "AB-123-XY")3(3文字目に「-」がある)

MIDやLEFTと組み合わせると、位置が毎回違うデータからも目的の文字を取り出せます。

使用例1:スペース前の名字を取り出す(FIND + LEFT)

セルA1に「山田 太郎」(姓と名の間にスペース)があって、名字だけ取り出したい場合。

=LEFT(A1, FIND(" ", A1) - 1)
  • FIND(" ", A1):スペースが何文字目にあるか(例:3文字目)
  • - 1:スペースの手前まで
  • LEFT(A1, 2):先頭から2文字 → 「山田」

名字が何文字でも、スペースの前まで正確に切り出せます。

使用例2:「-」と「-」の間の文字を取り出す(FIND + MID)

セルA2に「ID-345-XYZ」があって、「345」だけ取り出したい場合。

=MID(A2, FIND("-", A2) + 1, FIND("-", A2, FIND("-", A2) + 1) - FIND("-", A2) - 1)

式が長くて怖く見えますが、やっていることはこうです。

  • 1つ目の「-」の位置を探す
  • その次の文字から開始
  • 2つ目の「-」の位置を探す
  • その手前までの文字数を取り出す

構造が一定のコード(「区分-番号-地域」など)から番号部分を抽出する、という場面でそのまま使えます。

💡 ネストが複雑に感じたら
作業列を使うのが現実的です。「1つ目の-の位置」「2つ目の-の位置」を別々のセルで計算して、最後にMIDに渡す。式を分割するだけで一気に見通しがよくなります。


07. 実務でそのまま使える組み合わせ技3選

ここからは、現場で「あ、これ使えた」と思った組み合わせをまとめます。

その1:特定の記号より前を取り出す(FIND + LEFT)

「区切り文字の前だけ欲しい」という場面で使います。

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

「2026/02/16」から「2026」だけ取り出す、「東京都/新宿区」から「東京都」だけ取り出す、など。

その2:特定の記号より後ろを取り出す(FIND + MID + LEN)

「区切り文字の後ろだけ欲しい」という場面で使います。

=MID(A1, FIND("@", A1) + 1, LEN(A1))

「user@example.com」からドメイン「example.com」だけ取り出す、という使い方です。LEN(A1) を文字数にしておけば、末尾まで全部取れます。

その3:複数のスペースやハイフンをまとめて処理する(SUBSTITUTE + MID)

文字列の中に同じ区切り文字が複数ある場合、N番目の区切り文字を基準に切り出す方法です。

たとえば「東京-新宿-西新宿」から「新宿」を取り出したい(2番目の「-」の前)場合。

=MID(SUBSTITUTE(A1,"-",REPT(" ",100)),101,100)

少し複雑ですが、「区切り文字をスペース100個に置き換えて、100文字ずつ取り出す」というアイデアで動きます。複数ある区切り文字のN番目以降を取りたいときの定番テクニックです。


08. よくある質問|思い通りに取れないときの確認ポイント

文字数を正しく指定しているのに取れない

全角・半角の混在を疑ってください。見た目は同じでも、データの実態が違うことがあります。LEN関数で実際の文字数を確認すると原因が見えます。

FIND関数が #VALUE! エラーになる

検索している文字が、対象の文字列に存在しない場合にこのエラーが出ます。スペースの全角・半角の違い、ハイフンの種類(「-」「-」「‐」など)が原因のことが多いです。

MIDで文字数を大きく指定したら余計な部分が入った

=MID(A1, 4, 100) のように大きな数字を指定しても、実際の文字数を超えて取り出すことはありません。余計な部分が入る場合は、開始位置が間違っている可能性が高いです。

数値が入ったセルに使ったら空白になった

LEFT・MID・RIGHTは文字列関数です。セルの値が「数値」として入力されていると、うまく動かないことがあります。=LEFT(TEXT(A1,"0"), 2) のようにTEXT関数で文字列に変換してから使うと解決します。


09. まとめ|「どこから取り出すか」で使う関数が決まる

LEFT・MID・RIGHTの使い分けは、シンプルです。

  • 先頭から取り出す → LEFT
  • 途中から取り出す → MID
  • 末尾から取り出す → RIGHT

そして、文字数やポジションが毎回変わるデータには、FIND・LENを組み合わせる。

最初は式が長くて複雑に見えますが、「FINDで位置を探す→LEFTかMIDで切り出す」という構造は常に同じです。一度パターンを覚えると、あとは応用するだけです。

「覚える」より「使って慣れる」が近道です。まずは自分の業務にある実際のデータで試してみてください。試行錯誤できる回数が増えるほど、関数の感覚がつかめてきます。


コメント

タイトルとURLをコピーしました