Excelで文字列の途中からデータを取り出したいときに使うのが MIDB関数 です。
MID関数と似ていますが、こちらは文字数ではなく「バイト数」を基準に文字列を取得するのが特徴で、全角・半角が混在するデータを扱う際に利用されます。
MIDB関数とは
MIDB関数は、指定した文字列の指定位置からバイト数に基づいて部分文字列を抽出する関数です。
- 半角文字 → 1バイト
- 全角文字 → 2バイト
として計算するため、全角・半角が混在するデータをバイト単位で扱うときに活躍します。
書式
=MIDB(文字列, 開始位置, バイト数)
引数の説明
- 文字列:部分文字列を取り出したいセルや文字列を指定
- 開始位置:文字列の何バイト目から取り出すかを指定
- バイト数:何バイト分取り出すかを指定
MIDB関数の使い方
例①:半角文字の抽出
=MIDB("ABCDE",2,3)
この例では、MIDB関数を使って文字列の途中から指定したバイト数分を取得しています。
「ABCDE」はすべて半角文字のため、1文字=1バイトとして扱われます。
第2引数の「2」は開始位置を表しており、左から2バイト目の「B」から取得を開始します。
さらに、第3引数に「3」を指定しているため、「B」「C」「D」の3バイト分が取得され、結果は「BCD」と表示されます。

例②:全角文字の抽出
=MIDB("あいうえお",3,4)
「あいうえお」はすべて全角文字のため、1文字が2バイトとして扱われます。
第2引数の「3」は開始位置を表しており、3バイト目(「い」)から取得を開始します。
そのため、「い」から4バイト分、つまり「いう」が取得され、結果は「いう」と表示されます。

例③:バイト数が半端な場合
=MIDB("あいうえお",4,4)
「あいうえお」は全角文字のため、各文字は2バイトで扱われます。
この場合、4バイト目は「い」の2バイト目にあたり、文字の途中から取得を開始する状態になります。
- 「あ」=1–2バイト
- 「い」=3–4バイト
- 「う」=5–6バイト
- 「え」=7–8バイト
- 「お」=9–10バイト
そこから4バイト分を数えると、「い」の残り1バイト、「う」の2バイト、「え」の1バイト目までが対象になります。
しかし、MIDB関数は完全な文字として取得できるものだけを返す仕様のため、4バイト内に完全に収まる「う」だけが結果として返されます。

このようにMIDB関数は、文字列をバイト単位で途中から取得したい場合に役立つのが特徴です。
関連関数
| 関数名 | 特徴 |
|---|---|
| MID関数 | 文字数を基準に文字列の途中を取得する |
| LEFTB関数 | バイト数を基準に左側から文字を取得する |
| RIGHTB関数 | バイト数を基準に右側から文字を取得する |
| LENB関数 | 文字列のバイト数を取得する |
まとめ
MIDB関数は、文字列の途中から指定したバイト数分を取得できる関数です。
半角文字は1バイト、全角文字は通常2バイトとして扱われるため、日本語を含むデータの処理に役立ちます。
開始位置や取得範囲が全角文字の途中になると結果が変わる場合があるため、文字数ではなくバイト数で処理していることを意識して使うのがポイントです。



Excel人気記事