エクセル関数辞典 エクセル関数辞典

LEFT・RIGHT・MID関数の使い方|文字列の抽出方法

LEFT RIGHT MID 文字列抽出 Excel関数
広告スペース (article-top)

LEFT関数、RIGHT関数、MID関数は、文字列の一部を抽出するExcelの基本関数です。左端から、右端から、または中央の任意の位置から文字列を取り出せます。商品コードの分類記号の抽出、電話番号の市外局番の分離など、実務で頻繁に使われます。

各関数の基本構文

LEFT関数

=LEFT(文字列, [文字数])

文字列の左端(先頭)から指定した文字数分を抽出します。

RIGHT関数

=RIGHT(文字列, [文字数])

文字列の右端(末尾)から指定した文字数分を抽出します。

MID関数

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

文字列の指定した位置から指定した文字数分を抽出します。

引数の説明

引数説明必須/任意
文字列抽出元の文字列またはセル参照必須
文字数抽出する文字数。LEFT・RIGHTで省略すると1LEFT・RIGHTでは任意、MIDでは必須
開始位置抽出を開始する位置(1から数える)MIDのみ必須

実践例1:商品コードの分類記号を抽出

商品コード「PC-A001-BK」から各部分を抽出します。

先頭2文字(カテゴリ)を抽出する場合は次のようにします。

=LEFT(A2, 2)

結果は「PC」です。

末尾2文字(カラーコード)を抽出する場合はこうします。

=RIGHT(A2, 2)

結果は「BK」です。

中央の品番(4文字目から4文字)を抽出する場合は次の通りです。

=MID(A2, 4, 4)

結果は「A001」です。

実践例2:郵便番号の前半・後半を分離

「123-4567」形式の郵便番号を前半3桁と後半4桁に分けます。

前半3桁を取得する場合はこうします。

=LEFT(A2, 3)

結果は「123」です。

後半4桁を取得する場合は次のようにします。

=RIGHT(A2, 4)

結果は「4567」です。

実践例3:FIND関数と組み合わせた可変長の抽出

区切り文字の位置が一定でない場合、FIND関数で位置を検索してから抽出します。

メールアドレス「[email protected]」から@より前のユーザー名を抽出する例です。

=LEFT(A2, FIND("@", A2) - 1)

FIND関数が@の位置(5)を返し、そこから1を引いた4文字をLEFT関数で抽出します。結果は「user」です。

@より後ろのドメインを抽出する場合は次のように書きます。

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

LEN関数で全体の文字数を取得し、@の位置を引くことで、ドメイン部分の文字数を計算しています。結果は「example.com」です。

実践例4:日付文字列の分解

「20260601」のような8桁の日付文字列を年・月・日に分解します。

=LEFT(A2, 4)     ' 結果: "2026"
=MID(A2, 5, 2)   ' 結果: "06"
=RIGHT(A2, 2)    ' 結果: "01"

分解した値をDATE関数と組み合わせて日付型に変換することもできます。

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

実践例5:LEN関数との組み合わせ

文字列の末尾から特定の部分を除いた残りを抽出する例です。

ファイル名から拡張子を除いた部分を取得します。「report.xlsx」から「report」を抽出します。

=LEFT(A2, LEN(A2) - LEN(RIGHT(A2, LEN(A2) - FIND(".", A2))))  - 1)

この数式は複雑になるため、FIND関数を使ったシンプルな方法で記述します。

=LEFT(A2, FIND(".", A2) - 1)

結果は「report」です。ただし、ファイル名に複数のドットが含まれる場合は正しく動作しません。その場合はSUBSTITUTE関数と組み合わせるなどの工夫が必要です。

よくあるエラーと対処法

#VALUE!エラー

以下の場合に発生します。

  • 文字数に負の値を指定した場合: 計算結果が負にならないよう確認する
  • MID関数の開始位置が0以下の場合: 開始位置は1以上を指定する
  • FIND関数で検索文字が見つからない場合: FIND関数が#VALUE!を返し、それが伝播する

IFERROR関数で対処できます。

=IFERROR(LEFT(A2, FIND("@", A2) - 1), "形式エラー")

全角文字と半角文字の扱い

LEFT、RIGHT、MID関数は全角文字も半角文字も1文字として数えます。バイト数で処理したい場合は、LEFTB、RIGHTB、MIDB関数を使用します。

# 文字数ベース
=LEFT("エクセル", 2)    ' 結果: "エク"

# バイト数ベース
=LEFTB("エクセル", 2)   ' 結果: "エ"(2バイト=全角1文字)

数値が入ったセルの扱い

LEFT、RIGHT、MID関数は引数を文字列として処理します。数値が入ったセルを指定すると、自動的に文字列に変換されますが、書式設定(桁区切りなど)は反映されません。必要に応じてTEXT関数で事前に変換してください。

関連する文字列関数

関数用途
LEN文字列の文字数を返す
FIND特定の文字の位置を返す(大文字・小文字を区別)
SEARCH特定の文字の位置を返す(大文字・小文字を区別しない)
TRIM前後のスペースを除去する
SUBSTITUTE文字列の置換を行う

これらの関数と組み合わせることで、より柔軟な文字列処理が可能になります。

Google スプレッドシートでの互換性

LEFT、RIGHT、MID関数はGoogle スプレッドシートでも同じ構文で利用できます。LEFTB、RIGHTB、MIDB関数もサポートされています。FIND関数やLEN関数との組み合わせも同様に動作します。

まとめ

LEFT・RIGHT・MID関数は文字列から一部を抽出する基本関数です。

  • LEFT関数は先頭から、RIGHT関数は末尾から、MID関数は任意の位置から抽出する
  • FIND関数やLEN関数と組み合わせて可変長の文字列にも対応できる
  • 全角・半角を区別したい場合はLEFTB、RIGHTB、MIDB関数を使う
  • エラー処理にはIFERROR関数を組み合わせる

文字列の抽出はデータ整理の基本スキルです。コードの解析やデータのクレンジングで活用してください。

広告スペース (article-bottom)

あわせて読みたい