MID関数の使い方:文字列の指定した位置から数文字取り出す関数:Excel関数

MID関数の使い方:文字列の指定した位置から数文字取り出す関数:Excel関数

MID関数は、文字列を指定した位置から何文字か取り出す関数です。

文字列を指定した位置から取り出せるのが「MID関数」、左から取り出すのが「LEFT関数」、右から取り出すのが「RIGHT関数」と覚えてください。

MID関数の基本的な使い方

対応バージョン:Excel365 2019 2016 2013 2010

MID関数の書式です。

=MID(文字列,開始位置,文字数)
※カッコ内の「文字列,開始位置,文字数」を引数といいます。
※引数〔文字数〕は省略できます。

引数の説明

  • 〔文字列〕:取り出したい文字列を含むセルか文字列を指定
  • 〔開始位置〕:取り出す位置を指定。数値またはセルを指定
  • 〔文字数〕:取り出す文字数を指定。省略することもできます。ただし、省略すると〔開始位置〕から1文字を取り出します。

MID関数の使用例

下記サンプルは、A列に会員コードと氏名が合体した形で「ユーザー名」として入力されています。ここから、氏名の「姓」と「名」を別々に取り出して表示する例です。

MID関数で氏名から「姓」を取り出す

氏名から「姓」を取り出します。

=MID(A3,7,D3-7)

  1. MID関数の引数〔文字列〕にはユーザー名(A3セル)を指定。
  2. 引数〔開始位置〕は、ユーザー名の先頭のコード6桁を除くので「7」を指定。
  3. 引数〔文字数〕には、FIND関数で求めた区切り文字(空白)の位置から、氏名の先頭位置(先頭のコード6桁を除いた氏名の先頭位置)の「7」を引き算しています。

これでB列に「姓」が求まります。

ちなみに、D列の区切り文字(空白)の位置を求めるFIND関数は以下の通りです。

=FIND(“ ”,A3,7)

氏名から「名」を取り出す

次に、氏名から「名」を取り出します。

氏名から「名」を取り出す

=RIGHT(A3,LEN(A3)-D3)

氏名から「名」を取り出す場合は、RIGHT関数とLEN関数を組み合わせます。

RIGHT関数は文字列の右から何文字かを取り出す関数で、LEN関数は文字列の長さを返す関数なので、これらを組み合わせることで、可変位置の文字列も取り出すことが可能です。

  1. LEN関数で文字列(A列)の長さを求め、そこからD列の区切り文字(空白)の位置を引き算し、RIGHT関数で取り出す文字数を求めます
  2. RIGHT関数で「ユーザー名」から上記1.で求めた文字数を取り出します

これで、C列に氏名から「名」を取り出すことができます。

氏名から「姓」を取り出す(区切り文字(D列)を使用しない)

前述のサンプルは、一旦、ユーザー名の中の区切り文字(空白)をFIND関数で検索し、それを使って氏名から「姓」を抜き出していましたが、これらの作業をまとめて行うこともできます。

つまり、わざわざD列に区切り文字の位置を求めておく必要はないのです。

MID関数とFIND関数で氏名から「姓」を取り出す

=MID(A3,7,FIND(“ ”,A3,7)-7)

  1. FIND関数でA3セルの区切り文字(空白)を検索し位置を求める
  2. FIND関数の検索開始位置を「7」としているが、これは省略しても同じ結果になります
  3. MID関数でA3セルの先頭6桁を除いた「7」番目の位置から、「FIND関数で求めた区切り文字の位置-7」文字を取り出します

このように少し複雑になりますが、関数式を組み合わせて1行で書いてしまえば、別途、D列の区切り文字を設ける必要はなくなります。

取り出す文字列の位置や長さが固定されている場合は、もっと単純に関数を定義できますが、文字列の長さが異なる、取り出す位置が異なるような場合は、今回のサンプルを参考にしてください。

MID関数と同じ分類の関数

MID関数と同じ系列の関数は以下のページで探せます。

Excel関数カテゴリの最新記事