Excelで文字列の末尾から指定した文字数を取り出すには RIGHT関数 を使います。ただし、RIGHT関数は全角・半角の区別をせず「1文字=1」としてカウントします。
ところが、システムやデータベースの仕様によっては、半角は1バイト・全角は2バイト として文字列を扱う必要がある場合があります。そこで活躍するのが RIGHTB関数 です。本記事では、RIGHT関数との違いを意識しながら、RIGHTB関数の使い方と注意点を解説します。
RIGHTB関数とは?
RIGHTB関数は、指定した文字列の末尾からバイト数単位で文字を抽出する関数です。
- 半角文字 → 1バイト
- 全角文字 → 2バイト
として計算するため、全角・半角が混在する文字列の切り出しに対応できます。
書式
=RIGHTB(文字列, バイト数)
- 文字列:文字を取り出したいセル参照や文字列を指定します。
- バイト数:末尾から取り出したいバイト数を指定します。
使用例
- 半角文字の抽出
=RIGHTB("ABCDE",3)
→ 結果:CDE
(末尾から3バイト=3文字を取得) - 全角文字の抽出
=RIGHTB("あいうえお",4)
→ 結果:えお
(え=2バイト、 お=2バイト)
RIGHTB関数で全角文字から3バイト取得した場合の結果
例えば、次の数式を考えます。
=RIGHTB("あいうえお",3)
- あ・い・う・え・お はすべて全角文字なので、それぞれ 2バイト で計算されます。
- 末尾から3バイト分を取得しようとすると、「お」は2バイトで収まりますが、次の「え」を足すと合計4バイトになり、指定した3バイトを超えてしまいます。
そのため、結果は 「お」だけが返される ことになります。
活用例
- システム制約に合わせた末尾データ抽出
商品コードやユーザーIDなどの末尾部分を、バイト数に基づいて切り出せます。 - 帳票出力での文字数調整
末尾から特定バイト分を取得して印刷用フォーマットに合わせることが可能です。
注意点
- 言語設定依存
半角=1バイト・全角=2バイトとして扱うのは日本語や中国語などの言語設定環境のみで、英語版ExcelではRIGHT関数と同じ動作になります。 - バイト数が途中の全角文字にかかると切り捨て
例:3バイト指定で「えお」を含めると、え=2バイトで残り1バイト、次の全角文字を足すと4バイトになり超過するため、えだけが返されます。
関連関数
- RIGHT関数:文字数単位で末尾から文字を抽出
- LEFTB関数:バイト数単位で先頭から文字を抽出
- MIDB関数:バイト数単位で任意位置から文字を抽出
- LENB関数:文字列のバイト数を返す
まとめ
RIGHTB関数は、文字列の末尾からバイト数単位で文字を切り出せる関数です。
- 書式:
=RIGHTB(文字列, バイト数)
- 半角1バイト・全角2バイトでカウント
- データベースやシステム制約に対応した末尾抽出に便利