中級

【Excel】文字列の途中から、指定した長さの文字を抽出する(MID関数)


(約文字)

2016-02-24 2019-07-17

  • Keyword
  • Excel
  • 関数
  • 文字列
  • 途中から
  • 抽出
  • MID関数
【Excel】文字列の途中から、指定した長さの文字を抽出する(MID関数)

【Excel】文字列の途中から、指定した長さの文字を抽出する(MID関数)

  • 「エクセルで文字列の途中から文字を抽出する関数は?」
  • 「抽出した文字を組合せたいけどそのやり方は?」

これらを解決するのがMID関数です。

この記事を読めば、エクセルで文字列の途中から指定した長さの文字を抽出する疑問や問題を解決できます。

更に、文字列だけでなく数値の抽出の方法、MID関数で抽出した複数の文字列を組み合わせる方法、MID関数で文字列の右から抽出することの可否についても解説します。

説明に使ったエクセルファイルです。ダウンロードして自身の端末で確認してみてください。

1.【知識】文字列の途中から指定した長さの文字を抽出する

例えば、セルB3~B8列に日付がYYYYMMDDの形式で入力されていて、「B列に年」「C列に月」「D列に日」を抽出したい場合があります。

1.【知識】文字列の途中から指定した長さの文字を抽出する

人力で作業すると、とても時間がかかり、間違える可能性も高いです。

このように文字列の途中から指定した長さの文字を抽出するにはMID関数を使うと一瞬で正確に出来ます。

MID関数の読み方ですが、私は「ミッドカンスウ」と呼んでいます。

2.【知識】MID関数の構文(引数に指定する内容)

対応バージョン

  • 365
  • 2019
  • 2016
  • 2013
  • 2010
  • 2007

基本構文

MID関数の構文は、以下の様に指定します。

=MID(文字列,数値,数値)

引数1:文字列

引数1:文字列には、検索の対象となる文字列を指定します。

通常は対象の文字列が入力されたセル番地を指定します。(例えば「A1」など)

文字列を直接指定してもいいです(例えば「"文字列"」とダブルクォーテーションで括ります)。

文字列を返す数式(計算式や関数)を指定することもできます。

引数2:数値

引数2:数値には、抽出したい文字列の先頭文字の位置を指定します。 言いかえれば、前から何文字目を起点とするのかを指定します。

通常は抽出したい文字列の先頭文字の位置として数値を直接指定します。

数値を指定してあるセル番地でもいいです。

数値を返す数式(計算式や関数)の指定もできます。

引数3:数値

引数3:数値には、文字列から抽出する文字数を指定します。 言いかえれば、取り出したい文字の長さ(文字数))を指定します。

通常は抽出する文字数を数値で直接指定します。

数値を指定してあるセル番地でもいいです。

数値を返す数式(計算式や関数)の指定もできます。

3.【基礎】MID関数の基本的な使い方(数値を抽出する)

MID関数の基本的な使い方として、文字列の中でも数値の「20010816」から年、月、日をそれぞれ取り出してみたいと思います。

3-1.「年」を取り出す

3.【基礎】MID関数の基本的な使い方(数値を抽出する)「年」を取り出す

文字列(20010816)から年(2001)を取り出します。

  • ・引数1:取り出す対象の文字列が入っている「A2」とします。
  • ・引数2:取り出したい文字列の先頭文字の位置の「1」を指定します。
  • ・引数3:抜き出す取り出す文字列の長さの「4」を指定します。

この引数をMID関数に当てはまめると以下になります。

=MID(A2,1,4)

これで「2001」が取り出せました。

3-2.「月」を取り出す

3.【基礎】MID関数の基本的な使い方(数値を抽出する)「月」を取り出す

文字列(20010816)から月(08)を取り出します。

  • ・引数1:取り出す対象の文字列が入っている「A2」とします。
  • ・引数2:取り出したい文字列の先頭文字の位置の「5」を指定します。
  • ・引数3:抜き出す取り出す文字列の長さの「2」を指定します。

この引数をMID関数に当てはまめると以下になります。

=MID(A2,5,2)

これで「08」が取り出せました。

3-3.「日」を取り出す

3.【基礎】MID関数の基本的な使い方(数値を抽出する)「日」を取り出す

文字列(20010816)から日(16)を取り出します。

  • ・引数1:取り出す対象の文字列が入っている「A2」とします。
  • ・引数2:取り出したい文字列の先頭文字の位置の「7」を指定します。
  • ・引数3:抜き出す取り出す文字列の長さの「2」を指定します。

この引数をMID関数に当てはまめると以下になります。

=MID(A2,7,2)

これで「16」が取り出せました。

以上で「年(2001)」「月(08)」「日(16)」が、別々のセルに抽出できました。

後は、上記で指定した数式を他のセルにコピーしてください。

4.【基礎】MID関数の基本的な使い方(かなや英字を抽出する)

MID関数の基本的な使い方の二つ目として、文字列の「全角」と「半角」の場合を取り出してみたいと思います。

MID関数は数字だけでなく、ひらがな/カタカナ/漢字や英字も抽出できますが、注意点は全角でも半角でも1文字を「1」として数える所です。

4-1.ひらがな(全角文字)の抽出

4.【基礎】MID関数の基本的な使い方(かなや英字を抽出する)ひらがな(全角文字)の抽出

例えば、セルA2に入力された全角文字の”あいうえお”から”いうえ”を抽出したい場合は、以下の様に指定します。

  • ・引数1:検索対象の文字列が入力されたセル番地の”A2”を指定
  • ・引数2:抽出したい先頭文字の先頭からの位置の”2”を指定
  • ・引数3:抽出したい文字列の長さの”3”を指定

=MID(A2,2,3)

これで”いうえ”が抽出できました。

4-2.英文字(半角文字)の抽出

4.【基礎】MID関数の基本的な使い方(かなや英字を抽出する)英文字(半角文字)の抽出

例えば、セルA2に入力された半角文字の”ABCDE”から”BCD”を抽出したい場合は、以下の様に指定します。

  • ・引数1:検索対象の文字列が入力されたセル番地の”A2”を指定
  • ・引数2:抽出したい先頭文字の先頭からの位置の”2”を指定
  • ・引数3:抽出したい文字列の長さの”3”を指定

=MID(A2,2,3)

これで”BCD”が抽出できました。

ここでは大文字で説明しましたが、小文字も同様に可能です。

ひらがな・カタカナ・漢字などの全角文字を「2」、数字・英字などの半角文字を「1」、として数えたい場合は、MIDB関数を使います。

MIDB関数はMID関数の名前に”B”が付いたものですが、このBは”Byte(バイト)”の意味でコンピューターで1文字を表現する単位です。

ちなみに、MIDB関数の使い方はMID関数と一緒です。

5.【応用】MID関数で郵便番号に記号と横棒(ハイフン)を付ける

MID関数を応用すれば、郵便番号の変換も簡単です。

例えば、郵便番号が「1234567」の7桁でセルB3に入力されている場合を考えます。

①3桁と②4桁を抽出して、③3桁と4桁の途中にハイフンを付けて、④先頭に〒記号を付けて、「〒123-4567」としてみたいと思います。

5.【応用】MID関数で郵便番号に記号と横棒(ハイフン)を付ける

手順1

郵便番号の1文字目から3桁を取り出します。

=MID(B3,1,3)

手順2

郵便番号の4文字目から4桁を取り出します。

=MID(B3,4,4)

手順3

取り出した郵便番号3桁と4桁をハイフンで繋げます。

=MID(B3,1,3)&"-"&MID(B3,4,4)

手順4

最後に先頭に〒記号を付けます。

="〒"&MID(B3,1,3)&"-"&MID(B3,4,4)

これで「1234567」を「〒123-4567」とする事ができました。

5.【応用】MID関数で郵便番号に記号と横棒(ハイフン)を付ける

ちなみに郵便番号が7桁になったのは1998年(平成10年)2月2日で、これで効率よい配送が出来るようになったそうです。

また、郵便物に”カスタマーバーコード”を表示させると、郵便料金が安くなるようです。

6.【参考】MID関数で右から抽出することはできるか?

MID関数だけでは無理

MID関数は左から文字を数えて文字を抽出するのが基本なので、右から数えて抽出することはできません。

LEN関数を組み合わせればできるけど...

MID関数に、文字数をカウントする”LEN関数”を組み合わせると、文字列の右から数えて抽出が可能ですが、数式の指定が面倒です。

6.【参考】MID関数で右から抽出することはできるか?LEN関数を組み合わせればできるけど..

RIGHT関数を使えば簡単にできる

簡単なのはRIGHT関数を使えば、文字列の右から抽出することが出来ます。

6.【参考】MID関数で右から抽出することはできるか?RIGHT関数を使えば簡単にできる

ちなみにLEFT関数もあります。これはご想像の様に文字列の左から抽出することが出来る関数です。

7.【参考】LEFT関数/MID関数/RIGHT関数の比較

文字列を抽出できる3つの関数(LEFT関数/MID関数/RIGHT関数)を比較してみました。

種類引数の数抽出開始位置抽出方向抽出長さ
LEFT関数2先頭に固定されている左から右へ任意の長さを指定可
MID関数3任意に位置を指定できる左から右へ任意の長さを指定可
RIGHT関数2先頭に固定されている右から左へ任意の長さを指定可

MID関数は引数が多く面倒そうですが、汎用性が高くこれだけ覚えておけば、文字列の抽出にはほぼ対応できちゃいます。

私の場合だけかもしれませんが、右から抽出する事は、あまり多くないのかもしれません。

まとめ

このページでは、エクセルの「文字列の途中から、指定した長さの文字を抽出する(MID関数)」について、以下を解説してきました。

  • ・文字列の途中から指定した長さの文字を抽出するにはMID関数を使うのが便利
  • ・MID関数の構文は、対象となる文字列、前から何文字目を起点とするか、取り出したい文字の長さを指定する
  • ・MID関数の基本的な使い方として数値や文字列の抽出が可能
  • ・MID関数でハイフン無しの郵便番号にハイフン(横棒)を付けることが可能
  • ・MID関数のみで右から抽出は不可だが、LEN関数と組合せれば面倒だが可能。一番のおすすめはRIGHT関数を使う

ご理解いただけましたでしょうか?

次は、あなたが実際にエクセル上で実際に作業してみて下さい。 自分の手を動かすことが、パソコンスキル向上の近道です。

この記事は以上です。