ExcelのLEFT・RIGHT・MID関数を使えば、文字列の左端・右端・中間を1つの数式で抽出できます。3関数の構文と使い分けを理解すれば、請求書番号や顧客IDの整形作業を5分で自動化できます。この記事では基本構文から実務への応用まで体系的に解説します。

目次

この記事の結論

文字列抽出の選択基準は「どこから取るか」の1点に集約されます。左端ならLEFT、右端ならRIGHT、中間ならMIDを使い、構文は3関数とも「=関数名(文字列, 引数)」の形で統一されています。この3パターンを覚えるだけで、フリーランス業務で発生する文字列整形の多くに対応できます。

今日やるべき1つ

手元のExcelを開き、A1セルに「INV-2024-001」と入力して =LEFT(A1,3) を入力してください。「INV」が返れば、LEFT関数の動作確認完了です(所要時間:2分)。

状況別ショートカット

状況読むべきセクション所要時間
LEFT/RIGHT/MIDの違いを今すぐ知りたいLEFT RIGHT MIDは抽出位置で3分類3分
MIDの開始位置の数え方で迷っているMID関数は1始まりの位置指定で中間抽出3分
請求書番号や顧客IDを実際に分割したいフリーランス業務で使う文字列抽出は5パターン5分
どの関数を使えばいいか判断できない文字列抽出の関数選択を3分で診断3分
コピーしてすぐ使える数式がほしいLEFT RIGHT MIDは5つの仕組みで実務を自動化5分

LEFT RIGHT MIDは抽出位置で3分類

ExcelのLEFT・RIGHT・MID関数は、どれも「文字列の一部を取り出す」という目的で使いますが、取り出す位置が異なります。「どこから取るか」という1点で使い分けが完結するため、3つを同時に覚えると混乱しにくくなります。

LEFT関数は左端から指定文字数を返す

LEFT関数の構文は =LEFT(文字列, 文字数) です。第1引数に対象のセルまたは文字列を、第2引数に取り出したい文字数を指定します。たとえば =LEFT(“東京都新宿区”,3) と入力すると「東京都」が返ります。

LEFT関数が最も力を発揮するのは、先頭部分が固定パターンになっているデータです。郵便番号の上3桁・都道府県名・商品コードの分類記号など、「先頭N文字が意味を持つ」構造のデータであれば、1つの数式で一括処理できます。LEFT関数を使わずに手作業でコピーしている場合、100行のデータで約10分かかる作業が数秒で完了します。なお、請求書番号の付け方を統一しておくと、LEFT関数による自動分割がさらに効率的になります。

RIGHT関数は右端から指定文字数を返す

RIGHT関数の構文は =RIGHT(文字列, 文字数) です。LEFT関数と引数の構造は同一で、取り出す方向が右端に変わります。=RIGHT(“INV-2024-001”,3) と入力すると「001」が返ります。

RIGHT関数が有効なのは、末尾部分に情報が集約されているデータです。請求書の連番部分・電話番号の下4桁・ファイル名の拡張子などがこれに該当します。左端から数えるとデータごとに開始位置がばらつく場合でも、右端からなら常に固定文字数で取り出せるため、安定した抽出ができます。

MID関数は任意の開始位置から指定文字数を返す

MID関数の構文は =MID(文字列, 開始位置, 文字数) です。引数が3つある点がLEFTおよびRIGHTと異なります。=MID(“INV-2024-001”,5,4) と入力すると「2024」が返ります。3関数の中で唯一、文字列の中間部分を直接取り出せる関数です。

MID関数を使わないと、LEFT関数とRIGHT関数を組み合わせた複雑な入れ子式が必要になります。たとえば「INV-2024-001」から「2024」だけを取り出すには、MIDなら1つの数式で完結しますが、LEFTとRIGHTの組み合わせでは2段階の計算が必要です。中間部分の抽出にはMIDが直接的な解となります。

3関数の使い分けは「取り出す位置」で即決

関数取り出す位置構文引数の数
LEFT左端(先頭)=LEFT(文字列, 文字数)2
RIGHT右端(末尾)=RIGHT(文字列, 文字数)2
MID任意の位置(中間)=MID(文字列, 開始位置, 文字数)3

LEFTとRIGHTは引数が2つで構造が同一なため、片方を覚えればもう片方もすぐ使えます。MIDは引数が3つで「開始位置」が追加される点が唯一の違いです。この差分を押さえるだけで、3関数の使い分けに迷わなくなります。

CHECK

▶ 今すぐやること: 上記の表をExcelファイルの別シートにコピーし、構文列の数式を1つずつ実際に入力して動作確認する(5分)

Q: Google スプレッドシートでもLEFT・RIGHT・MID関数は使えますか?

A: はい、Google スプレッドシートでもまったく同じ構文で動作します。=LEFT(A1,3) のように入力すると、Excelと同一の結果が返ります。

Q: 文字数に0を指定すると何が返りますか?

A: 空文字列(””)が返ります。エラーにはなりませんが、実務では意味のない結果になるため、文字数は1以上を指定してください。

MID関数は1始まりの位置指定で中間抽出

MID関数の最もよくあるミスは「開始位置の数え方」です。Excelの文字列は先頭の文字を「1番目」として数えます。0始まりではなく1始まりです。この前提を確認してから式を作ると、位置ずれによるエラーがなくなります。

開始位置は左端の文字が常に1番目

=MID(“INV-2024-001”,5,4) でどうして「2024」が取れるのかを順を追って確認します。文字列「INV-2024-001」の各文字の位置は次のとおりです。

位置123456789101112
文字INV2024001

5番目の文字は「2」で、そこから4文字取ると「2024」になります。「INV-」が4文字のため、年号部分は必ず5番目から始まります。このように文字数を事前に数えてから開始位置を決めると、試行錯誤なしに正しい数式が書けます。

開始位置のミスを防ぐ3ステップ

開始位置を間違える原因の多くは「数え始める前に式を入力してしまう」ことです。正しい手順は3段階で完結します。まず対象の文字列を紙またはセルに書き出し、次に各文字に番号を振り、最後に取り出したい文字が何番目から始まるかを確認してから式に入力します。この確認作業は1分以内で完了し、後から式を直す手間を防ぎます。

見落としがちな点として、スペースや記号(ハイフン・スラッシュ・カンマ)も1文字としてカウントします。「INV-2024」のハイフンを「見えにくい文字」として飛ばして数えてしまうと、開始位置が1つずれてエラーになります。記号を含むデータでは特に注意が必要です。

文字数が変動するデータへの対応

取り出したい文字数が行によって変わる場合、文字数引数に固定値ではなくLEN関数を組み合わせます。たとえば5文字目以降をすべて取り出したい場合は =MID(A1,5,LEN(A1)) と書きます。LEN関数は文字列の総文字数を返すため、「5番目から最後まで」という意味の式になります。文字数が固定でないデータではこのパターンが実務で頻出します。なお、ExcelとGoogleスプレッドシートを併用している場合はExcelとスプレッドシートのSUMIF関数などの違いも合わせて確認しておくとスムーズです。

CHECK

▶ 今すぐやること: 手元のデータで取り出したい部分に番号を振り、開始位置と文字数を確認してからMID関数を入力する(3分)

Q: MIDで開始位置に文字列の長さを超える数値を指定するとどうなりますか?

A: 空文字列(””)が返ります。エラーにはならないため、式が動いているように見えても結果が空になっている場合は開始位置の値を確認してください。

Q: 開始位置に1を指定したMIDとLEFTは同じ結果になりますか?

A: =MID(A1,1,3) と =LEFT(A1,3) は同じ結果を返します。ただし先頭から取り出す場合はLEFTを使う方が式の読みやすさが向上します。

文字列抽出の関数選択を3分で診断

どの関数を使うか迷ったときは、次の質問に順番に答えるだけで使うべき関数が決まります。

「取り出したい部分は文字列の先頭にありますか?」Yesなら、LEFT関数を選んでください。Noであれば次の質問に進みます。

「取り出したい部分は文字列の末尾にありますか?」Yesなら、RIGHT関数を選んでください。Noであれば、取り出したい部分は中間にあるということになるため、MID関数を選んでください。

Q1: 先頭にある?Q2: 末尾にある?使う関数理由
YesLEFT左端から固定文字数を取り出す
NoYesRIGHT右端から固定文字数を取り出す
NoNoMID開始位置と文字数で中間を取り出す

判断に迷うのは「先頭でも末尾でもない」パターンです。このケースは必ずMIDで解決できます。MIDは文字列のどの位置でも開始位置として指定できるため、LEFTとRIGHTでは対応できないすべての位置に対応します。

CHECK

▶ 今すぐやること: 手元の整形したいデータを見て、上記の診断フローに当てはめて使う関数を1つ決める(2分)

Q: 先頭でも末尾でもなく、かつ位置が行によって変わる場合はどうしますか?

A: FIND関数またはSEARCH関数でセパレータ文字(「-」「/」「,」など)の位置を取得し、その値をMIDの開始位置引数に渡す方法が実務では標準的です。たとえば =MID(A1,FIND(“-“,A1)+1,4) のように組み合わせます。

Q: 全角文字と半角文字は文字数の数え方が異なりますか?

A: LEFT・RIGHT・MIDはすべて「文字単位」でカウントするため、全角・半角に関わらず1文字は1文字として数えます。バイト単位で処理したい場合はLEFTB・RIGHTB・MIDBを使います。

フリーランス業務で使う文字列抽出は5パターン

フリーランスが実際に扱うデータ(請求書番号・顧客ID・日付文字列・郵便番号・CSVの整形)での具体的な抽出パターンを整理します。

請求書番号から年・連番を分離する

請求書番号が「INV-2024-001」形式の場合、3つの部分(プレフィックス・年・連番)に分けて管理すると、年別の集計や連番の採番管理が容易になります。

プレフィックス「INV」は =LEFT(A1,3) で取得します。年「2024」は =MID(A1,5,4) で取得します。連番「001」は =RIGHT(A1,3) で取得します。この3つの数式をB・C・D列に並べると、1行の数式設定で全行に展開できます。月100件の請求書管理であれば、手動でのコピー作業を削減できます。売掛金管理をエクセルで自動化する際にも、この分割パターンが入金照合の基盤として機能します。

郵便番号から上3桁だけを取り出す

郵便番号「123-4567」から都道府県コードに対応する上3桁だけを取り出す場合は =LEFT(A1,3) で「123」が返ります。ハイフンを含む「123-4567」という8文字の文字列では、ハイフンも1文字としてカウントされます。下4桁を取り出す場合は =RIGHT(A1,4) で「4567」が返ります。ハイフンを除いた数字部分だけを取り出せるため、地域コードとの照合や集計処理の前処理として活用できます。

日付文字列から年・月・日を分離する

日付が「20240801」という8桁の文字列で管理されている場合、年・月・日を個別に取り出せます。年は =LEFT(A1,4) で「2024」、月は =MID(A1,5,2) で「08」、日は =RIGHT(A1,2) で「01」が返ります。この形式の日付データはCSV出力やシステム連携で頻出します。3つの数式を使うと、文字列の日付をExcelのDATE関数に渡せる形に変換できます。

顧客IDの分類コードを抜き出す

顧客IDが「A-CL-00123」のような形式(分類1文字・区切り2文字・連番5桁)の場合、分類コード「A」は =LEFT(A1,1) で、連番「00123」は =RIGHT(A1,5) で取り出せます。分類コードを取り出すと、顧客をカテゴリ別にフィルタリングする操作が1クリックになります。顧客管理シートで使うと、手作業での分類付けが不要になります。

CSV整形でセパレータを挟んだ中間値を取り出す

CSVデータのセル値が「田中太郎,営業部,東京」のようにカンマ区切りで複数の値を含む場合、MIDとFINDを組み合わせます。最初のカンマ以降の部分を取り出す式は =MID(A1,FIND(“,”,A1)+1,LEN(A1)) です。これで「営業部,東京」が返ります。さらに2番目のカンマまでを区切りとして部署名だけを取り出す場合は、FIND関数で2番目のカンマの位置を求める式を組み合わせます。CSVをそのままExcelに貼り付けて整形する作業で、列ごとの手動コピーを不要にできます。

CHECK

▶ 今すぐやること: 自分が毎回手作業で整形しているデータの1列を選び、LEFT・RIGHT・MIDのうち1つを使った数式を書いて適用する(5分)

Q: 対象セルが空の場合、LEFT/RIGHT/MIDはエラーになりますか?

A: エラーにはならず、空文字列(””)が返ります。ただしIF関数と組み合わせて =IF(A1=””,””,LEFT(A1,3)) のように書くと、空セルへの対応を明示でき、後から数式の意図が読みやすくなります。

Q: 文字列ではなく数値が入力されているセルにLEFT関数を使えますか?

A: LEFT関数は数値も文字列として処理するため、数式自体は動作します。ただし返り値が文字列になるため、返り値を数値として計算に使う場合は =VALUE(LEFT(A1,3)) のようにVALUE関数で変換が必要です。

LEFT RIGHT MIDは5つの仕組みで実務を自動化

ハック1: 入力規則が統一されたデータはLEFT/RIGHTで一括処理

【対象】: 請求書番号・商品コード・郵便番号など、フォーマットが固定されたデータを管理しているフリーランス

【手順】: データ列(例:A列)のフォーマットを確認し、先頭または末尾から何文字が意味を持つかを特定します(2分)。次にB1セルにLEFTまたはRIGHTの数式を入力し、1行目で結果を確認します(1分)。確認後、数式をB列全体にコピーして一括展開し、不要な元データ列を非表示にします(1分)。

【ポイント】: 「数式を使うより手動コピーの方が早い」と感じるのは10行以下のデータです。実際には数式を1行入れてコピーする方法は、10行を超えた時点で手動より速くなります。手動コピーは件数に比例して時間が増えますが、数式は件数が増えても追加コストがゼロです。フォーマットが固定されたデータであれば、100件と10,000件の処理時間が変わらない点が大きな強みです。

【注意点】: フォーマットが途中から変わっているデータに固定文字数の数式を使うと、フォーマット変更行だけ誤った値が取り出されます。その場合はFIND関数でセパレータ位置を動的に取得する方法に切り替えてください。

ハック2: 開始位置を手計算せずにFINDで自動取得

【対象】: セパレータ(ハイフン・スラッシュ・カンマ)を含む文字列から中間部分を抜き出したいフリーランス

【手順】: まずセパレータが何文字目にあるかをFIND関数で確認します。=FIND(“-“,A1) を別セルで入力して確認します(1分)。次に取り出したい部分の開始位置を「FIND関数の結果+1」として計算し、MIDの第2引数に FIND(“-“,A1)+1 を埋め込みます(2分)。文字数が固定なら数値で、可変ならLEN関数で対応し、式を完成させてコピーします(1分)。

【ポイント】: 手で数えた開始位置はデータが変わるたびに再計算が必要で、見落としも起きやすくなります。FINDで取得すると、データが変わっても開始位置が自動的に追従するため、式を直す手間が発生しません。

【注意点】: セパレータが存在しないセルにFIND関数を使うと #VALUE! エラーになります。混在データではIFERROR関数で =IFERROR(MID(A1,FIND(“-“,A1)+1,4),””) のように囲む対策が必要です。セパレータが常に存在すると確認できているデータ以外では、IFERRORを外さないようにしてください。

ハック3: LEN関数と組み合わせて末尾までをすべて取り出す

【対象】: 開始位置は固定だが、取り出す文字数が行によって異なるデータを扱うフリーランス

【手順】: 取り出す開始位置を決め、MIDの第2引数に固定値または算出式を入力します(1分)。次に第3引数(文字数)に固定値を入れず、LEN(A1) を代わりに入力します(1分)。実際の返り値が期待どおりかを3行分テストしてから全体にコピーします(2分)。

【ポイント】: 最大文字数を大きめに見積もって固定値で入力する方法は、文字列の長さが変わったときに意図しない結果を返す場合があります。LENで動的に文字数を取得すると、文字列の長さが変わっても常に正確な結果が返ります。=MID(A1,5,LEN(A1)) のように書くと「5番目から最後まで全部」という意図が式に直接表れるため、後から式を読んだときに意味がわかりやすくなります。

【注意点】: =MID(A1,5,LEN(A1)) の文字数はA1の全長になるため、実際には「全長-4文字分」だけ取り出される動きになります。「取り出す文字数=LEN(A1)」ではなく「開始位置から最後までの文字数」が正確な理解です。

ハック4: VALUE関数と組み合わせて数値計算に使える形に変換

【対象】: LEFT/RIGHT/MIDで取り出した値を合計・比較・条件判定に使いたいフリーランス

【手順】: まずLEFTまたはRIGHTまたはMIDで目的の文字列を取り出し、値が正しく返るかを確認します(2分)。確認後、全体をVALUE関数で囲んで =VALUE(LEFT(A1,4)) のように書き換えます(1分)。返り値が左揃えから右揃えに変わったことを確認し(数値化の証拠)、計算に使用します(1分)。

【ポイント】: LEFT/RIGHT/MIDの返り値をそのままSUMやIFに渡しても、文字列として返った値は数値計算で正しく扱われません。VALUE関数で数値型に変換してから計算に渡すと、集計・比較・VLOOKUP参照のすべてで安定した動作になります。VLOOKUP関数で別シートを参照する際にエラーが起きる場合も、データ型の不一致が原因のケースが多く、VALUE変換で解消できることがあります。

【注意点】: VALUE変換できるのは数字のみで構成された文字列に限られます。「2024年」「¥5,000」のような文字や記号が混在する文字列にVALUEを使うと #VALUE! エラーになります。変換前にSUBSTITUTE関数で余分な文字を取り除いてからVALUEに渡す手順が必要です。

ハック5: アンパサンドで再結合して整形済みデータを作る

【対象】: 分割した文字列を加工してから別の形式で結合し直したいフリーランス

【手順】: LEFT/RIGHT/MIDで各部分を別々のセルに取り出し、それぞれの返り値を確認します(3分)。次に結合したい形式を決め、=B1&”-“&C1&”-“&D1 のようにアンパサンドで連結する式を書きます(2分)。結合後の値が正しい形式になっているかを確認し、元の列と結合後の列の両方を保持してから元の列を非表示にします(1分)。

【ポイント】: 「分割と再結合を別の作業」として個別に処理するより、「分割で各部分を正規化し、再結合で最終形式を作る」という一連のパイプラインとして設計すると、データ整形が体系的になります。郵便番号を「123」と「4567」に分割してから「〒123-4567」形式に再結合する操作も、1列ごとの数式で完結します。この整形作業を個人事業主見積書や請求の書き方に応用すると、顧客コードや案件番号の自動生成にも活用できます。

【注意点】: アンパサンドで結合した結果は必ず文字列になります。結合後の値を数値として使いたい場合は再度VALUE変換が必要です。また、元のセルを削除すると参照エラーが発生するため、数式で参照しているセルは非表示にするにとどめ、削除しないように注意してください。

CHECK

▶ 今すぐやること: 今週中に手作業で繰り返している文字列整形作業を1つ特定し、上記5つのハックのうち1つを使った数式に置き換える(5分)

Q: LEFT関数とTEXT関数はどう使い分けますか?

A: LEFT関数は「文字列のうち先頭N文字を取り出す」用途で使います。TEXT関数は「数値を特定の書式文字列に変換する」用途で使います。日付を「2024/08/01」という文字列として取り出したい場合はTEXT関数が適切で、その文字列の先頭4文字(年)だけを取り出したい場合にLEFTを組み合わせます。

まとめ: LEFT RIGHT MID抽出は位置で即決

文字列抽出は「どこから取るか」の1点で使う関数が決まります。先頭ならLEFT、末尾ならRIGHT、中間ならMID、この3択だけ覚えれば多くのケースに対応できます。MIDの開始位置は1始まりの位置指定で、FINDと組み合わせると動的に取得でき、手計算ミスがゼロになります。

3関数の構文は今日から実際のデータで使い始めることで定着します。まず1つのデータ列に対して1つの数式を試し、次の週に別のデータに応用するサイクルを繰り返すと、3週間後には迷わず使えるようになります。COUNTIFで複数条件を扱う場面でも、LEFT/MIDで抽出した文字列を条件値として活用するパターンが実務では頻出します。

状況次の一歩所要時間
まだ1度も使ったことがないA1セルにサンプル文字列を入力してLEFT関数から試す5分
LEFTとRIGHTは使えるがMIDで迷う対象文字列に番号を振って開始位置を確認してからMIDを入力3分
数式は書けるが数値として計算に使えないLEFT/RIGHT/MIDをVALUE関数で囲んで数値変換を試す2分
セパレータ位置が変動して困っているFINDと組み合わせたMID式を1行書いてテストする5分

LEFT RIGHT MID抽出に関するよくある質問

Q: LEFTとRIGHTを同じデータに両方使う場合はどうしますか?

A: 両方使う場合は別々のセルに数式を入力します。=LEFT(A1,3) と =RIGHT(A1,4) をB列・C列に分けて入力すると、同じ元データから2つの部分を並行して取り出せます。1つのセルに両方を組み込む必要はありません。

Q: MID関数の第3引数(文字数)を省略できますか?

A: MID関数では文字数の省略はできません。省略するとエラーになります。文字数が不定の場合は LEN(A1) を第3引数に入力すると、実質的に「開始位置から末尾まで」の動作になります。

Q: LEFT・RIGHT・MIDで取り出した結果を別シートに貼り付けたいのですが、数式のまま貼るとエラーになります。どうすればいいですか?

A: 別シートに値だけを貼り付けたい場合は、コピー後に「形式を選択して貼り付け」から「値」を選ぶと数式が解除されて文字列として貼り付けられます。数式を別シートに持ち込む場合は参照先のシート名を =LEFT(Sheet1!A1,3) のように明示すると動作します。

【出典・参照元】

LEFT関数とRIGHT関数の使い方をわかりやすく解説 – Money Forward Biz

MID関数の解説 – Money Forward Biz

Excelの便利機能活用術 LEFT/MID関数 – NECネクサソリューションズ

Excel(エクセル)で特定の文字を抽出するLEFT関数、RIGHT関数 – Excel Camp

先頭からN文字を抜き出す・途中からN文字を抜き出す実践的整理 – note

LEFT/RIGHT/MIDの書式まとめ – note

LEFTは左端・RIGHTは右端・MIDは開始位置と文字数の実践解説 – note