Excel 左・右よりバイト数を指定して文字列を切り出す(LEFTB/MIDB/RIGHTB関数)

2020年5月23日

LEFTB/MIDB/RIGHTBは文字列に対し、

バイト数で文字数や位置を指定して文字列を切り出す関数です。

この記事では、その仕様と使い方を紹介します。

使用頻度の低い関数でLEFT/MID/RIGHTを使用する機会の方が多いでしょう。

仕様

LEFTB

文字列を先頭から切り出します。

=LEFTB(文字列,バイト数)
引数省略時の値説明
文字列省略不可切り出す対象の文字列を指定。
バイト数省略不可取り出すバイト数を数値で指定。
文字列のバイト数をオーバーした場合、末尾まで。
引数の詳細

MIDB

文字列を指定の位置から切り出します。

=MID(文字列,開始位置(バイト数),バイト数)
引数省略時の値説明
文字列省略不可切り出す対象の文字列を指定。
開始位置(バイト数)省略不可文字列の先頭を1とした開始位置を数値で指定。
バイト数省略不可取り出すバイト数を数値で指定。
文字列のバイト数をオーバーした場合、末尾まで。
引数の詳細

RIGHTB

文字列を末尾から切り出します。

LEFTBとMIDBは左→右方向に切り出しますが、

RIGHTBは右→左方向に切り出します。

=RIGHTB(文字列,バイト数)
引数省略時の値説明
文字列省略不可切り出す対象の文字列を指定。
バイト数省略不可取り出すバイト数を数値で指定。
文字列のバイト数をオーバーした場合、先頭まで。
引数の詳細

使用例

半角文字(1バイト)であれば支障なく扱えます。

全角文字(2バイト)を使用すると1バイト部分のみを切り出す場合があります。

(下のサンプルの3行目)

LEFTB関数の仕様例。正常例と2バイト文字を途中で切ってしまう例

「あ」にLEFTBでバイト取得した場合、32が取得されて半角スペースになります。

半角全角が入り混じる日本語環境での利用は注意が必要です。

スピルを利用する方法とメリット

Office365やExcel2019以降ではスピルという形式で記述可能です。

これは複数セルに数式をコピーする場合に便利な機能です。

スピルの利用には何れかの引数を複数セルの範囲で指定します。

例示はLEFTB関数ですが、他の関数も同様です。

両方を範囲にしていますが、片方だけが範囲指定でも正常に動作します。

スピルでLEFTB関数を記述する例(C3セル)
スピルでLEFTB関数を記述する例(C3セル)

数式を入力するのは最初の一つのセルですが、

引数で指定した高さ分、数式がセルのコピーなしで自動拡大されます。

C3に指定したLEFTB関数がC5まで自動拡大
C3に指定したLEFTB関数がC5まで自動拡大

スピルを利用することで今回の例では、

C3セルに入力するだけでよいため(C4以降にコピーペーストが不要)

以下のメリットがあります。

  • 入力の手間が少ない(数式のセルが多いほど効果が大きい)
  • 数式を編集した時、コピー忘れのリスクがない(最初のセルを更新すると全セルに反映)
  • 絶対参照が不要
  • 途中に行を追加した場合、数式のコピー&ペーストが不要。行削除でも壊れにくい。

関連記事

活用例

文字列を左または右からN文字削除する方法

セル内改行をFIND関数で検索する方法

関数の仕様と使い方の記事一覧