更新日:、 作成日:
エクセル MID 関数:文字列の途中から抽出する
はじめに
エクセルの MID 関数の使い方を紹介します。
MID 関数は文字列の途中 (何文字目) から指定した文字数を抽出します。
=MID("ABCDE",2,3) のようにして、BCD を取得できます。
=MID("ABCDE",2,LEN("ABCDE")) のようにして、2 文字目から最後までの BCDE を取得できます。
=MID("ABCDE",LEN("ABCDE")-開始位置+1,1) のようにして、開始位置を後ろからの位置として指定できます。
特定の文字で囲まれた範囲を抽出できます。
MID 関数の引数
MID(文字列, 開始位置, 文字数)
文字列の開始位置から文字数分を取得します。
引数「文字列」 | 抽出元の文字列を指定します。 | スピル化 |
引数「開始位置」 | 何文字目から抽出するかを指定します。 | スピル化 |
引数「文字数」 | 抽出する文字数を指定します。 | スピル化 |
スピル化:セルの範囲や配列を指定すると結果が「スピル」します。
使い方
MID 関数の使い方を紹介します。
2 文字目から 3 文字を抽出する
セル「B3」の 2 文字目から 3 文字を抽出します。
開始位置と文字数を指定して抽出する
12345 の開始位置から指定した文字数を抽出します。
最後の文字まで抽出する
12345 の開始位置から最後まで抽出します。「LEN 関数」を使用して文字数を取得できます。
スポンサーリンク
高度な使い方
MID 関数と他の関数を組み合わせた使い方などを紹介します。
後ろから抽出する
引数「開始位置」に 文字数 - 開始位置 + 1 のように入力して、開始位置を後ろから指定できます。「LEN 関数」を使用して文字数を取得できます。
後ろから何文字目まで抽出する
引数「文字数」に 文字数 - 終了位置 - 開始位置 + 2 のように入力して、後ろから何文字目の終了位置を指定できます。「LEN 関数」を使用して文字数を取得できます。
特定の文字の範囲を抽出する
12[45]78 から [] で囲まれた 45 を抽出します。
「FIND 関数」を使用して、特定の文字の位置を取得できます。引数「開始位置」に 開始検索位置 + 1 を入力し、引数「文字数」に 終了検索位置 - 開始検索位置 - 1 を入力して、特定の文字で囲まれた範囲を抽出できます。
12_45_78 のように同じ文字で囲まれているときは、引数「文字数」に 2 番目の検索位置 - 開始検索位置 - 1 を入力して抽出できます。
「LET 関数」を使用できるバージョンなら次のように入力できます。
終了,FIND("_",B3,開始+1),
MID(B3,開始+1,終了-開始-1))
1 文字ずつ分割する
文字列を 1 文字ずつに分割するには「スピル」を使用します。
引数「開始位置」に「SEQUENCE 関数」を使用して、文字列を 1 文字ずつ抽出します。「LEN 関数」を使用して文字数を取得できます。
逆順に抽出するには「SEQUENCE 関数」の引数「開始値」に 文字数 を入力し、引数「増分量」に -1 を入力します。
解説
引数「開始位置」が引数「文字列」の文字数を超えるときは、空文字 "" を返します。
引数「開始位置」が 2 で引数「文字数」が 1 なら、引数「文字列」の 2 文字目から 1 文字を抽出します。ABC → B
引数「開始位置」に 0 以下や数値以外のときはエラー #VALUE! になります。
引数「文字数」が 0 なら、空文字 "" を返します。
引数「文字数」が引数「文字列」の文字数を超えるときは、最後の文字まで抽出します。
引数「文字数」がマイナスの値や数値以外のときはエラー #VALUE! になります。
セルの書式設定から表示形式を指定しているときは、それを適用する前の値を抽出します。表示形式を適用した状態から抽出するには「TEXT 関数」を使用します。
数字や日付から抽出する
数字や日付から抽出するときは、セルの書式設定の表示形式が適用される前の値から抽出します。
カンマ区切りの数字 1,000 の実際の値は 1000 です。
日付 2000/1/1 の実際の値は 36526 です。
カンマ区切りや日付から抽出するには「TEXT 関数」を使用して、文字列に変換してから抽出します。
=MID(TEXT(B5,"yyyy/m/d"),1,8)
セルに設定されている表示形式を取得するには、セルの書式設定のユーザー定義をコピーします。日本語が含まれているときは "" で囲まれているのでそれを削除します。
表示形式について詳しくは次をご覧ください。
スポンサーリンク