Excelで大量のデータを扱っていると、「この文字列の一部だけを取り出したい」「数字の特定の桁だけを抽出したい」という場面に頻繁に遭遇するのではないでしょうか。
そんなときに活躍するのが、ExcelのLEFT関数・MID関数・RIGHT関数です。
これらの文字列操作関数をマスターすることで、手作業でのコピー&ペーストから解放され、データ処理のスピードが格段に向上するでしょう。
本記事では、【Excel】エクセルでの数字・文字列の一部を抽出する方法(関数・LEFT・MID・RIGHT関数の使い方も)について、具体的な使用例を交えながらわかりやすく解説していきます。
初心者の方でも迷わず使えるよう、関数の基本から応用テクニックまで丁寧にご紹介しますので、ぜひ最後までご覧ください。
Excelで文字列の一部を抽出するにはLEFT・MID・RIGHT関数が最適解
それではまず、Excelで文字列の一部を抽出するための方法全体像と、なぜLEFT・MID・RIGHT関数がその最適解といえるのかについて解説していきます。
Excelには文字列を操作するための関数が数多く用意されていますが、その中でも文字列の一部を抽出する用途に特化した代表的な関数がLEFT・MID・RIGHTの3つです。
それぞれの役割は以下のとおりシンプルに整理できます。
| 関数名 | 抽出する位置 | 主な用途例 |
|---|---|---|
| LEFT関数 | 文字列の左端(先頭)から | 都道府県名の抽出、コードの先頭部分の取り出し |
| MID関数 | 文字列の任意の位置から | 住所から市区町村名を取り出す、IDの中間部分の抽出 |
| RIGHT関数 | 文字列の右端(末尾)から | 電話番号の下4桁取り出し、ファイル拡張子の抽出 |
これらの関数は単体でも非常に便利ですが、FIND関数やLEN関数と組み合わせることでさらに柔軟な抽出が可能になります。
手作業での文字列加工は入力ミスのリスクが高く、データ量が増えるほど作業時間も膨大になってしまうでしょう。
関数を使えば一度設定するだけで、大量のデータにも即座に対応できるのが大きな魅力です。
LEFT関数の基本と書式
LEFT関数は、文字列の左端(先頭)から指定した文字数を取り出す関数です。
書式は以下のように非常にシンプルな構造になっています。
=LEFT(文字列, 文字数)
例:=LEFT(“東京都新宿区”, 3) → 「東京都」を返す
第1引数には対象となるセルや文字列を指定し、第2引数には先頭から何文字を取り出すかを数値で指定します。
たとえば住所データから都道府県名だけを抽出したい場合などに、大変重宝する関数です。
MID関数の基本と書式
MID関数は、文字列の任意の位置から指定した文字数を取り出す関数です。
LEFT・RIGHTが「端から」の抽出であるのに対し、MIDは「どこからでも」抽出できる柔軟性を持っています。
=MID(文字列, 開始位置, 文字数)
例:=MID(“AB-12345-CD”, 4, 5) → 「12345」を返す
第2引数の「開始位置」は1から始まるため、左端の文字が1番目という数え方になります。
IDコードや商品番号など、決まった位置に特定の情報が含まれているデータの加工に非常に役立つでしょう。
RIGHT関数の基本と書式
RIGHT関数は、文字列の右端(末尾)から指定した文字数を取り出す関数です。
LEFT関数とちょうど逆の動きをするイメージで覚えておくと理解しやすいでしょう。
=RIGHT(文字列, 文字数)
例:=RIGHT(“report2024.xlsx”, 4) → 「xlsx」を返す
ファイル名の拡張子部分を取り出したり、電話番号の末尾4桁を抽出したりする用途で活用されることが多い関数です。
末尾から一定の文字数が決まっているデータに対して、特に威力を発揮します。
LEFT・MID・RIGHT関数の具体的な使い方と実例
続いては、LEFT・MID・RIGHT関数の具体的な使い方と実践的な使用例を確認していきます。
基本的な書式を覚えたら、実際にどんな場面でどのように活用するのかをイメージしながら読み進めてみてください。
住所データから都道府県名を抽出する(LEFT関数の活用)
業務データでよくあるのが、住所が1つのセルにまとまって入力されているケースです。
たとえばA列に「東京都新宿区西新宿1-1-1」という住所が入っている場合、都道府県名だけを取り出したいときにLEFT関数が活躍します。
=LEFT(A2, 3)
「東京都新宿区西新宿1-1-1」→「東京都」
※「北海道」「神奈川県」など文字数が異なる場合はIF関数やFIND関数と組み合わせが必要
都道府県名が3文字で統一されているデータであれば、LEFT(A2, 3) だけで一括抽出が可能です。
「北海道」のように3文字の場合も含め、多くの都道府県は3文字で抽出できるでしょう。
ただし「神奈川県」「和歌山県」「鹿児島県」は4文字になるため、その点は注意が必要です。
商品コードの中間部分を取り出す(MID関数の活用)
商品管理などで使われる「AB-20240101-001」のような複合コードから、日付部分だけを抜き出したいケースを考えてみましょう。
=MID(A2, 4, 8)
「AB-20240101-001」→「20240101」
開始位置:4文字目(「2」の位置)、文字数:8文字
このように、コードの構造が決まっているデータに対してMID関数は非常に強力です。
開始位置と文字数さえ把握できれば、どのような位置からでも必要な情報を切り出せるでしょう。
電話番号の末尾4桁を抽出する(RIGHT関数の活用)
顧客データなどで電話番号の末尾4桁だけを使いたい場面でも、RIGHT関数が役立ちます。
=RIGHT(A2, 4)
「090-1234-5678」→「5678」
ハイフンを含む電話番号から末尾4桁を取り出す場合、RIGHT関数は末尾から数えるため、文字列全体の長さを気にせず使えるのが大きなメリットです。
郵便番号の下3桁、年月日の末尾2桁(日付)など、末尾の文字数が固定されているデータに幅広く応用できるでしょう。
FIND関数・LEN関数との組み合わせでさらに高度な抽出が可能
続いては、LEFT・MID・RIGHT関数をFIND関数やLEN関数と組み合わせることで実現できる、より高度な文字列抽出の方法を確認していきます。
文字数が一定でないデータや、区切り文字の位置によって抽出範囲が変わるデータを扱う際には、これらの関数の組み合わせが不可欠です。
FIND関数で区切り文字の位置を特定する
FIND関数は、指定した文字が文字列の何文字目にあるかを返す関数です。
LEFT・MID・RIGHTと組み合わせることで、固定文字数ではなく区切り文字を基準にした動的な抽出が可能になります。
=FIND(検索文字列, 対象文字列, [開始位置])
例:=FIND(“-“, “AB-20240101-001”) → 3(「-」が3文字目にある)
たとえば「姓 名」のようにスペースで区切られた氏名から姓だけを取り出したい場合、以下のような数式が有効です。
=LEFT(A2, FIND(” “, A2) – 1)
「山田 太郎」→「山田」
スペースの位置を自動検出し、その1文字手前までを抽出
FIND関数を活用すると、データの長さや区切り位置が違っても自動で対応できる柔軟な数式が作れます。
LEN関数で文字列全体の長さを把握する
LEN関数は文字列の文字数を返す関数で、RIGHT・MIDと組み合わせることで「後ろから○文字目以降」を動的に抽出することが可能です。
=LEN(文字列)
例:=LEN(“Excel関数”) → 8(文字数を返す)
たとえば「@」より後ろのドメイン部分をメールアドレスから取り出したい場合は以下のように記述します。
=MID(A2, FIND(“@”, A2) + 1, LEN(A2) – FIND(“@”, A2))
「tanaka@example.com」→「example.com」
LEN関数で総文字数を把握し、FIND関数で特定文字の位置を求めることで、文字数が異なるデータにも柔軟に対応できるでしょう。
複数の関数を組み合わせた実践的な応用例
ここまでの知識を組み合わせると、より複雑なデータ加工も関数だけで対応できるようになります。
たとえば「東京都-新宿区-西新宿」のようにハイフンで区切られた住所から「新宿区」だけを取り出したい場合を考えてみましょう。
=MID(A2, FIND(“-“, A2) + 1, FIND(“-“, A2, FIND(“-“, A2) + 1) – FIND(“-“, A2) – 1)
「東京都-新宿区-西新宿」→「新宿区」
1つ目の「-」と2つ目の「-」の間の文字列を抽出
関数の組み合わせが複雑になるほど数式は長くなりますが、「どの位置から」「何文字分を」取り出すかという基本的な考え方は変わりません。
LEFT・MID・RIGHT関数の第2・第3引数にFINDやLENの結果を代入する、というシンプルな発想で組み立てられるでしょう。
数字を文字列として扱う際の注意点とよくあるエラーの対処法
続いては、数字を文字列として扱う際の注意点や、LEFT・MID・RIGHT関数を使う上でよく起こるエラーとその対処法について確認していきます。
関数の書き方が正しくても、データの形式やセルの設定によって意図した結果が得られないケースは少なくありません。
数値データには文字列変換(TEXT関数)が必要な場合がある
LEFT・MID・RIGHT関数は基本的に文字列に対して機能する関数のため、セルに数値として入力されているデータに対しては意図した結果が返らないことがあります。
たとえば「20240101」という数値からLEFT関数で「2024」を取り出そうとしても、そのままでは数値として認識され、正しく動作しない場合があるでしょう。
このような場合はTEXT関数を使って数値を文字列に変換してから処理するのが有効です。
=LEFT(TEXT(A2, “0”), 4)
数値「20240101」→文字列「20240101」に変換→「2024」を抽出
セルの表示形式が「数値」になっているデータを扱う際は、TEXT関数との組み合わせを検討すると問題を回避しやすいでしょう。
よくあるエラーとその対処法一覧
LEFT・MID・RIGHT関数を使っていると遭遇しやすい代表的なエラーとその原因・対処法を以下の表にまとめました。
| エラーの種類 | 主な原因 | 対処法 |
|---|---|---|
| #VALUE! | 文字数に負の数や文字が指定されている | FIND関数の結果が正しいか確認し、数値になるよう調整する |
| 空白が返る | 対象セルが空白または文字数に0が指定されている | IFERROR関数でエラー時の表示を設定する |
| 意図しない文字が返る | 全角・半角の混在、スペースの有無 | TRIM関数やASC関数で文字列を正規化してから処理する |
| 数値が返らない | 抽出した文字列が文字列形式になっている | VALUE関数で数値に変換する |
エラーが発生したときは焦らず、各引数の値をステップごとに確認していくのが最も確実な対処法です。
IFERROR関数でエラー表示をスマートに回避する
データによっては、FIND関数で検索した文字が存在しない場合に#VALUE!エラーが発生することがあります。
そのような場合はIFERROR関数を外側に組み合わせることで、エラー発生時の代替表示をきれいに設定できます。
=IFERROR(LEFT(A2, FIND(“-“, A2) – 1), A2)
「-」が含まれない場合はA2のセル内容をそのまま返す
IFERROR関数はあらゆる数式と組み合わせて使える汎用的なエラー対策関数です。
複雑な文字列操作を行う数式では、必ずIFERRORを組み合わせておくことで、予期せぬデータが入った場合でもシートが見やすい状態を保てるでしょう。
まとめ
本記事では、Excelで文字列・数字の一部を抽出する方法として、LEFT関数・MID関数・RIGHT関数の基本的な使い方から、FIND関数・LEN関数との組み合わせ、エラー対処法まで幅広く解説しました。
3つの関数の特徴を改めて整理すると、LEFT関数は先頭から、MID関数は任意の位置から、RIGHT関数は末尾からそれぞれ文字列を抽出するという役割分担になっています。
どの関数も書式はシンプルで覚えやすいため、まずは基本的な使い方から試してみることをおすすめします。
さらにFIND関数やLEN関数と組み合わせることで、文字数が一定でないデータや区切り文字を基準にした抽出など、より実務的なシーンにも対応できるようになるでしょう。
エラーが発生した場合はIFERROR関数や数値・文字列変換を活用しながら、ひとつひとつ原因を確認していくのが着実な解決への近道です。
これらの関数をうまく活用して、Excelでのデータ加工をよりスマートに、効率よく進めていきましょう。