ホーム / 関数 / Excel MID 関数(文字列の途中を取り出す)
文字列 Excel + Google スプレッドシート

Excel MID 関数(文字列の途中を取り出す)

MID(ミッド)は、文字列の途中から指定した文字を取り出す Excel(エクセル)の関数です。商品コードの通し番号や、固定形式の ID の一部を切り出すときに使います。引数は3つ——文字列、開始位置、文字数。最初の文字は1文字目です。構文と例題、よくある落とし穴を押さえて、下の練習問題で試しましょう。

MID 関数の構文と3つの引数

=MID(文字列, 開始位置, 文字数)

MID は、文字列の途中から指定した文字数を取り出します。開始位置は残したい最初の文字で、1 から数えます。文字数は取り出す長さです。MID("PRD-1023-A", 5, 4) は "1023" です。

1 文字列(text)
必須

元になる文字列です。通常はセル参照(A2)を指定します。直接書くこともできます:MID("PRD-1023-A", 5, 4) は 1023 を返します。

2 開始位置(start_num)
必須

何文字目から取り出すかです。1 から数えます。PRD-1023-A の5文字目が通し番号の最初の数字です。0 や負の数は #VALUE! になります。

3 文字数(num_chars)
必須

取り出す文字の数です。5文字目から4文字なら、5〜8文字目です。

MID の基本例題:商品コードの5〜8文字目を取り出す

この MID の基本例題では、固定形式の商品コードから4桁の通し番号を切り出します。

商品コード開始位置文字数
PRD-1023-A54
SRV-8841-B54
ACC-0050-C54
=MID(A2, 5, 4)

PRD-1023-A の結果は 1023 です。1〜3文字目が区分、4文字目がハイフン、5〜8文字目が通し番号です。MID("PRD-1023-A", 5, 4) は "1023"。SRV-8841-B は 8841、ACC-0050-C は 0050 で、先頭のゼロは残ります(MID は文字列を返すため)。

文字列の切り出し:LEFT・MID・RIGHT の使い分け

Excel で文字列を切り出す関数は、取り出す位置で使い分けます。先頭なら LEFT、途中なら MID、末尾なら RIGHT です。

関数取り出す位置数式の例
LEFT先頭から=LEFT(A2, 3)
MID途中から(開始位置を指定)=MID(A2, 5, 4)
RIGHT末尾から=RIGHT(A2, 1)

MID(A2, 1, 3) は LEFT(A2, 3) と同じ結果です。切り出す前に長さを確認したいときは LEN を使います。

開始位置は 1 から数える

MID の開始位置は 0 ではなく 1 からです。プログラミングの配列に慣れていると間違えやすい点です。0 や負の数を指定すると #VALUE! になります。

ハイフンの直後から4文字を切り出す(SEARCH と組み合わせ)

=MID(A2, SEARCH("-", A2) + 1, 4)

固定形式なら開始位置を数字で書いても構いません。区切り文字の位置が変わるときは、SEARCH でハイフンを探してから切り出すと安定します。

Excel MID 関数でつまずきやすい4つの落とし穴

1. 開始位置は 1 から(0 ではない)

最初の文字は1文字目です。MID(A2, 1, 3) は LEFT(A2, 3) と同じ結果です。MID(A2, 0, 4) は #VALUE! になり、負の開始位置も同じです。

2. 開始位置が末尾を超えると空白になる

MID("PRD", 9, 2) は空文字列を返し、エラーにはなりません。文字列に9文字目がないためです。空白がおかしいと感じたら、先に LEN で長さを確認してください。

3. 文字数が負だと #VALUE!

文字数は 0 以上である必要があります。負の数は #VALUE! です。残りの長さより多く指定すると、MID は残り全部を返します:MID("PRD-1023-A", 8, 10) は "3-A" です。

4. MID は文字数、MIDB はバイト数

スペースもハイフンも1文字分の位置を取り、後ろの文字がずれます。MID は文字数で数えます。MIDB はバイト数で、全角向けの版です。固定形式のコードは MID を使います。

Excel と Google スプレッドシート

Microsoft Excel (365 / Desktop)

Excel の MID は引数が3つで、デスクトップ版と Microsoft 365 のどちらでも使えます。バイト数で切り出すときは MIDB です。ほかのシートを参照する書き方はほかの関数と同じです:=MID(Sheet2!A2, 5, 4)。

Google スプレッドシート

Google スプレッドシートも同じ書式です:MID(文字列, 開始位置, 文字数)。MID("PRD-1023-A", 5, 4) は同じく 1023 です。開始位置はどちらも 1 からです。

このページの MID・文字列の練習問題

MID を練習しよう:コードから通し番号を取り出す

下のロックされたシートに数式を入力して、各商品コードの5〜8文字目を取り出してください。

練習問題のページを開く
問題文
ヒント 0/4
模範解答 2
–
テストケース
1
2
3
リセット
提出
fx
A
B
C
D
E
F
G
1
2
3
4
5
6
7
8
9
10
インタラクティブなスプレッドシートを読み込み中...
セルと数式の計算エンジンを準備しています
○ 準備完了 ハイライトされたセルに数式を入力し、「提出」を押してください。

MID・文字列の練習問題

MID で途中を切り出し、LEN や LEFT と組み合わせて練習できます。数式は A2 に合わせて変化させ、1023 などの値を直書きしないでください。

よくある質問

MID とは何ですか?

MID(ミッド)は、文字列の途中から指定した文字数を取り出す Excel(エクセル)の関数です。書式は =MID(文字列, 開始位置, 文字数) で、商品コードの通し番号などの切り出しに使います。

Excel で文字列の途中を切り出すにはどうしますか?

=MID(A2, 5, 4) のように、セル、開始位置、取り出す文字数を指定します。位置は1から数えます。MID("PRD-1023-A", 5, 4) は "1023" です。

MID の数式の3つの引数は何ですか?

文字列、開始位置、文字数です。=MID(A2, 5, 4) は A2 の5文字目から4文字(5〜8文字目)を返します。

MID・LEFT・RIGHT の違いは何ですか?

LEFT は先頭から、RIGHT は末尾から、MID は途中の任意の位置から切り出します。LEFT(A2, 3) は MID(A2, 1, 3) と同じ結果です。

なぜ MID が #VALUE! や空白を返すのですか?

開始位置が 1 未満、または文字数が負のときは #VALUE! です。開始位置が最後の文字より後ろだと空文字列になります。文字数が残りの長さを超えてもエラーにはならず、残り全部が返ります。

MID は 0 から数えますか、1 から数えますか?

1 からです。最初の文字は1文字目です。MID(A2, 0, 4) は #VALUE! になります。

なぜ結果が 0050 のまま(50 にならない)のですか?

MID は文字列を返すので、ACC-0050-C の先頭ゼロは残ります。数値として使いたいときだけ VALUE で包みます。

Google スプレッドシートでも MID は使えますか?

使えます。書式は Excel と同じ =MID(文字列, 開始位置, 文字数) で、開始位置も同じく1からです。