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 比較表
具体的な文字列で比較してみましょう。
| 文字列 | LEN | LENB | 差分 |
|---|---|---|---|
"ABC" | 3 | 3 | 0 |
"あいう" | 3 | 6 | 3 |
"ABC123" | 6 | 6 | 0 |
"あBC1" | 4 | 5 | 1 |
"東京 Tokyo" | 8 | 10 | 2 |
差分(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バイト)のときだけです。設定手順は以下のとおりです。
- 制限をかけたいセル範囲を選択
- 「データ」タブ →「データの入力規則」をクリック
- 「設定」タブで「入力値の種類」を「ユーザー設定」に変更
- 「数式」欄に
=LEN(A1)*2=LENB(A1)を入力(A1は範囲の先頭セルに合わせる) - 「エラーメッセージ」タブでメッセージを設定
全角以外の文字が入力されるとエラーが表示されます。バイト数の上限を設定したい場合は =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関数も合わせて確認してみましょう。
