Excelで作業をしていると、セル内の文字列から必要な部分だけを取り出したい場面に頻繁に遭遇します。
顧客コードから地域番号を抽出したい、メールアドレスからドメイン部分だけを取得したい、商品名から型番を切り出したいなど、文字列の一部を効率的に抽出できれば、データ整理や分析の作業効率が大幅に向上します。
手作業で一つずつコピー&ペーストしていては時間がかかりすぎますし、ミスも発生しやすくなります。
文字列抽出には主にLEFT関数・MID関数・RIGHT関数という3つの関数が使われます。
これらは文字列の左側、中央部分、右側をそれぞれ取り出すシンプルな関数ですが、組み合わせ方や他の関数との併用によって、非常に強力なデータ処理ツールになります。
本記事では、LEFT・MID・RIGHT関数の基本的な使い方から、実務で役立つ実践的な活用テクニックまでを詳しく解説します。
関数の仕組みを理解し、業務での文字列処理を効率化したい方は、ぜひ最後までお読みください。
ポイントは
・LEFT関数は左から、RIGHT関数は右から指定文字数を抽出
・MID関数は開始位置と文字数を指定して中央部分を取得
・FIND関数やLEN関数と組み合わせると柔軟な抽出が可能
です。
それでは詳しく見ていきましょう。
LEFT関数で文字列の左側を抽出する基本
それではまず、文字列の左側から文字を取り出すLEFT関数の使い方を確認していきます。
LEFT関数の基本構文と使い方
LEFT関数は、文字列の先頭から指定した文字数だけを取り出す関数です。
構文は「=LEFT(文字列, 文字数)」という非常にシンプルな形式で、第1引数に対象となる文字列またはセル参照を、第2引数に取り出したい文字数を指定します。
例えば、A1セルに「東京都新宿区」という文字列が入っている場合、「=LEFT(A1, 3)」と入力すると「東京都」が抽出されます。
先頭から3文字を取り出すという指示になるためです。
第2引数を変更すれば、取り出す文字数を自由に調整できます。
LEFT関数の動作イメージ
元の文字列
LEFT(A1, 3)
左から3文字
LEFT関数は半角文字も全角文字も1文字としてカウントします。
したがって「ABC123」という文字列に対して「=LEFT(A1, 3)」を適用すると「ABC」が抽出され、「=LEFT(A1, 6)」とすればすべての文字が取得できます。
| 元の文字列 | 数式 | 結果 |
|---|---|---|
| 商品A-001 | =LEFT(A1, 3) | 商品A |
| 2024年11月 | =LEFT(A1, 4) | 2024 |
| 顧客No.12345 | =LEFT(A1, 6) | 顧客No. |
郵便番号や電話番号の市外局番を抽出
LEFT関数の実用的な活用例として、郵便番号や電話番号から特定部分を抽出するケースがあります。
例えば、「03-1234-5678」という電話番号から市外局番の「03」だけを取り出したい場合、「=LEFT(A1, 2)」とすれば抽出できます。
ただし、このケースでは「-」(ハイフン)の位置が固定されていない場合があります。
「03-1234-5678」と「045-123-4567」では、市外局番の桁数が異なります。
このような場合は、FIND関数と組み合わせて最初のハイフンの位置を特定し、その手前までを抽出する方法が有効です。
具体的には「=LEFT(A1, FIND(“-“, A1)-1)」という数式を使います。
FIND関数で最初のハイフンの位置を検索し、その位置から1を引いた文字数だけLEFT関数で取り出すという仕組みです。
これにより、市外局番の桁数が変わっても正確に抽出できます。
動的な文字数抽出のイメージ
電話番号1
→ 「03」
電話番号2
→ 「045」
共通の数式
=LEFT(A1, FIND(“-“, A1)-1)
顧客コードや商品コードの分類記号を取得
業務システムから出力されるデータでは、顧客コードや商品コードの先頭に分類記号が含まれていることがよくあります。
例えば「T-12345」の「T」が東京支店を表す、「A-9876」の「A」がAランク顧客を表すといったケースです。
このような場合、LEFT関数で先頭の1文字または数文字を抽出することで、分類ごとの集計や分析が可能になります。
「=LEFT(A1, 1)」とすれば先頭の1文字だけが取得でき、ピボットテーブルでの集計やVLOOKUP関数での参照に活用できます。
LEFT関数を使う際の注意点として、元の文字列に空白が含まれている場合があります。
「 東京都」のように先頭にスペースがあると、LEFT関数で取り出した結果にもスペースが含まれてしまいます。
このような場合は、TRIM関数で空白を削除してからLEFT関数を適用すると良いでしょう。
「=LEFT(TRIM(A1), 3)」のように組み合わせることで、不要な空白を除去した状態で抽出できます。
RIGHT関数で文字列の右側を抽出する方法
続いては文字列の右側から文字を取り出すRIGHT関数の使い方を確認していきます。
RIGHT関数の基本構文と特徴
RIGHT関数は、文字列の末尾から指定した文字数だけを取り出す関数です。
構文は「=RIGHT(文字列, 文字数)」で、LEFT関数と同じくシンプルな形式です。
第1引数に対象となる文字列またはセル参照を、第2引数に取り出したい文字数を指定します。
例えば、A1セルに「sample.xlsx」というファイル名が入っている場合、「=RIGHT(A1, 4)」と入力すると「xlsx」が抽出されます。
末尾から4文字を取り出すという指示になります。
拡張子の確認やファイル分類に便利な使い方です。
RIGHT関数の動作イメージ
元の文字列
RIGHT(A1, 4)
右から4文字
RIGHT関数もLEFT関数と同様、半角文字も全角文字も1文字としてカウントします。
また、第2引数に指定する文字数が元の文字列の長さを超えている場合は、文字列全体が返されます。
| 元の文字列 | 数式 | 結果 |
|---|---|---|
| report_2024.pdf | =RIGHT(A1, 3) | |
| 顧客-12345 | =RIGHT(A1, 5) | 12345 |
| 注文No.A-9876 | =RIGHT(A1, 4) | 9876 |
メールアドレスからドメインを抽出
RIGHT関数の実用的な活用例として、メールアドレスからドメイン部分を抽出するケースがあります。
ただし、メールアドレスは「@」の後ろの文字数が一定ではないため、固定の文字数では正確に抽出できません。
この場合は、LEN関数とFIND関数を組み合わせます。
「=RIGHT(A1, LEN(A1)-FIND(“@”, A1))」という数式を使うことで、「@」記号の位置を特定し、その後ろすべてを取り出すことができます。
LEN関数で文字列全体の長さを取得し、FIND関数で「@」の位置を検索し、その差分がドメインの文字数になるという仕組みです。
メールアドレスからドメイン抽出
元のメール
抽出結果
=RIGHT(A1, LEN(A1)-FIND(“@”, A1))
ファイルパスからファイル名だけを取得
フルパスからファイル名だけを抽出したい場合にも、RIGHT関数が活用できます。
例えば「C:\Users\Documents\report.xlsx」からファイル名「report.xlsx」だけを取り出すケースです。
この場合、最後の「\」記号の位置を特定する必要がありますが、FIND関数は最初に見つかった文字の位置しか返しません。
そこで、SUBSTITUTE関数で最後の「\」だけを別の記号に置き換えてから位置を検索する方法や、配列数式を使う方法があります。
実務では「=RIGHT(A1, LEN(A1)-FIND(“¥”, SUBSTITUTE(A1, “¥”, “¥”, LEN(A1)-LEN(SUBSTITUTE(A1, “¥”, “”)))))」のような複雑な数式が必要になることもあります。
RIGHT関数を使う際も、LEFT関数と同様に末尾の空白に注意が必要です。
データをインポートした際、文字列の末尾に不要なスペースが含まれていることがあります。
このような場合は、TRIM関数で空白を削除してからRIGHT関数を適用することをおすすめします。
また、数値として認識されるべきデータが文字列になっている場合は、RIGHT関数で抽出した後にVALUE関数で数値に変換すると良いでしょう。
MID関数で文字列の中央部分を自在に抽出
続いては文字列の任意の位置から文字を取り出すMID関数の使い方を確認していきます。
MID関数の基本構文と引数の意味
MID関数は、文字列の指定した位置から指定した文字数だけを取り出す関数です。
構文は「=MID(文字列, 開始位置, 文字数)」で、3つの引数を指定します。
第1引数は対象となる文字列、第2引数は抽出を開始する位置(左から何文字目か)、第3引数は取り出す文字数です。
例えば、A1セルに「ABCDEFGH」という文字列が入っている場合、「=MID(A1, 3, 4)」と入力すると「CDEF」が抽出されます。
3文字目から4文字分を取り出すという指示になります。
開始位置は1から始まることに注意が必要です。
MID関数の動作イメージ
元の文字列
位置: 12345678
MID(A1, 3, 4)
3文字目から4文字
MID関数の開始位置を1にすると、LEFT関数と同じ動作になります。
また、文字数を非常に大きな数値にすると、開始位置から末尾までのすべての文字が取得されます。
この性質を利用して、柔軟な文字列抽出が可能です。
| 元の文字列 | 数式 | 結果 |
|---|---|---|
| 2024-11-17 | =MID(A1, 6, 2) | 11 |
| 商品A-001-XL | =MID(A1, 5, 4) | -001 |
| TEL:03-1234-5678 | =MID(A1, 5, 2) | 03 |
日付形式の文字列から年月日を個別に抽出
MID関数の実用的な活用例として、日付形式の文字列から年・月・日を個別に取り出すケースがあります。
例えば「2024-11-17」という形式の日付から、年を「2024」、月を「11」、日を「17」として別々のセルに抽出したい場合です。
年を抽出するには「=LEFT(A1, 4)」または「=MID(A1, 1, 4)」、月を抽出するには「=MID(A1, 6, 2)」、日を抽出するには「=RIGHT(A1, 2)」または「=MID(A1, 9, 2)」という数式を使います。
このように、LEFT・MID・RIGHTを使い分けることで、固定形式の文字列から必要な部分を確実に取り出せます。
日付文字列の分解イメージ
元データ
2024-11-17
年
2024
LEFT(A1,4)
月
11
MID(A1,6,2)
日
17
RIGHT(A1,2)
商品コードや管理番号から特定部分を抽出
業務で使用する商品コードや管理番号は、複数の情報が組み合わされた形式になっていることが多いです。
例えば「ABC-2024-001-L」という商品コードがあり、それぞれ「メーカーコード-年度-連番-サイズ」を表している場合、MID関数を使えば各部分を個別に抽出できます。
メーカーコードを抽出するには「=LEFT(A1, 3)」、年度を抽出するには「=MID(A1, 5, 4)」、連番を抽出するには「=MID(A1, 10, 3)」、サイズを抽出するには「=RIGHT(A1, 1)」という数式を使います。
区切り文字の位置が固定されている場合は、このように開始位置を指定する方法が確実です。
ただし、区切り文字の位置が変動する場合は、FIND関数で区切り文字の位置を検索し、その結果をMID関数の開始位置として使用する必要があります。
例えば「=MID(A1, FIND(“-“, A1)+1, FIND(“-“, A1, FIND(“-“, A1)+1)-FIND(“-“, A1)-1)」のように、複数のFIND関数を組み合わせることで、2つ目のハイフンの間の文字列を抽出できます。
MID関数を使う際の注意点として、開始位置の指定ミスがあります。
文字列の1文字目は位置1、2文字目は位置2というように、0からではなく1から始まることを忘れがちです。
また、第3引数の文字数を大きく設定しすぎても、文字列の末尾まで取得されるだけでエラーにはなりませんが、意図しない結果になる可能性があります。
数式を作成したら、必ず複数のサンプルデータで動作を確認することをおすすめします。
まとめ 文字列抽出テクニック|LEFT・MID・RIGHT関数の実践活用術
エクセルの文字列抽出関数をまとめると
・LEFT関数:文字列の左側から指定文字数を抽出、郵便番号や顧客コードの先頭部分取得に活用
・RIGHT関数:文字列の右側から指定文字数を抽出、ファイル拡張子や末尾の番号取得に便利
・MID関数:任意の位置から指定文字数を抽出、日付分解や商品コード分析に最適
・FIND関数との組み合わせ:区切り文字の位置を動的に検索して柔軟な抽出が可能
これらの関数を適切に使い分けることで、手作業でのコピー&ペーストが不要になり、大量のデータ処理も一瞬で完了します。
特に固定形式のデータ処理では、LEFT・MID・RIGHTの基本的な使い方をマスターするだけで作業効率が大幅に向上するでしょう。
ただし、データ形式が統一されていない場合は注意が必要です。
複数の形式が混在するデータでは、IFERROR関数でエラー処理を追加したり、IF関数で条件分岐させることで、より堅牢な数式になります。
Excelの文字列抽出テクニックを活用して、データ整理の効率化を実現していきましょう!