このページの本文へ移動
  1. ホーム >
  2. FMVサポート >
  3. Q&A・パソコン活用情報をコーナーから探す >
  4. エクセル関数塾 >
  5. 住所の一部を取り出せる?MID関数でセルの途中から文字を取り出そう

エクセル関数塾

第38回住所の一部を取り出せる?MID関数でセルの途中から文字を取り出そう

塾長!いつも当社のコーヒーをご愛用いただきありがとうございます。塾長のおかげで新入社員も順調に関数を利用できるようになっております。

さて、実は一つ困ったことがありまして……。本社から顧客住所データの一覧が送られてくるので、事務所で利用しやすいように区とそれ以降の住所を分けたいのですが、今まで教えていただいた関数ではできないようなのです。塾長のお知恵を拝借できませんでしょうか?

わしが、エクセル関数塾塾長!関 数之進(せきかずのしん)である!

おぉ、店長!いつもおいしいコーヒーをありがとう。頭も冴えてますます関数塾が充実しそうじゃ。

さて、元の表を見せてごらん?ほぉ、この表だと今まで紹介したLEFT / RIGHT関数だけでは力不足じゃな。このような表なら「MID関数」を使って、セルの途中から文字を取り出せるぞ。その技を極意書を使って説明しよう!

関数塾 極意書

MID関数で指定した位置から文字を取り出す

MID(ミッド)関数を利用すると、セルに入力されている文字の途中から任意の数の文字を取り出すことができます。LEFT関数やRIGHT関数はセルの左や右から任意の文字数を取り出すときに便利ですが、例えば住所には長短があるため、途中から文字を取り出すときはセルの右端や左端から文字数を指定しても正しく取り出せない場合があります。そこでMID関数を利用し、取り出す文字の開始位置を指定すると、開始位置から指定した文字数をセルに表示させることができます。

ここでは、MID関数の基本的な書式と機能について紹介します。

MID関数の書式

MID関数は次のように入力します。

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

引数は3つの引数を指定します。まず「文字列」にはMID関数で取り出したい元の文字やセル番号を指定します。「開始位置」は取り出したい文字の開始位置を数字で指定します。また、「文字数」には文字列から抜き出す文字の数を指定します。全角半角の区別はなく、どちらも1文字とカウントします。

MID関数はセルに入力されている文字列の指定した位置から文字を取り出すことができる関数です。MID関数は、[関数の挿入]ボタンをクリックして[関数の分類]で「文字列」を選択すると、関数が簡単に入力できます。 また、Excel2007、Excel2010、Excel2013では関数ライブラリの[文字列操作]からも選択できます。

今回の例では、C列に住所が入力されています。D列はLEFT関数で区名が取り出されています。ここではE列に住所から区名を除いた3文字目以降の文字列を取り出します。また、文字数は100文字以下なので「99」と指定してみましょう。

MID関数を入力する、セルE4をアクティブにし、[数式]タブの[関数の挿入]をクリックしている画面イメージ

MID関数を入力する、セルE4をアクティブにし、[数式]タブの[関数の挿入]をクリックします。

次へ

[関数の分類]で「文字列」を選択し、[関数名]で「MID」を選択して、[OK]ボタンをクリック
している画面イメージ

[関数の分類]で「文字列」を選択し、[関数名]で「MID」を選択して、[OK]ボタンをクリックします。

次へ

[文字列]に「C4」、[開始位置]に「3」、[文字数]に「99」を入力し、関数の引数ダイアログボックスの[OK]ボタンをクリックしている画面イメージ

[文字列]に「C4」、[開始位置]に「3」、[文字数]に「99」を入力し、関数の引数ダイアログボックスの[OK]ボタンをクリックします。

次へ

住所から3文字目以降の文字を取り出すことができた画面イメージ

住所から3文字目以降の文字を取り出すことができました。

次へ

セルE4の式をセルE15までコピーし、住所から町域取り出された画面イメージ

セルE4の式をセルE15までコピーします。住所から町域が求められました。

ステップアップ : 前の文字の長さに差がある場合は?

MID関数は指定した位置からの文字を抜き出すことができますが、例えば住所のデータから「区」の後の町域を取り出したいときに、区の名前が「港区」「葛飾区」「千代田区」などのように文字数が一定でない場合があります。

このようなときは、文字数の列を作成し、そこに文字数を入力することで、LEFT関数やMID関数で取り出す文字の長さや開始位置の変数として利用できます。

次の例のように区名の長さが変わるような場合、住所から取り出す区名の長さも町域の開始位置も変わります。文字数に区名の文字列の長さを入力すると、区名とそれに1文字加えた開始位置から町域を取り出すようにMID関数で式を入力してみましょう。

区名の文字数をD列に入力している画面イメージ

区名の長さをD列に入力しておきます。

次へ

セルE4に関数を入力している画面イメージ

セルE4をアクティブにして、次の式を入力します。

=LEFT(C4,D4)

次へ

セルE4の式をセルE21までコピーし、区名が正しく取り出せた画面イメージ

セルE4の式をセルE21までコピーします。区名が正しく取り出せました。

次へ

セルF4をアクティブにして、=MID(C4,D4+1,99)と入力する画面イメージ

セルF4をアクティブにして、次の式を入力します。

=MID(C4,D4+1,99)

次へ

セルF4の式をセルF21までコピーし、町域が正しく取り出せた画面イメージ

セルF4の式をセルF21までコピーします。町域が正しく取り出せました。

MID関数は、セルに入力されている文字列の途中から指定した文字数を取り出せる関数です。LEFT関数やRIGHT関数などの文字列関数と共に、セルの文字を自由に取り出すことができるようにすると、データがより有効活用できるようになります。

問題

次のような住所一覧の表を作成してみましょう。
次の表は、住所の一覧です。住所から市区と町域を分けてセルに表示させます。

住所から市区と町域が取り出されている画面イメージ

※ 以下の内容はパソコンをご覧になっている方を対象としています。
サンプルをご利用になる場合は、パソコンにて本ページをご覧ください。

問題に必要なエクセルのファイルをダウンロードしてください。
ダウンロードするには、下記のファイル名を右クリックして、メニューから「対象をファイルに保存」を選択してください。

mid-sample.xlsx(14KB)

本講座では、ファイルの保存先を《ドキュメント》としています。
ダウンロード方法がわからない場合は、下記ページをご参照ください。

答えを見る