どうも、くまおやぢです。
「フルネームから名字だけ取り出したい」「商品コードの一部だけ切り出したい」——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で切り出す」という構造は常に同じです。一度パターンを覚えると、あとは応用するだけです。
「覚える」より「使って慣れる」が近道です。まずは自分の業務にある実際のデータで試してみてください。試行錯誤できる回数が増えるほど、関数の感覚がつかめてきます。

コメント