ExcelのLENB関数の使い方|バイト数をカウントしてLENと使い分ける方法

スポンサーリンク

LENB関数とは?バイト数を返すExcelの関数

LENB関数(読み方:レンビー)は、文字列のバイト数を返すExcel関数です。関数名は「LEN(Length=長さ)+ B(Byte=バイト)」に由来します。

「この入力フォーム、全角20文字以内って言われたけど半角も混ざってる……」。全角と半角が混在するデータのバイト数を調べたい場面、ありますよね。文字数ならLEN関数で一発ですが、バイト数は数えてくれません。そんなときに使えるのがExcelのLENB関数です。LENB関数を使えば、全角を2バイト・半角を1バイトとしてカウントできます。この記事ではLENB関数の基本から、LENとの違い、実務で役立つ活用パターンまで解説します。

LENB関数の構文と引数

=LENB(文字列)
引数必須/省略可説明
文字列必須バイト数を調べたいテキスト、またはセル参照

引数は1つだけ。LEN関数と同じ形なので、覚えやすいですよ。

空のセルや空文字列 "" を渡した場合は「0」を返します。数値を渡すと文字列として扱われ、=LENB(123) は「3」になります。エラー値を渡した場合はそのままエラーが返るので注意してください。

日本語環境での動作:全角=2バイト・半角=1バイト

LENB関数のポイントは、全角文字と半角文字でカウントが変わることです。日本語環境では次のルールで計算されます。

  • 全角文字(ひらがな・カタカナ・漢字など): 1文字=2バイト
  • 半角文字(英数字・半角カナなど): 1文字=1バイト

セルA1に「あいう」と入っているとします。

=LENB(A1)

結果は「6」です。全角3文字×2バイト=6バイトですね。「ABC」の場合は半角3文字×1バイトで「3」になります。

この動作はDBCS(2バイト文字セット)環境の挙動です。日本語・中国語・韓国語がOSの既定言語に設定されている場合に適用されます。英語など上記以外のOSを使っている場合、LENBはLENと同じ動作になります。この違いについては後ほど「注意点」で詳しく説明しますね。

LENとLENBの違いを比較表で確認

文字数とバイト数の違い

LEN関数は文字数を返します。全角でも半角でも1文字は1文字です。一方、LENB関数はバイト数を返します。全角は2バイト、半角は1バイトとカウントされます。

つまり、半角だけの文字列ならLENもLENBも同じ値になります。全角が混ざると、LENBのほうが大きい値を返すわけです。この差を利用すれば、全角文字数や半角文字数も計算できますよ。

LENかLENBか:使い分けの判断基準

LENとLENBのどちらを使うか迷ったときは、次の基準で判断してください。

知りたいこと使う関数
見た目の文字数(画面表示・印刷)LEN関数
システム登録・ファイル出力のバイト数LENB関数
全角/半角の混在チェックLENB関数(LENとの差分を活用)

日常的な文字カウントや表示用の集計にはLEN関数を使います。Shift-JISベースの社内システムへの登録データや、固定長フォーマットのファイル出力ではLENB関数の出番です。バイト数制限がある場合に正確なチェックができます。入力データに全角が混じっていないかチェックしたい場合も、LENB関数が役立ちます。

LEN vs LENB 比較表

具体的な文字列で比較してみましょう。

文字列LENLENB差分
"ABC"330
"あいう"363
"ABC123"660
"あBC1"451
"東京 Tokyo"8102

差分(LENB − LEN)が0なら半角のみ、0より大きければ全角が含まれています。「東京 Tokyo」の場合、全角2文字分の差分「2」が出ていますね。スペースは半角なので、1バイトとしてカウントされていますよ。

全角文字数・半角文字数を計算する応用式

LENBとLENの結果を組み合わせると、全角文字数と半角文字数を個別に求められます。

全角文字数を求める式:

セルA1に計算したい文字列が入っているとします。

=LENB(A1)-LEN(A1)

LENBとLENの差分が全角文字数になります。「あBC1」なら差分「1」が全角文字数です。

半角文字数を求める式:

=LEN(A1)*2-LENB(A1)

LENを2倍した値からLENBを引くと半角文字数になります。「あBC1」なら4×2−5=3が半角文字数です。「B」「C」「1」の3文字ですね。

この計算式は全角・半角の混在チェックでよく使うので、覚えておくと便利ですよ。

LENB関数は非推奨?現状と使い方のスタンス

Microsoft公式の「非推奨」表記の意味

Microsoft公式ドキュメントには「LENB関数は非推奨です。」と明記されています。2025年2月ごろからInsider版ではオートコンプリート候補にも表示されなくなりました。

非推奨になった理由は、LEN関数のVersion 2(互換性バージョン2)にあります。Version 2ではサロゲートペア(絵文字などの特殊文字)に対応しました。Microsoftとしては、バイト系関数の役割はVersion 2で代替できると判断したわけですね。

現時点で使えるか・いつまで使えるか

結論から言うと、現時点では問題なく使えます。オートコンプリートには表示されませんが、セルに直接 =LENB(A1) と入力すれば動作します。DATEDIF関数と同じ「隠れた関数」のような扱いです。

既存のブックに入っているLENB関数が壊れることもありません。過去に作成したファイルもそのまま使い続けられます。ただし、将来のアップデートで完全に削除される可能性はゼロではありません。新規で数式を組む場合はその点を頭に入れておきましょう。

非推奨でも役立つ場面

「非推奨ならもう使わなくていいのでは?」と思うかもしれません。しかし、バイト数を返す代替関数はMicrosoftから公式に提供されていません。

Shift-JIS換算のバイト数を調べたい場面では、LENB関数が唯一の手段です。固定長フォーマットのデータ処理や、バイト数制限のあるシステム連携では引き続きLENBが必要になります。非推奨とはいえ代替が効かない場面がある関数なので、必要なときは積極的に使ってみてください。

LENB関数の実務活用パターン3選

バイト数制限チェック(固定長データ・フォームバリデーション)

社内システムへの登録データに「20バイト以内」のような制限がある場合があります。LENB関数とIF関数を組み合わせてチェックできます。

セルA1に登録したいデータが入っているとします。

=IF(LENB(A1)>20,"超過","OK")

バイト数が20を超えていれば「超過」、以内なら「OK」と表示されます。全角10文字で20バイトなので、全角11文字以上が入ると「超過」になりますね。半角なら20文字まで入力できます。

このようなバイト数チェックが必要になる代表的な場面が、金融機関向けの全銀フォーマットや官公庁の固定長データです。全銀フォーマットでは振込先名義が「半角30バイト以内」と決められています。社内システムでは氏名フィールドが「全角10文字(20バイト)以内」のように制限される場合も多いです。データ作成前にLENBでバイト数を確認しておくと、登録エラーを未然に防げますよ。

場面バイト数制限チェック数式
振込先名義(全銀形式)半角30バイト以内=IF(LENB(A1)>30,"超過","OK")
社内システム氏名登録全角10文字(20バイト)以内=IF(LENB(A1)>20,"超過","OK")

全角・半角の混在チェック(LENBとLENの差分を活用)

入力データが半角のみかどうかを判定したい場面も多いですよね。LENBとLENの値が一致すれば半角のみ、一致しなければ全角が含まれていると分かります。

セルA1に確認したいデータが入っているとします。

全角が含まれているかチェック:

=IF(LENB(A1)>LEN(A1),"全角あり","半角のみ")

半角のみかチェック:

=IF(LEN(A1)=LENB(A1),"半角のみ","全角含む")

半角のみで入力してほしいフィールドのバリデーションに使えます。たとえばメールアドレスは半角英数字・記号のみで構成されます。全角が混じっていると送信エラーの原因になります。=IF(LEN(A1)=LENB(A1),"OK","全角含む") で事前にチェックできますよ。社員コードや商品コードなど、半角英数のみを許容するフィールドにも同じ考え方で使えます。

入力規則でバイト数制限を設定する方法

Excelの「データの入力規則」機能と組み合わせると、バイト数制限をセルに直接設定できます。

全角のみの入力を許可したい場合は次の数式を使います。制限をかけたいセル範囲の先頭セルをA1とします。

=LEN(A1)*2=LENB(A1)

この数式がTRUEを返すのは、すべての文字が全角(1文字=2バイト)のときだけです。設定手順は以下のとおりです。

  1. 制限をかけたいセル範囲を選択
  2. 「データ」タブ →「データの入力規則」をクリック
  3. 「設定」タブで「入力値の種類」を「ユーザー設定」に変更
  4. 「数式」欄に =LEN(A1)*2=LENB(A1) を入力(A1は範囲の先頭セルに合わせる)
  5. 「エラーメッセージ」タブでメッセージを設定

全角以外の文字が入力されるとエラーが表示されます。バイト数の上限を設定したい場合は =LENB(A1)<=20 のような数式に変えてみてください。

バイト系関数ファミリー一覧(LEFTB・MIDB・RIGHTB)

各関数の構文と用途

LENB関数と同じくバイト単位で動作する関数が3つあります。いずれもMicrosoft公式で非推奨と明記されていますが、LENB同様に直接入力すれば使えます。

関数構文用途非推奨後の代替
LEFTB=LEFTB(文字列, バイト数)先頭からバイト数分を抽出LEFT関数(Version 2)
MIDB=MIDB(文字列, 開始位置, バイト数)指定位置からバイト数分を抽出MID(Version 2)
RIGHTB=RIGHTB(文字列, バイト数)末尾からバイト数分を抽出RIGHT(Version 2)

LEFT / MID / RIGHT が「文字数」で区切るのに対し、LEFTB / MIDB / RIGHTB は「バイト数」で区切ります。固定長フォーマットのデータを扱うときに欠かせない関数ファミリーですよ。

固定長フォーマットの分割・抽出パターン

銀行の全銀フォーマットや官公庁の固定長データを扱う場面で活躍します。「先頭10バイトが名前、次の5バイトがコード」のように、位置とバイト数が決まった構造のデータを分割するときに便利ですよ。

セルA1に固定長の文字列が入っているとします。

先頭10バイトを取り出す:

=LEFTB(A1,10)

11バイト目から5バイト分を抽出する:

=MIDB(A1,11,5)

末尾4バイトを取り出す:

=RIGHTB(A1,4)

LENB関数でまず全体のバイト数を確認します。そのあとLEFTB・MIDB・RIGHTBで区切るという流れが定番パターンです。固定長データを扱うことがあれば、セットで覚えておくと便利ですよ。

LENB関数を使うときの注意点

SBCS環境(英語OS)ではLENと同じ結果になる

LENB関数の動作はOSの既定言語に依存します。日本語・中国語・韓国語がOSの既定言語なら、全角=2バイト・半角=1バイトで正しく動きます。

しかし、英語など上記以外の言語が既定の場合、LENBはLENと同じ動作になります。=LENB("あ") が「2」ではなく「1」を返してしまうのです。

この動作はExcelの言語設定ではなく、OSの既定言語で決まります。Windowsの場合は「地域と言語」の管理用言語が該当します。海外拠点のPCで日本語データを扱う場合に起こりやすいトラブルです。英語版WindowsにExcelだけ日本語で入れている場合も同様です。LENB関数が期待どおりの値を返さないときは、OSの言語設定を確認してみてください。

LENBが返すのはShift-JIS換算のバイト数

LENB関数が返すバイト数は、Shift-JIS(シフトジス)という文字コード換算の値です。全角1文字=2バイト、半角1文字=1バイトというルールはShift-JISの仕様に基づいています。

覚えておきたいのが、システムによって使われる文字コードが異なる点です。

文字種Shift-JIS(LENBの換算)UTF-8(最近のシステム)
半角英数(A, 1 など)1バイト1バイト
半角カナ(ア, イ など)1バイト3バイト
ひらがな・漢字(あ, 東 など)2バイト3バイト

LENBはあくまでShift-JIS換算のバイト数を返します。UTF-8では「東京」が6バイトですが、LENBは4バイトと返します。UTF-8ベースのシステムにデータを登録する際は注意が必要です。LENBの値をそのまま使うと、実際のバイト消費量と差が生じます。

Shift-JISベースのシステム(全銀フォーマット・レガシーな社内システムなど)なら、LENBの値をそのまま活用できます。新しいWebシステムやクラウドDBはUTF-8が多いので、LENBの値だけで判断しないよう注意してください。

全角・半角の変換が必要な場合は、ASC関数で全角を半角に変換できます。半角を全角にしたい場合はJIS関数を使います。変換後にLENBでバイト数を確認すると、より正確なチェックができますよ。

まとめ

LENB関数は、文字列のバイト数を返すExcelの関数です。日本語環境では全角=2バイト、半角=1バイトとしてカウントされます。

ポイントを整理すると次のとおりです。

  • 構文は =LENB(文字列) で、引数は1つだけ
  • LEN関数が文字数を返すのに対し、LENBはバイト数を返す
  • 「見た目の文字数」はLEN関数、「システム登録・ファイル出力のバイト数」はLENB関数を使う
  • =LENB(A1)-LEN(A1) で全角文字数を計算できる
  • =LEN(A1)*2-LENB(A1) で半角文字数を計算できる
  • Microsoft公式では非推奨だが、直接入力すれば現在も使える
  • 全銀フォーマットや社内システムのバイト数制限チェック・全角半角の混在チェックに活用できる
  • LEFT関数のバイト版(LEFTB・MIDB・RIGHTB)と組み合わせて固定長データの分割にも使える
  • 英語OSではLENと同じ動作になるので、OSの既定言語に注意
  • 返すのはShift-JIS換算のバイト数で、UTF-8のバイト数とは異なる

非推奨とはいえ、バイト数を返す代替関数は存在しません。固定長データの処理やバイト数制限のバリデーションでは、今後も活躍する関数です。必要な場面では積極的に使ってみてください。

文字列操作に関連する関数もあわせて確認したい場合は、LEN関数LEFT関数MIDB関数が参考になります。全角・半角を変換してからバイト数を調べたい場合は、ASC関数JIS関数も合わせて確認してみましょう。

タイトルとURLをコピーしました