Excel MID 関数(文字列の途中を取り出す)
MID(ミッド)は、文字列の途中から指定した文字を取り出す Excel(エクセル)の関数です。商品コードの通し番号や、固定形式の ID の一部を切り出すときに使います。引数は3つ——文字列、開始位置、文字数。最初の文字は1文字目です。構文と例題、よくある落とし穴を押さえて、下の練習問題で試しましょう。
MID 関数の構文と3つの引数
MID は、文字列の途中から指定した文字数を取り出します。開始位置は残したい最初の文字で、1 から数えます。文字数は取り出す長さです。MID("PRD-1023-A", 5, 4) は "1023" です。
元になる文字列です。通常はセル参照(A2)を指定します。直接書くこともできます:MID("PRD-1023-A", 5, 4) は 1023 を返します。
何文字目から取り出すかです。1 から数えます。PRD-1023-A の5文字目が通し番号の最初の数字です。0 や負の数は #VALUE! になります。
取り出す文字の数です。5文字目から4文字なら、5〜8文字目です。
MID の基本例題:商品コードの5〜8文字目を取り出す
この MID の基本例題では、固定形式の商品コードから4桁の通し番号を切り出します。
| 商品コード | 開始位置 | 文字数 |
|---|---|---|
| PRD-1023-A | 5 | 4 |
| SRV-8841-B | 5 | 4 |
| ACC-0050-C | 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 と組み合わせ)
固定形式なら開始位置を数字で書いても構いません。区切り文字の位置が変わるときは、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・文字列の練習問題
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からです。