ExcelのLEFT・RIGHT・MID関数:セルから文字を抽出する方法
ExcelのLEFT、RIGHT、MID関数の使い方を徹底解説。LENやFINDを組み合わせて、コードや氏名、拡張子を自在に切り出すテクニックを紹介します。Microsoft 365の最新関数も網羅。
著者 Ayoub Farid · · 4 分で読めます
セルの中に入っている長い文字列(例:「INV-2026-0042」「Sam Lee」「report.xlsx」など)から必要な部分だけを取り出したいときは、3つの代表的なExcel関数が役立ちます。
基本的な使い方
=LEFT(text, num_chars)
=RIGHT(text, num_chars)
=MID(text, start_num, num_chars)
セルA2に「INV-2026-0042」と入力されている場合の例です。
| 数式 | 結果 |
|---|---|
=LEFT(A2,3) | INV |
=RIGHT(A2,4) | 0042 |
=MID(A2,5,4) | 2026 |
文字数がバラバラな場合:FINDとLENを組み合わせる
文字数を固定で指定する方法は、フォーマットが決まっている商品コードなどにしか使えません。氏名のように文字数が人によって異なる場合は、スペースの位置を検索して切り出します。
名(ファーストネーム)の抽出:
=LEFT(A2,FIND(" ",A2)-1)
姓(ラストネーム)の抽出:
=RIGHT(A2,LEN(A2)-FIND(" ",A2))
- FIND関数でスペースがある位置(先頭からの文字数)を取得します。
- LEN関数でセル全体の文字数を取得します。
ファイルの拡張子を抽出する
=RIGHT(A2,LEN(A2)-FIND(".",A2))
(※ピリオドが1つだけ含まれる場合を想定しています。「my.report.xlsx」のように複数のピリオドがある場合は、後述のTEXTAFTER関数を使用してください。)
抽出結果は「文字列」になる点に注意
=RIGHT(A2,4) で取り出した「0042」は、数値ではなく文字列として扱われます。数値として計算などに使いたい場合は、=VALUE(RIGHT(A2,4)) または =--RIGHT(A2,4) のように変換してください。
最新版のスマートな方法:TEXTBEFOREとTEXTAFTER
Microsoft 365やGoogleスプレッドシートでは、より直感的な新関数が利用可能です。
=TEXTBEFORE(A2," ") 最初のスペースより前(名)
=TEXTAFTER(A2," ") 最初のスペースより後(姓)
=TEXTAFTER(A2,".",-1) 最後のピリオドより後ろの文字列
数式が格段に読みやすくなります。データを複数の列へ一度に分割したい場合は、文字列の分割方法をご覧ください。
よくある質問
Excelで最初の単語だけを抽出するにはどうすればよいですか?
=LEFT(A2,FIND(" ",A2)-1) を使用します。Microsoft 365をお使いなら =TEXTBEFORE(A2," ") のほうが簡単です。
セルの末尾から4文字を取得するにはどうすればよいですか?
=RIGHT(A2,4) を使用します。
FIND関数で #VALUE! エラーが出るのはなぜですか?
検索対象の文字がセル内に存在しない場合に発生します。IFERROR関数で囲んでエラーを回避するか、元のデータに対象の文字が含まれているか確認してください。
FIND関数とSEARCH関数の違いは何ですか?
FIND関数は大文字と小文字を区別し、ワイルドカード文字は使えません。一方、SEARCH関数は大文字・小文字を区別せず、ワイルドカードを使用できます。