概要
「コードの1〜3文字目は“区分”、4〜7文字目は“番号”」
「社員番号の 1 桁目は部署、2〜3 桁目は職種」
「固定長の文字列を、決まった桁数ごとに切り分けたい」
こういう “固定長での分割” に最適なのが MID 関数です。
MID は「何文字目から」「何文字分」を抜き出せるため、
固定フォーマットのコード分解に非常に強い関数です。
MID 関数の基本
MID の書式
=MID(文字列, 開始位置, 文字数)
開始位置
左から数えて「何文字目から」取り出すか。1 が先頭。
文字数
そこから「何文字分」取り出すか。
固定長の分割では、
「開始位置」と「文字数」が決まっているため、
MID が最もシンプルに使えます。
基本パターン:固定長コードを分割する
例:A2 に「ABC123456」が入っている場合
- 1〜3 文字目 → 区分
- 4〜6 文字目 → 中分類
- 7〜9 文字目 → 枝番
というように分けたいとします。
区分(1〜3 文字目):
=MID(A2, 1, 3)
中分類(4〜6 文字目):
=MID(A2, 4, 3)
枝番(7〜9 文字目):
=MID(A2, 7, 3)
このように、開始位置と文字数が決まっていれば、
MID だけで簡単に分割できます。
実務でよくある固定長分割パターン
郵便番号(7 桁)を「3 桁+4 桁」に分割
A2 に「1234567」が入っているとします。
前半(1〜3 桁):
=MID(A2, 1, 3)
後半(4〜7 桁):
=MID(A2, 4, 4)
社員番号の構造が「部署1桁+職種2桁+個人番号4桁」の場合
A2 に「A011234」が入っているとします。
部署(1 桁目):
=MID(A2, 1, 1)
職種(2〜3 桁目):
=MID(A2, 2, 2)
個人番号(4〜7 桁目):
=MID(A2, 4, 4)
商品コード「AA-BBB-CCCC」を固定長として扱う
もしハイフンを除いた文字列(例:「AABBBCCCC」)が A2 に入っているなら、
- 1〜2 文字目:カテゴリ
- 3〜5 文字目:中分類
- 6〜9 文字目:商品番号
カテゴリ:
=MID(A2, 1, 2)
中分類:
=MID(A2, 3, 3)
商品番号:
=MID(A2, 6, 4)
応用:LEN と組み合わせて「末尾から固定長を取る」
固定長の「末尾 n 文字」を取りたい場合、
RIGHT でもできますが、MID+LEN でも書けます。
例:A2 の末尾 4 文字を取りたい場合
=MID(A2, LEN(A2)-3, 4)
開始位置を「全体の長さ − (取りたい文字数 − 1)」で計算する方法です。
応用:固定長の複数項目を一気に抽出する
TEXTSPLIT のように自動分割はできませんが、
MID を複数並べることで「固定長の表」を作れます。
例:A2 に「ABC123456」が入っていて、
B2〜D2 に区分・中分類・枝番を並べたい場合。
B2:
=MID(A2, 1, 3)
C2:
=MID(A2, 4, 3)
D2:
=MID(A2, 7, 3)
このように「開始位置をずらしていく」だけで、
固定長の分割が自在にできます。
例題
問題1
A2 に「ABC123456」という文字列が入っています。
1〜3 文字目(「ABC」)を取り出す式を書いてください。
=MID(A2, 1, 3)
問題2
A2 に「ABC123456」が入っています。
4〜6 文字目(「123」)を取り出す式を書いてください。
=MID(A2, 4, 3)
問題3
A2 に「1234567」という郵便番号が入っています。
後半の 4 桁(「4567」)を取り出す式を書いてください。
=MID(A2, 4, 4)
問題4
A2 に「A011234」という社員番号が入っています。
職種コード(2〜3 桁目)を取り出す式を書いてください。
=MID(A2, 2, 2)
問題5
A2 に任意の文字列が入っています。
その末尾 4 文字を MID と LEN を使って取り出す式を書いてください。
=MID(A2, LEN(A2)-3, 4)
固定長の分割は、MID の「開始位置」と「文字数」を決めるだけ。
このシンプルな仕組みを理解すると、
コード分解・社員番号解析・郵便番号処理など、
実務で頻出する“固定フォーマットの文字列処理”が一気に楽になります。
