Excelでテキストデータを扱う際、文字数やバイト数の確認が必要になる場面は意外と多いものです。たとえば、CSV形式で出力するデータのバイト数を制限したり、システムに入力する文字数制限に対応する必要がある場合です。この記事では、Excelで「文字数」と「バイト数」をそれぞれ簡単に求める方法を、関数の使い方とあわせて丁寧に解説します。文字数は LEN
関数、バイト数は LENB
関数を使うのが基本です。全角・半角の違いや注意点も含め、実用的な例を交えて解説していきます。
LEN関数で文字数を求める方法
LEN
関数は、セルに入力された文字列の「文字数」をカウントするための関数です。全角文字も半角文字も、1文字としてカウントされます。
基本の構文
=LEN(セル参照)
たとえば、セル A1 に「こんにちは」と入力されている場合、
=LEN(A1)
とすれば、結果は「5」となります。これは、5文字分の日本語が入っているためです。
半角との違いも1文字と数える
セル A1 に「abc123」と入力されているときも、
=LEN(A1)
の結果は「6」になります。全角でも半角でも、1文字=1カウントです。
LENB関数でバイト数を求める方法
LENB
関数は、「バイト数」を求める関数です。これは特に、データがバイト単位で処理されるシステムにデータを渡す場合などに使われます。
基本の構文
=LENB(セル参照)
ただし注意点として、LENB
関数はExcelの設定が日本語(または中国語、韓国語)でないと正しく機能しません。
たとえば、セル A1 に「あ」と入力されている場合、
=LENB(A1)
の結果は「2」になります。これは「あ」が2バイト文字だからです。
逆に、「a」や「1」などの半角文字は1バイトです。
LENとLENBの比較:具体例で違いを理解する
以下の表で、文字列に対して LEN
と LENB
を使ったときの違いを確認してみましょう。
入力文字列 | LENの結果 | LENBの結果(日本語設定時) |
---|---|---|
あいうえお | 5 | 10 |
abcde | 5 | 5 |
あaいbう | 6 | 9 |
このように、全角文字は2バイト、半角文字は1バイトとして扱われます。
応用:指定バイト数を超えた文字列を切り捨てる方法
業務で特定のバイト数以内にデータを収めたいケースでは、LEFTB
関数と組み合わせて使います。
例:10バイト以内の文字列を取得
=LEFTB(A1,10)
この式は、セル A1 の内容のうち、10バイト分までを切り出すという意味です。日本語が混じると、文字の途中で切れて文字化けすることもあるため、使い方には注意が必要です。
LEN・LENBを使った文字数チェックの実用例
1. システム入力前のチェック
入力項目に「20文字以内」の制限がある場合、次のようにして警告を表示できます。
=IF(LEN(A1)>20,"文字数オーバー","OK")
また、バイト制限がある場合は次のようになります。
=IF(LENB(A1)>40,"バイト数オーバー","OK")
2. データ整備・CSV出力時のバイトチェック
CSV形式などでバイト数制限がある場合、エクセルであらかじめチェックすることで、出力後のエラーを防げます。
LENBが正しく動作しないときの対処法
LENB
は、Excelの言語設定が「日本語」になっていないと、すべての文字を1バイトとしてカウントすることがあります。
対処方法
- Excelのオプション画面を開く
- 「言語」設定を日本語に変更
- 再起動して再計算
この手順で日本語環境にすれば、LENB
の挙動も正しくなります。
Excel 365での注意点:バイト数を明確に扱いたいならVBAも検討
Excelの関数だけでは厳密なバイト計算が難しい場合は、VBAマクロで対応する方法もあります。
例:VBAでShift-JISバイト数を取得する関数
Function ByteLength(str As String) As Long
ByteLength = LenB(StrConv(str, vbFromUnicode))
End Function
この関数を作成し、セルで次のように使えます。
=ByteLength(A1)
これで、Shift-JIS換算での正確なバイト数が取得できます。
まとめ
Excelで文字数やバイト数を確認したい場合は、LEN
と LENB
の使い分けが重要です。文字数を知りたいなら LEN
、バイト数を知りたいなら LENB
を使いましょう。ただし LENB
の正確な挙動には言語設定の影響があるため注意が必要です。
以下のように整理しておきます:
- 文字数の確認:
LEN
- バイト数の確認:
LENB
(日本語環境下) - 指定バイト数で切る:
LEFTB
- 厳密なバイト数管理が必要な場合:VBAを利用
この記事を参考に、日々の業務でExcelの文字チェックをもっと効率的に行ってください。