LEN・LENB関数の使い方|文字数・バイト数をカウント
LEN関数は文字列の文字数を、LENB関数はバイト数を返す関数です。入力データの文字数制限チェック、空白セルの判定、全角・半角の混在確認など、データ管理の場面で幅広く活躍します。この記事では、2つの関数の違いと実務での具体的な活用方法を解説します。
LEN関数・LENB関数の基本構文
LEN関数
=LEN(文字列)
文字列に含まれる文字数を返します。全角・半角を問わず、1文字を1としてカウントします。
LENB関数
=LENB(文字列)
文字列のバイト数を返します。半角文字は1バイト、全角文字は2バイトとしてカウントします。
引数の説明
| 引数 | 説明 | 必須/任意 |
|---|---|---|
| 文字列 | 文字数またはバイト数を調べる対象の文字列やセル参照 | 必須 |
LEN関数とLENB関数の違い
2つの関数は全角文字と半角文字の扱いが異なります。以下の表で確認します。
| 文字列 | LEN関数の結果 | LENB関数の結果 |
|---|---|---|
| Excel | 5 | 5 |
| エクセル | 4 | 8 |
| ABC123 | 6 | 6 |
| 東京都渋谷区 | 6 | 12 |
| テスト | 3 | 3 |
| テスト | 3 | 6 |
LEN関数は全角・半角に関係なく文字数を返しますが、LENB関数は全角文字を2バイト、半角文字を1バイトとしてカウントします。この違いを利用して、文字列に全角文字が含まれているかどうかを判定できます。
全角文字の有無を判定する方法
LEN関数とLENB関数の結果が一致すれば、その文字列はすべて半角文字で構成されています。
=IF(LEN(A2)=LENB(A2), "半角のみ", "全角を含む")
全角文字数だけを数える方法
LENB関数の結果からLEN関数の結果を引くと、全角文字の数がわかります。
=LENB(A2)-LEN(A2)
この式の結果は全角文字1文字につき1が加算されます。たとえば「ABC東京」の場合、LENB関数は7、LEN関数は5なので、差は2です。全角文字(東、京)が2文字であることと一致します。
実践例1:入力文字数の制限チェック
顧客備考欄の文字数管理
顧客管理シートで、備考欄の入力文字数が上限を超えていないかチェックします。
| A列(顧客名) | B列(備考) | C列(文字数) | D列(判定) | |
|---|---|---|---|---|
| 2 | 田中商事 | 月末締め翌月払い | 8 | OK |
| 3 | 鈴木工業 | 納品は第2倉庫へ。担当の山田宛に事前連絡必須。午前中指定。 | 27 | NG |
| 4 | 佐藤物産 | 請求書は本社宛 | 7 | OK |
C列に文字数を表示する数式です。
=LEN(B2)
D列で20文字以内かを判定します。
=IF(LEN(B2)<=20, "OK", "NG")
商品コードの桁数チェック
商品コードが所定の桁数(8桁)であるかを検証します。
=IF(LEN(A2)=8, "正常", "桁数エラー")
桁数が足りない場合や超過している場合にエラーとして検出できます。データのインポート前に一括チェックする際に便利です。
実践例2:電話番号・郵便番号の形式検証
電話番号のハイフンを除いた桁数チェック
電話番号のハイフンを除いた数字の桁数を確認して、正しい形式かを検証します。SUBSTITUTE関数と組み合わせます。
=LEN(SUBSTITUTE(A2, "-", ""))
| A列(電話番号) | 数式の結果 | |
|---|---|---|
| 2 | 03-1234-5678 | 10 |
| 3 | 090-1234-5678 | 11 |
| 4 | 0120-123-456 | 10 |
判定まで行う場合は次のようにします。
=IF(OR(LEN(SUBSTITUTE(A2,"-",""))=10, LEN(SUBSTITUTE(A2,"-",""))=11), "正常", "要確認")
郵便番号の形式チェック
郵便番号が「3桁-4桁」の正しい形式かを確認します。
=IF(AND(LEN(A2)=8, MID(A2,4,1)="-"), "正常", "形式エラー")
全体が8文字(数字3桁+ハイフン+数字4桁)で、4文字目がハイフンであるかを同時にチェックしています。
実践例3:LENB関数で全角半角の混在を検出
顧客データの半角カナチェック
顧客名簿で、カナ氏名が全角カタカナで統一されているかをチェックします。
| A列(カナ氏名) | B列(判定) | |
|---|---|---|
| 2 | タナカタロウ | 全角のみ |
| 3 | タナカタロウ | 半角のみ |
| 4 | タナカタロウ | 混在 |
B列の数式です。
=IF(LEN(A2)*2=LENB(A2), "全角のみ", IF(LEN(A2)=LENB(A2), "半角のみ", "混在"))
すべて全角であれば、LENB関数の結果はLEN関数の結果の2倍になります。すべて半角であれば、両者は一致します。どちらにも該当しない場合は全角と半角が混在しています。
住所データの全角数字チェック
住所に含まれる数字が全角か半角かを確認し、データの統一に役立てます。
=IF(LENB(A2)>LEN(A2), "全角文字を含む", "半角のみ")
空白や不要な文字の検出
見えないスペースの検出
データの前後や途中に不要なスペースが含まれていないかをチェックします。TRIM関数と組み合わせて使います。
=IF(LEN(A2)=LEN(TRIM(A2)), "問題なし", "不要なスペースあり")
TRIM関数は前後のスペースと連続するスペースを除去します。TRIM関数を適用した後の文字数が元と異なれば、不要なスペースが含まれていることがわかります。
空白セルと空文字列の判定
空白に見えるセルが本当に空なのか、スペースが入力されているのかを判別します。
=IF(LEN(A2)=0, "空セル", LEN(A2) & "文字")
空白に見えてもスペースが入力されているセルは、LEN関数が0以外の値を返します。
他の関数との組み合わせ
RIGHT関数との組み合わせ
末尾の数文字を可変長で抽出する場合に、LEN関数を使います。
=RIGHT(A2, LEN(A2)-FIND("@", A2))
この数式はメールアドレスから@マーク以降のドメイン部分を抽出します。
IF関数・条件付き書式との組み合わせ
LEN関数の結果を条件付き書式に利用すれば、文字数が上限を超えたセルを自動的に色付けできます。条件付き書式のルールに以下の数式を設定します。
=LEN(A2)>20
この条件をTRUEに設定し、背景色を赤にすれば、20文字を超えるセルが視覚的に目立ちます。
SUMPRODUCT関数との組み合わせ
範囲内の文字数を合計する場合はSUMPRODUCT関数を使います。
=SUMPRODUCT(LEN(A2:A100))
特定の文字の出現回数を数えることもできます。以下はA2:A100の範囲で「東京」という文字列が何回出現するかを数える数式です。
=SUMPRODUCT((LEN(A2:A100)-LEN(SUBSTITUTE(A2:A100,"東京","")))/2)
Google スプレッドシートでの互換性
LEN関数はGoogle スプレッドシートでも同じ構文で使用できます。ただし、LENB関数はGoogle スプレッドシートではサポートされていません。Google スプレッドシートでバイト数を計算する場合は、別の方法(Google Apps Scriptなど)を検討する必要があります。
まとめ
LEN関数とLENB関数は、文字列の長さを調べるシンプルな関数ですが、活用範囲は広いです。
- LEN関数は文字数、LENB関数はバイト数を返す
- 2つの関数の差を利用して全角・半角の混在を検出できる
- 入力文字数の制限チェックや桁数検証に有効
- SUBSTITUTE関数やTRIM関数と組み合わせることでデータクレンジングに活用できる
- 空白セルの判定や不要スペースの検出にも使える
データの品質管理やフォーマットの統一に欠かせない関数です。他の文字列関数と組み合わせて活用してください。