Excelで管理しているデータを効率的に抽出する際、抽出を開始する位置や抽出文字数を設定できるMID関数は役に立ちます。
ここでは、MID関数の意味や基本的な使い方から、「最後まで取り出す方法」や「数値、日付を対象とする方法」といった応用まで詳しくご紹介します。
MID関数とは
「MID」とは、「中央の」「中間の」といった意味を持つ言葉です。ExcelにおけるMID関数とは、「特定の文字列の指定した位置から、任意の文字数を取り出す」関数です。
式は「=MID(文字列, 開始位置, 文字数)」になります。
文字列……取り出す対象を含む文字列
開始位置……対象の文字列で取り出し始める位置
文字数……開始位置から取り出す文字数
全角半角問わず、1文字とカウントします。
MID関数のエラー
●開始位置
「0」、「負の数」を指定するとエラー値#VALUE!が返されます。また、対象の文字列より大きい数値を指定すると何も抽出しません。
●文字数
「負の数」を指定するとエラー値#VALUE!が返されます。また、0を指定すると何も抽出しません。
MID関数の使い方
例として、以下の図1にある表を用いて、MID関数の実際の使い方をご紹介します。セルB2に文字列「バンコク」を取り出す場面と想定します。
1. 関数挿入の準備
結果を表示するセル(B2)を選択し、関数の挿入ボタン「fx」をクリックします。
2. 関数の選択
挿入ウインドウが開くので、「関数の分類(C)」で「文字列操作」を検索し、「関数名(N)」の中から「MID」を選択して「OK」をクリックします。
3. MID関数の設定・実行
関数の引数ウインドウが開くので、「文字列」に「A2」、「開始位置」に「24」(セルA2において、「バンコク」は24文字目)、「文字数」に「4」を入力し、「OK」をクリックします。
以下の図4のように結果が表示されます。
対象の文字列を最後まで取り出すには?
任意の開始位置から最後まで文字列を取り出したいとき、「任意の開始位置から最後まで何文字あるか」を数えることは文字数が多いほど負荷になります。
その場合は、「実際の文字数よりも大きい数字」を文字数に設定しましょう。そうすると、MID関数で自動的に最後まで取り出してくれます。
数値や日付を対象にする場合
取り出したい対象が、文字列ではなく数値や日付のとき注意するポイントについてご紹介します。
数値
文字列ではなく数値が対象でも、MID関数で取り出すことができます。
しかし、数値の場合、Excelの方で数値演算が行われている可能性があります(11.9を四捨五入して12と表記するよう書式を設定するなど)。その場合、入力されている数字(12)ではなく、Excelに実質上認識されている数値(11.9)でもって、MID関数を適用します。
これでは、本来の狙いとは異なる処理(「12」ではなく「11」が表示される)が実行されてしまうので、セルの書式設定を数値ではなく文字列に変換しておくことが大切です。
日付
日付の場合は、より注意が必要です。「日付」(fx=2017/1/24など)としてセルに入力している場合、結果として返される値はシリアル値になってしまいます。
※シリアル値については、「エクセルで年月日を抽出して表示するDATE関数の使い方」の記事で解説しています。
日付を対象とする場合も、文字列(2016.01.24など)として管理しましょう。
まとめ
対象とする文字列が複数のセルに渡る場合、MID関数の「開始位置」として「セルの位置」も設定が可能です。
また、開始位置を文字列の「左」か「右」かに設定できる「LEFT関数」や「RIGHT関数」なども存在します。対象とするデータに応じて、最適な関数を選択しましょう。
エクセルで指定文字数の分だけ値を抜き出すLEFT関数の使い方|UX MILK