LEFT・RIGHT・MID・LEN関数で文字列を自在に操る|抽出・桁数チェック・分割の実務パターンとMOS試験対策

「LEFT関数とMID関数の違いがよくわからない」「郵便番号のハイフン前後を別セルに分けたい」「LEN関数で文字数を数えたら全角と半角の扱いが違った」——こうした疑問を持つ方に向けて、ExcelのLEFT・RIGHT・MID・LEN関数を基礎から実践まで体系的に解説します。

LEFT・RIGHT・MID・LEN関数はいずれも「文字列を操作するための基本関数」です。一見シンプルですが、抽出位置・文字数の考え方・全角半角の扱い・FIND関数との組み合わせを正確に理解していないと、「取り出せたと思ったら余分な文字が入った」「文字数チェックが半角だと正しく動かない」という事態に陥りがちです。本記事では4関数の構文を一覧で整理し、郵便番号・商品コード・住所・ファイル名の分割など業務別の実務活用例・FIND関数との組み合わせテクニック・MOS Excel 365試験の頻出パターンと攻略法まで、2026年最新版で徹底解説します。

「文字列操作を自在にこなして業務効率を上げたい」「MOS試験で確実に得点したい」という方は、ぜひ最後までご覧ください。

目次

LEFT・RIGHT・MID・LEN関数の基本構文と動作の仕組み

4つの関数はいずれも文字列を引数に取りますが、それぞれ「どこから何文字を取り出すか」という役割が異なります。まず全体像を把握してから詳細に進みましょう。

4関数の構文一覧

関数名構文取り出す位置例(”東京都新宿区”)
LEFT=LEFT(文字列, 文字数)左(先頭)から=LEFT(A1, 3) → “東京都”
RIGHT=RIGHT(文字列, 文字数)右(末尾)から=RIGHT(A1, 3) → “新宿区”
MID=MID(文字列, 開始位置, 文字数)任意の位置から=MID(A1, 4, 3) → “新宿区”
LEN=LEN(文字列)—(文字数を返す)=LEN(A1) → 6

LEFTとRIGHTは「どちら側から何文字」を指定する2引数の関数で、MIDは「どこから始めて何文字」を指定する3引数の関数です。LENは文字数を返すだけで文字の取り出しは行いません。これら4つを組み合わせると、文字列の分割・抽出・チェックのほぼすべての操作を実現できます。

全角・半角の扱い:1文字は全角でも半角でも「1」

LEFT・RIGHT・MID・LENはいずれも「文字数」で動作し、全角・半角に関わらず1文字=1カウントです。

関数入力例結果補足
=LEN(“ABC”)半角3文字3半角でも1文字=1
=LEN(“ABC”)全角3文字3全角でも1文字=1
=LEFT(“ABC123”, 3)半角混在“ABC”文字種に関わらず左から3文字

バイト数(半角=1バイト、全角=2バイト)で操作したい場合はLEFTB・RIGHTB・MIDB・LENBというバイト数版の関数が用意されています。固定長のテキストファイルや古いシステムとのデータ連携では、文字数版とバイト数版を使い分ける必要があります。

LEFT関数の使い方と実務活用例

LEFT関数は文字列の先頭(左側)から指定した文字数を抽出します。住所の都道府県部分、コードの分類番号など「先頭の固定長」を切り出す場面で頻繁に使います。

基本操作と引数の詳細

引数内容注意点
文字列操作対象の文字列またはセル参照数値を渡すと文字列として扱われる
文字数先頭から取り出す文字数(整数)省略すると1文字を返す。文字列の長さを超えると文字列全体が返る
  • =LEFT("東京都新宿区西新宿", 3) → “東京都”
  • =LEFT(A1, 2) → A1セルの先頭2文字を返す
  • =LEFT("ABC", 10) → “ABC”(文字列全体を返す。エラーにはならない)

実務例①:郵便番号ハイフン前の3桁を取り出す

「123-4567」形式の郵便番号が入ったセルから、ハイフン前の3桁だけを別セルに取り出したい場合は=LEFT(A1, 3)で解決できます。郵便番号は常に「3桁-4桁」の固定形式のため、LEFT関数で文字数を固定して抽出できます。

  • A1セルに “123-4567” → =LEFT(A1, 3) → “123”
  • ハイフン後の4桁を取り出す → =RIGHT(A1, 4) → “4567”

実務例②:商品コードの先頭分類番号を抽出する

「A-001-2026」のような商品コードから先頭の分類アルファベット「A」だけを取り出してフィルタリングや集計に使いたい場合は=LEFT(A1, 1)で1文字だけ抽出できます。分類番号が2文字なら=LEFT(A1, 2)のように文字数を調整します。

RIGHT関数の使い方と実務活用例

RIGHT関数は文字列の末尾(右側)から指定した文字数を抽出します。拡張子・電話番号末尾・年度末の月などを取り出す際に使います。

基本操作と引数の詳細

引数内容注意点
文字列操作対象の文字列またはセル参照
文字数末尾から取り出す文字数(整数)省略すると1文字を返す。文字列の長さを超えると全体を返す
  • =RIGHT("document.xlsx", 4) → “xlsx”(拡張子を抽出)
  • =RIGHT("03-1234-5678", 4) → “5678”(電話番号末尾4桁)
  • =RIGHT("2026/06/03", 2) → “03”(日付の「日」部分)

実務例①:ファイル名から拡張子を取り出す

ファイル一覧が入力されたExcelシートで、ファイルの種類(拡張子)でフィルタリングしたい場合があります。拡張子が4文字(.xlsx、.docx、.pptx)か3文字(.pdf、.csv、.txt)かによって取り出す文字数が変わりますが、固定長の場合は=RIGHT(A1, 4)=RIGHT(A1, 3)でシンプルに対応できます。

拡張子の文字数が不定の場合はFIND関数との組み合わせが必要になります(後述の「関数を組み合わせた高度な活用法」を参照)。

実務例②:電話番号末尾4桁を取り出して個人特定防止マスクを作る

顧客データの電話番号を共有するとき、「下4桁以外をマスクしたい」場合には=RIGHT(A1, 4)で末尾4桁を取り出し、REPT関数と組み合わせて「****-****-5678」のようなマスク文字列を作ることができます。

  • =REPT("*", LEN(A1)-4)&RIGHT(A1, 4) → 末尾4桁以外を「*」でマスク

MID関数の使い方と実務活用例

MID関数は文字列の任意の位置から指定した文字数を抽出します。LEFT・RIGHTで取り出せない「中間部分」を切り出すのがMIDの役割です。

基本操作と引数の詳細

引数内容注意点
文字列操作対象の文字列またはセル参照
開始位置抽出を始める文字の位置(1から始まる整数)1が先頭。0以下を指定するとエラーになる
文字数抽出する文字数文字列の末尾を超えた場合は末尾まで返す(エラーにはならない)
  • =MID("A-001-2026", 3, 3) → “001”(3文字目から3文字)
  • =MID("東京都新宿区西新宿", 4, 3) → “新宿区”(4文字目から3文字)
  • =MID("2026-06-03", 6, 2) → “06”(6文字目から2文字=月)

実務例①:住所から都市区市町村部分を抽出する

「東京都新宿区西新宿2-8-1」のような住所が入ったセルから都道府県部分(先頭3文字)を除いた部分を取り出す場合に、MID関数が役立ちます。

  • =MID(A1, 4, LEN(A1)-3) → 都道府県(先頭3文字)を除いた残り全体を返す

「LEN(A1)-3」とすることで都道府県以降の文字数を動的に計算しています。都道府県が2文字(「大阪府」は3文字だが「長野県」も3文字)の場合は、FIND関数と組み合わせて「都・道・府・県」の位置を検出する方法(後述)が確実です。

実務例②:日付文字列から年・月・日を個別に取り出す

「2026/06/03」のような日付文字列(数値ではなく文字列として入力されたもの)から年・月・日を個別に取り出したい場合に、MID関数で位置を指定して抽出できます。

  • 年(4文字):=LEFT(A1, 4) → “2026”
  • 月(「/」の後の2文字、6文字目から):=MID(A1, 6, 2) → “06”
  • 日(「/」の後の2文字、9文字目から):=MID(A1, 9, 2) → “03”

日付がExcelの日付シリアル値として入力されている場合は、YEAR・MONTH・DAY関数を使う方が確実です。MID関数は文字列データに対して使います。

LEN関数の使い方と実務活用例

LEN関数は文字列の文字数を整数で返します。直接文字を取り出す関数ではありませんが、「可変長文字列の処理」「入力チェック」「他の関数との組み合わせ」で欠かせない存在です。

基本操作と引数の詳細

入力例結果補足
=LEN(“東京都”)3全角3文字
=LEN(“ABC”)3半角3文字(全角と同じカウント)
=LEN(“123-4567”)8ハイフン含む8文字
=LEN(“”)0空文字列は0を返す
=LEN(A1)セルの文字数空白セルは0を返す

実務例①:入力桁数チェックで入力ミスを検出する

郵便番号(7桁、ハイフン除く)や電話番号(ハイフン含む固定桁数)が正しく入力されているかを確認する場合に、LEN関数とIF関数を組み合わせてチェック列を作れます。

  • =IF(LEN(A1)=8, "OK", "桁数エラー") → 郵便番号「123-4567」(8文字)かどうかをチェック
  • =IF(LEN(SUBSTITUTE(A1, "-", ""))=7, "OK", "桁数エラー") → ハイフンを除いた7桁かどうかをチェック

実務例②:LEN関数でRIGHT・MIDの文字数を動的に計算する

文字列の長さが変わる可能性があるデータで「先頭のN文字を除いた残り全部を取り出す」という処理をするとき、LEN関数を組み合わせることで動的に文字数を計算できます。

  • 先頭3文字を除いた残り全体:=RIGHT(A1, LEN(A1)-3)
  • 5文字目から末尾まで:=MID(A1, 5, LEN(A1)-4)

=RIGHT(A1, LEN(A1)-3)は「A1の全文字数からLEFTで除く3文字を引いた数」が残りの文字数になる、という計算です。文字列の長さが変わっても常に正しい結果を返します。

FIND関数と組み合わせた可変長文字列の抽出

LEFT・RIGHT・MIDは文字数を固定で指定する関数のため、区切り文字(スペース・ハイフン・スラッシュなど)の位置が変わるデータには単独では対処できません。FIND関数と組み合わせることで区切り文字の位置を動的に取得し、可変長の文字列でも正確に抽出できます。

FIND関数の構文

引数内容
検索文字列位置を調べたい文字(例:”/”、”-“、” “)
対象検索する文字列またはセル参照
開始位置(省略可)検索を始める位置(省略すると先頭から)

活用例①:スペース区切りの氏名から姓と名を分割する

A1セルに「山田 太郎」のようにスペースで区切られた氏名が入っている場合、姓(スペース前)と名(スペース後)を別々のセルに分割できます。

  • 姓を取り出す:=LEFT(A1, FIND(" ", A1)-1) → “山田”
  • 名を取り出す:=MID(A1, FIND(" ", A1)+1, LEN(A1)-FIND(" ", A1)) → “太郎”

FIND(" ", A1)がスペースの位置(3)を返すので、LEFT(A1, 3-1)で「山田」が取り出せます。名の抽出は「スペースの次の文字から末尾まで」なので、MIDの開始位置を「スペースの位置+1」にし、文字数を「全体の長さ-スペースの位置」とします。

活用例②:住所から都道府県を確実に分離する

都道府県名は「〇〇都・〇〇道・〇〇府・〇〇県」の4パターンがあり、文字数は2~4文字と可変です。FINDで「都」「道」「府」「県」の位置を検出し、見つかった位置まで取り出す方法が確実です。

  • =LEFT(A1, MIN(FIND({"都","道","府","県"}, A1&"都道府県"))) → 都道府県名のみ抽出

この数式は配列数式として「都」「道」「府」「県」それぞれの位置を検索し、最初に見つかった位置(MIN)までをLEFTで取り出します。A1の末尾に「都道府県」を仮につなぎ(A1&"都道府県")、検索文字が存在しない場合のFINDエラーを防いでいます。

活用例③:ファイルパスからファイル名だけを取り出す

「C:\Users\yamada\Documents\report.xlsx」のようなフルパスから「report.xlsx」だけを取り出す場合、最後の「\」の位置を検出してその後ろを抽出します。

  • =MID(A1, FIND("★", SUBSTITUTE(A1, "\", "★", LEN(A1)-LEN(SUBSTITUTE(A1, "\", ""))))+1, LEN(A1))

この数式は「A1に含まれる「\」の総数分、SUBSTITUTE関数でN番目の「\」だけ「★」に置換し、FINDで★の位置を検出してMIDで後ろを取り出す」という考え方です。複雑に見えますが「最後の区切り文字の後ろを取り出す」という典型パターンとして覚えておくと実務で役立ちます。

よくあるエラーと対処法

LEFT・RIGHT・MID・LEN関数でよくつまずくポイントを整理します。

#VALUE!エラーが出る原因と対処

関数・状況原因対処法
MIDの開始位置に0または負の値開始位置は1以上の整数が必要FIND関数の結果が0になるケースを除外するIF分岐を追加
FINDで指定文字が見つからない文字が存在しないとFINDは#VALUE!を返すIFERROR(FIND(…), 0)でエラーを0に変換してから使う
LENに数値セルを渡すと意図と違う数が返る数値はシリアル値に変換される場合があるTEXT関数で文字列に変換してからLENに渡す

FIND関数とSEARCH関数の違い

LEFT・MIDと組み合わせる際、FINDの代わりにSEARCH関数が使われることがあります。2つの違いは大文字・小文字の区別ワイルドカードの使用可否です。

関数大文字・小文字区別ワイルドカード使いどころ
FIND区別する使えない英字の大文字・小文字を区別して検索したい場合
SEARCH区別しない使える(?・*)大文字・小文字を区別せず、あいまい検索したい場合

日本語データの処理では大文字・小文字を意識する機会が少なく、どちらを使っても実質的な違いが出ないことが多いです。英文メールのドメイン抽出など英字処理では、FINDで正確に大文字・小文字を区別して検索する方が安全です。

MIDで「開始位置」の指定ミスで余分な文字や空白が入る

MIDの開始位置は「1文字目=1」から始まります。プログラミング経験がある方は「0始まり」に慣れているため、=MID(A1, 0, 3)のように0を指定してしまいがちですが、ExcelのMID関数では0を指定すると#VALUE!エラーになります。必ず1以上の整数を指定してください。

MOS Excel試験でのLEFT・RIGHT・MID・LEN関数の出題パターンと攻略法

MOS Excel 365試験では、文字列関数はデータの編集・書式設定カテゴリおよびデータの管理と分析カテゴリで出題される可能性があります。出題パターンと攻略ポイントを押さえましょう。

頻出問題の傾向

  • パターン1:指定セルにLEFT・RIGHT・MID関数を入力して特定部分を抽出する — 「A列のコードから先頭2文字を取り出してB列に表示しなさい」のように、どの関数を使うか・何文字目から何文字かを問われます
  • パターン2:LEN関数で文字数を確認し、条件付き書式や入力規則と組み合わせる — 文字数チェックの観点からIF関数やCOUNTIF関数との組み合わせが出題されることがあります
  • パターン3:FIND関数と組み合わせた可変長抽出 — 区切り文字の位置を検出してMID・LEFT・RIGHTで取り出す複合問題が出る場合があります

よくある間違いと対策

  • 間違い1:MIDの「開始位置」と「文字数」の引数順序を逆に覚える=MID(文字列, 開始位置, 文字数)という引数順を正確に暗記する。LEFT・RIGHTの「文字列・文字数」の2引数と混同しないよう注意
  • 間違い2:LENで全角・半角のカウントが異なると思い込む → ExcelのLENは全角・半角どちらも1文字=1カウント。バイト数が必要な場合はLENBを使うという使い分けを整理する
  • 間違い3:MIDの文字数に大きすぎる数を入れてエラーになると思う → MIDの文字数が文字列の残り文字数を超えても末尾まで返すだけでエラーにはならない。この仕様を活用すると「特定位置から末尾まで」を取り出すのにLEN(A1)を文字数に指定できる
  • 間違い4:FINDの結果をそのままLEFTの文字数に指定してしまう → FIND関数が返すのは「区切り文字の位置」であり、それをLEFTに渡すと区切り文字も含まれてしまう。区切り文字を除くにはFIND(...)-1として1を引く

試験前に確認するべき4関数の違いまとめ

関数引数の数取り出す位置「文字数」省略時
LEFT2(文字列・文字数)先頭から1文字
RIGHT2(文字列・文字数)末尾から1文字
MID3(文字列・開始位置・文字数)任意の位置から省略不可
LEN1(文字列)—(文字数を返す)

まとめ:LEFT・RIGHT・MID・LEN関数を使いこなすための要点

LEFT・RIGHT・MID・LEN関数はシンプルな構文ながら、組み合わせることで文字列の分割・抽出・チェックの幅広い処理をこなせます。使いこなすための要点をまとめます。

  • LEFT:先頭から固定文字数を切り出す。郵便番号前半・商品コード分類番号など「先頭固定長」に強い
  • RIGHT:末尾から固定文字数を切り出す。拡張子・電話番号末尾など「末尾固定長」に強い
  • MID:任意の位置から任意の文字数を切り出す。3引数(文字列・開始位置・文字数)の順序を確実に覚える
  • LEN:文字数を返す。単独では使いにくいが、RIGHT・MIDの文字数を動的に計算する組み合わせで真価を発揮する
  • 全角・半角は同じ1文字カウント。バイト数で処理するにはLEFTB・RIGHTB・MIDB・LENBを使う
  • 可変長文字列にはFIND関数と組み合わせる。区切り文字を取り込まないよう「FIND(…)-1」のマイナス1に注意する
  • MOS試験では引数の順序(特にMIDの3引数)・FINDとの組み合わせ時のマイナス1の有無が狙われやすいポイント

当サイトでは、Excel・Word・PowerPoint・AccessなどのOffice操作やMOS試験対策に関する情報を幅広く発信しています。ぜひ他の記事もご覧ください。

関連記事

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次