MID関数は、文字列を指定した位置から何文字か取り出す関数です。
文字列を指定した位置から取り出せるのが「MID関数」、左から取り出すのが「LEFT関数」、右から取り出すのが「RIGHT関数」と覚えてください。
MID関数の基本的な使い方
対応バージョン:Excel365 2019 2016 2013 2010
MID関数の書式です。
=MID(文字列,開始位置,文字数)
※カッコ内の「文字列,開始位置,文字数」を引数といいます。
※引数〔文字数〕は省略できます。
引数の説明
- 〔文字列〕:取り出したい文字列を含むセルか文字列を指定
- 〔開始位置〕:取り出す位置を指定。数値またはセルを指定
- 〔文字数〕:取り出す文字数を指定。省略することもできます。ただし、省略すると〔開始位置〕から1文字を取り出します。
MID関数の使用例
下記サンプルは、A列に会員コードと氏名が合体した形で「ユーザー名」として入力されています。ここから、氏名の「姓」と「名」を別々に取り出して表示する例です。

氏名から「姓」を取り出します。
=MID(A3,7,D3-7)
- MID関数の引数〔文字列〕にはユーザー名(A3セル)を指定。
- 引数〔開始位置〕は、ユーザー名の先頭のコード6桁を除くので「7」を指定。
- 引数〔文字数〕には、FIND関数で求めた区切り文字(空白)の位置から、氏名の先頭位置(先頭のコード6桁を除いた氏名の先頭位置)の「7」を引き算しています。
これでB列に「姓」が求まります。
ちなみに、D列の区切り文字(空白)の位置を求めるFIND関数は以下の通りです。
=FIND(“ ”,A3,7)
氏名から「名」を取り出す
次に、氏名から「名」を取り出します。

=RIGHT(A3,LEN(A3)-D3)
氏名から「名」を取り出す場合は、RIGHT関数とLEN関数を組み合わせます。
RIGHT関数は文字列の右から何文字かを取り出す関数で、LEN関数は文字列の長さを返す関数なので、これらを組み合わせることで、可変位置の文字列も取り出すことが可能です。
- LEN関数で文字列(A列)の長さを求め、そこからD列の区切り文字(空白)の位置を引き算し、RIGHT関数で取り出す文字数を求めます
- RIGHT関数で「ユーザー名」から上記1.で求めた文字数を取り出します
これで、C列に氏名から「名」を取り出すことができます。
氏名から「姓」を取り出す(区切り文字(D列)を使用しない)
前述のサンプルは、一旦、ユーザー名の中の区切り文字(空白)をFIND関数で検索し、それを使って氏名から「姓」を抜き出していましたが、これらの作業をまとめて行うこともできます。
つまり、わざわざD列に区切り文字の位置を求めておく必要はないのです。

=MID(A3,7,FIND(“ ”,A3,7)-7)
- FIND関数でA3セルの区切り文字(空白)を検索し位置を求める
- FIND関数の検索開始位置を「7」としているが、これは省略しても同じ結果になります
- MID関数でA3セルの先頭6桁を除いた「7」番目の位置から、「FIND関数で求めた区切り文字の位置-7」文字を取り出します
このように少し複雑になりますが、関数式を組み合わせて1行で書いてしまえば、別途、D列の区切り文字を設ける必要はなくなります。
取り出す文字列の位置や長さが固定されている場合は、もっと単純に関数を定義できますが、文字列の長さが異なる、取り出す位置が異なるような場合は、今回のサンプルを参考にしてください。
MID関数と同じ分類の関数
MID関数と同じ系列の関数は以下のページで探せます。