【Excel】LEFT・RIGHT・MID関数で文字列の一部を取り出す方法

この記事は約5分で読めます。

今回は、ExcelのLEFT関数・RIGHT関数・MID関数を使って、セルの文字列から必要な部分だけを取り出す方法を紹介します。

この記事は、Windows版のExcel(Microsoft 365など)を前提にしています。3つの関数は古いバージョンのExcelやMac版、Web版でも同じ書式で使えます。記事の後半で触れるTEXTBEFORE関数などの新しい関数は、Microsoft 365など対応しているバージョンでのみ利用できます。

LEFT・RIGHT・MID関数の基本

3つの関数は、どれも「文字列のどこから何文字取り出すか」を指定する関数です。違いは取り出しを始める位置にあります。

LEFT関数:先頭から取り出す

=LEFT(文字列, 文字数)

文字列の先頭(左端)から、指定した文字数を取り出します。文字数を省略すると1文字だけ返します。

例:A2に「ABC-1234」と入力されている場合、=LEFT(A2,3)の結果は「ABC」です。

RIGHT関数:末尾から取り出す

=RIGHT(文字列, 文字数)

文字列の末尾(右端)から、指定した文字数を取り出します。こちらも文字数を省略すると1文字になります。

例:同じA2に対して=RIGHT(A2,4)とすると「1234」が返ります。

MID関数:途中から取り出す

=MID(文字列, 開始位置, 文字数)

指定した位置から、指定した文字数を取り出します。開始位置は先頭の文字を1として数えます。

例:A2に「20261003」と入力されている場合、=MID(A2,5,2)の結果は「10」です。

日本語の文字数の数え方

LEFT・RIGHT・MID関数は、全角文字も半角文字も1文字として数えます。「東京都港区」に=LEFT(A2,3)と指定すれば「東京都」が返ります。

バイト単位で数えたい場合は、LEFTB・RIGHTB・MIDBといった別の関数があります。通常の業務データでは文字単位の関数を使うほうが直感的に扱えるため、特別な理由がなければ文字単位の関数を選ぶとよいでしょう。

実務で使える取り出しの例

桁数が決まっているコードを分割する

商品コードや社員番号のように、桁数と構成が決まっているデータは、3つの関数だけで分割できます。たとえば「AB12345X」が「2文字の区分+5桁の番号+1文字の枝番」という構成なら、次のように指定します。

  • 区分:=LEFT(A2,2)
  • 番号:=MID(A2,3,5)
  • 枝番:=RIGHT(A2,1)

8桁の数字を日付に変える

「20261003」のような8桁の数字で日付が入力されているデータは、3つの関数とDATE関数を組み合わせると日付データに変換できます。

=DATE(LEFT(A2,4),MID(A2,5,2),RIGHT(A2,2))

年・月・日を取り出してDATE関数に渡すことで、並べ替えや日付計算に使える値になります。結果のセルには日付の表示形式を設定しておきましょう。

区切り文字の位置に合わせて取り出す

実際のデータでは、取り出したい部分の長さがセルごとに違うことがよくあります。その場合は、FIND関数やSEARCH関数で区切り文字の位置を求め、それを文字数や開始位置に使います。

区切り文字より前を取り出す

A2に「営業部-田中」のようにハイフン区切りのデータがある場合、ハイフンより前は次の式で取り出せます。

=LEFT(A2,FIND(“-“,A2)-1)

FIND関数がハイフンの位置を返すので、そこから1を引いた文字数を先頭から取り出すという考え方です。

区切り文字より後ろを取り出す

ハイフンより後ろは、LEN関数で全体の文字数を求め、ハイフンの位置を引いた分を末尾から取り出します。

=RIGHT(A2,LEN(A2)-FIND(“-“,A2))

2つの区切り文字に挟まれた部分を取り出す

「東京-本社-総務」のように区切り文字が2つある場合は、MID関数を使います。1つ目のハイフンの次の文字から、2つ目のハイフンの手前までを取り出す式は次のとおりです。

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

式が長くなるときは、FIND関数の部分だけを別の列で計算しておくと、途中の値を確認しながら組み立てられます。

FIND関数とSEARCH関数の違い

  • FIND関数は英字の大文字と小文字を区別します。
  • SEARCH関数は大文字と小文字を区別せず、ワイルドカードも使えます。

英字の区切り文字を探すときは、どちらを使うかで結果が変わる場合があるため、データに合わせて選びます。

うまくいかないときのチェックポイント

  • 取り出した数字が計算できない:3つの関数の結果は文字列です。数値として使う場合は、VALUE関数で囲むか、式の先頭に「–」を付けて数値に変換します。
  • #VALUE!エラーになる:FIND関数で探している区切り文字がセルに含まれていない可能性があります。IFERROR関数で囲み、見つからない場合の表示を決めておくと一覧が見やすくなります。
  • 余分なスペースが残る:元データの前後にスペースがあると、取り出し位置がずれます。TRIM関数で整えてから処理すると安定します。
  • 日付や数値のセルから取り出すと結果が違う:表示されている見た目ではなく、セルに保存されている値が対象になります。必要に応じてTEXT関数で文字列にしてから取り出します。

Microsoft 365で使える関連関数

Microsoft 365などの対応バージョンでは、区切り文字を指定して前後の文字列を取り出すTEXTBEFORE関数とTEXTAFTER関数も使えます。区切り文字の位置を自分で計算する必要がないため、式が短くなります。

ただし、ファイルを共有する相手が古いバージョンを使っている場合は正しく計算されないことがあります。共有先の環境がわからないときは、LEFT・RIGHT・MID関数とFIND関数の組み合わせを使っておくと互換性の面で安心です。

まとめ

LEFT・RIGHT・MID関数は、文字列の一部を取り出すための基本となる関数です。ポイントを振り返ります。

  • LEFTは先頭から、RIGHTは末尾から、MIDは指定位置から取り出す
  • 全角・半角に関係なく1文字として数える
  • 桁数が決まったデータは、3つの関数だけで分割できる
  • 長さが変わるデータは、FIND関数やLEN関数と組み合わせて位置を求める
  • 結果は文字列なので、計算に使うときは数値に変換する

まずは手元のデータで1つの関数から試し、慣れてきたらFIND関数との組み合わせに進むと、データ整理の幅が広がります。