cellio

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関数は大文字・小文字を区別せず、ワイルドカードを使用できます。

あわせて読みたい