Excelで文字列の一部を抜き出すには MID関数 がよく使われます。ただし、MID関数は全角・半角を区別せず「1文字=1文字」として扱います。一方で、MIDB関数 は半角を1バイト・全角を2バイトとして計算するため、バイト数に基づいて文字列を取り出したい場合に便利です。本記事では、MIDB関数の使い方やポイントをわかりやすく解説します
MIDB関数とは?
MIDB関数は、指定した文字列の指定位置からバイト数に基づいて部分文字列を抽出する関数です。
- 半角文字 → 1バイト
- 全角文字 → 2バイト
として計算するため、全角・半角が混在するデータをバイト単位で扱うときに活躍します。
書式
=MIDB(文字列, 開始位置, バイト数)
- 文字列:部分文字列を取り出したいセルや文字列を指定
- 開始位置:文字列の何バイト目から取り出すかを指定
- バイト数:何バイト分取り出すかを指定
使用例
数式
=MIDB("あいうえお",4,4)
バイトの割り当て
- 「あ」=1–2バイト
- 「い」=3–4バイト
- 「う」=5–6バイト
- 「え」=7–8バイト
- 「お」=9–10バイト
処理の流れ
- 文字列の4バイト目から開始 → これは「い」の2バイト目の位置です(ちょうど文字の途中から始まるイメージ)
- そこから 4バイト分 を数えると、
- まず「い」の残り(2バイト目)で1バイト分だけ消費されます
- その後「う」(2バイト分)で合計3バイト
- 最後に「え」の1バイト目までで4バイトに達します
結果
Excel の MIDB は バイト数が完全に含まれる文字だけを返す 仕様なので、4バイト内で収まったのは 「う」だけ になります。
活用例
- システム制約に合わせた文字列加工
データベース入力時に、バイト単位で部分文字列を抽出して格納できます。 - 帳票やIDの一部抽出
商品コードや顧客IDの特定バイト位置の部分を取り出す処理に便利です。
注意点
- 言語設定依存
半角=1バイト・全角=2バイトの扱いは日本語や中国語などの環境のみで有効です。英語版ExcelではMID関数と同じ動作になります。
関連関数
- MID関数:文字数単位で部分文字列を抽出
- LEFTB関数:バイト数単位で先頭から文字列を抽出
- RIGHTB関数:バイト数単位で末尾から文字列を抽出
- LENB関数:文字列のバイト数を返す
まとめ
MIDB関数は、文字列の指定位置からバイト数単位で部分文字列を抽出する関数です。
- 書式:
=MIDB(文字列, 開始位置, バイト数)
- 半角=1バイト・全角=2バイトで計算
- システム制約や帳票出力に合わせた文字列操作に便利