はい、MID 関数と MIDB 関数は、Excel において文字列の一部を抽出するために使う関数ですが、「文字数」と「バイト数」で扱いが異なります。
✅ MID 関数(文字数ベース)
📌 構文
=MID(text, start_num, num_chars)
| 引数 | 内容 |
|---|
text | 抽出元の文字列 |
start_num | 抽出を始める文字位置(1から) |
num_chars | 抽出する文字数 |
🧾 使用例
=MID("Apple", 2, 3)
→ "ppl"(2文字目から3文字分)
=MID("日本語テスト", 2, 2)
→ "本語"
- 全角文字も「1文字」としてカウントされます。
- 日本語・英語問わず、1文字 = 1文字扱い。
🉑 MIDB 関数(バイト数ベース:全角=2バイト、半角=1バイト)
📌 構文
=MIDB(text, start_byte, num_bytes)
| 引数 | 内容 |
|---|
text | 抽出元の文字列 |
start_byte | 抽出を始めるバイト位置(1から) |
num_bytes | 抽出するバイト数 |
✅ 特徴
- 全角文字(日本語、全角英字など)は 2バイトとしてカウント。
- 半角文字(英数字、記号など)は 1バイト。
- Windows の言語設定が日本語などのマルチバイト環境で有効。
🧾 使用例(日本語環境)
=MIDB("日本語テスト", 3, 4)
→ "本語"("日"=2バイト、"本"=3〜4バイト目、"語"=5〜6)
=MIDB("ABC123", 2, 3)
→ "BC1"(各文字=1バイト)
🔍 MID と MIDB の違いまとめ
| 特徴 | MID | MIDB |
|---|
| 単位 | 文字数 | バイト数 |
| 全角文字 | 1文字扱い | 2バイト扱い |
| 半角文字 | 1文字扱い | 1バイト扱い |
| 使用環境 | 全言語共通 | 日本語などのマルチバイト設定時のみ有効 |
| 使いどころ | 一般的な文字列抽出 | 固定バイト幅のデータ処理、Shift-JISデータ処理など |
✅ 応用例
🔹 氏名から苗字だけ抽出(スペース区切り)
=MID(A1, 1, FIND(" ", A1) - 1)
Post Views: 176