Excelで文字列の一部を置き換えるには REPLACE関数 が使われます。REPLACE関数は全角・半角を区別せず「1文字=1文字」として処理しますが、REPLACEB関数 は半角1バイト・全角2バイトで置換範囲を計算します。本記事では、REPLACEB関数の使い方・注意点をわかりやすく解説します。
REPLACEB関数とは?
REPLACEB関数は、指定した文字列の一部をバイト数で指定して、別の文字列に置き換える関数です。
- 半角文字 → 1バイト
- 全角文字 → 2バイト
として処理するため、全角・半角が混在するデータを扱う際に役立ちます。
書式
=REPLACEB(文字列, 開始位置, バイト数, 新文字列)
- 文字列:置換対象の文字列
- 開始位置:置換を開始するバイト位置
- バイト数:置換する部分のバイト数
- 新文字列:置き換える文字列
使用例
- 全角文字を含む例
=REPLACEB("東京タワー",5,5,"スカイツリー")
→ 結果:東京スカイツリー
開始位置5(タの先頭)から5バイト置換 → タ(5–6) と ワ(7–8) と ー(9-10)が置換対象。
最後の1バイトが「ー」(2バイト文字)の途中にかかるため、Excel はその文字全体(2バイト)までを置換対象に含める挙動になります。
結果、タ・ワ・ー 全部が置換されて「東京スカイツリー」となります。
活用例
- システム連携用データの変換
バイト数単位での処理が必要な帳票や外部システム連携で文字列を部分的に変更する際に活躍します。 - 文字コードや桁数制限対応
バイト数制限のあるフィールドで、文字列を調整する際に使用できます。
注意点
- バイト数が途中の全角文字にかかる場合
その全角文字はまるごと置換対象に含まれます。 - 言語設定依存
半角1バイト・全角2バイトとして扱うのは日本語や中国語などの言語設定環境のみで、英語版ExcelではREPLACE関数と同じ動作になります。
関連関数
- REPLACE関数:文字数単位で文字列を置換
- LEFTB / RIGHTB / MIDB関数:バイト数単位で文字列を抽出
- FINDB関数:バイト数単位で検索位置を返す
まとめ
REPLACEB関数は、文字列の一部をバイト数単位で指定して置換できる関数です。
- 書式:
=REPLACEB(文字列, 開始位置, バイト数, 新文字列)
- 半角1バイト・全角2バイトでカウント
- データ連携やシステム開発での文字列処理に便利