「このセルに入力されている文字って、何文字あるんだろう?」
データ入力の仕事をしていると、文字数の上限チェックや文字数を揃えたい場面って意外と多いですよね。いちいち手作業で数えるのは大変ですし、数え間違いも心配です。
そんなときに活躍するのが LEN関数 です。セルの文字数を一発でカウントしてくれます。この記事では、LEN関数の基本から実務テクニックまで解説します。
LEN関数とは?文字数をカウントするExcel関数
LEN関数は、指定した文字列の 文字数を数えて返してくれる Excel関数です。
たとえば「Excel」なら「5」、「関数」なら「2」を返します。半角でも全角でも1文字は1文字としてカウントされるのがポイントです。
LEN関数の読み方と語源
LEN関数は「レン関数」と読みます。英語の「Length(レングス=長さ)」の略です。文字列の長さ(=文字数)を測るという意味が込められています。
対応バージョンも幅広く、Excel 2007以降のすべてのバージョンで使えます。Microsoft 365やGoogleスプレッドシートでも同じように使えますよ。
LEN関数の書き方(構文と引数)
基本構文
LEN関数の構文はとてもシンプルです。
=LEN(文字列)
引数は 「文字列」の1つだけ なので、覚えやすいですよね。
引数の説明
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| 文字列 | 必須 | 文字数を数えたい文字列、またはセル参照を指定します |
文字列を直接指定する場合は、ダブルクォーテーションで囲みます。セル参照の場合はそのまま番地を入力すればOKです。
=LEN("こんにちは") → 結果: 5
=LEN(A1) → A1セルの文字数を返す
NOTE
空白(スペース)も1文字としてカウントされます。 「Hello World」なら間のスペースを含めて「11」が返ります。改行文字やタブ文字も1文字です。
LEN関数の基本的な使い方
ここでは、実際にLEN関数を使う基本パターンを見ていきましょう。
文字列の文字数を直接数える
一番シンプルな使い方は、数えたい文字列をそのまま引数に入れる方法です。
=LEN("Excel関数") → 結果: 7
=LEN("Excel VBA") → 結果: 9(スペース含む)
=LEN("") → 結果: 0(空文字)
セル参照で文字数を数える
実務では、セルに入力されたデータの文字数を数えるケースがほとんどです。
=LEN(A1)
A1セルに「東京都新宿区」と入っていれば、結果は「6」になります。
セル参照を使えば、数式をコピーして複数セルの文字数を一気にチェックできます。たとえばA列に名前が入っているとします。B列に =LEN(A1) を入れてオートフィルすれば、全員分の文字数が一覧で確認できますよ。
NOTE
LEN関数は1つのセルまたは1つの文字列に対して使う関数です。
=LEN(A1:A10)のような範囲指定はできません。
数値の桁数を数える
LEN関数はセルに入力された数値の桁数も数えられます。
=LEN(12345) → 結果: 5
=LEN(A1) → A1が「1000」なら結果は「4」
ただし、表示形式で桁区切り(1,000)やパーセント(50%)を設定していても関係ありません。LEN関数が返すのは 元の数値の桁数 です。見た目の文字数ではない点に注意してください。
LEN関数の実務活用パターン
基本がわかったところで、実務で役立つ応用テクニックを紹介します。LEN関数は他の関数と組み合わせることで、グッと実用的になります。
パターン1: [[2022-01-16-excel-function-howto-use-if|IF関数]]と組み合わせて文字数制限をチェック
入力フォームに「20文字以内」といった文字数制限がある場合、LEN関数と[[2022-01-16-excel-function-howto-use-if|IF関数]]を組み合わせると便利です。
=IF(LEN(A1)>20, "超過", "OK")
A1セルの文字数が20文字を超えると「超過」、20文字以内なら「OK」と自動判定してくれます。大量のデータを入力するときの文字数チェックに重宝しますよ。
さらに残り文字数を表示するパターンも実用的です。
=20-LEN(A1)
結果がマイナスなら文字数オーバーとわかります。条件付き書式と組み合わせて、超過セルを赤くするとさらに見やすくなります。
パターン2: [[2022-05-02-excel-function-howto-use-substitute|SUBSTITUTE関数]]と組み合わせて特定の文字を数える
「特定の文字が何個含まれているか」を数えたいときは、LEN関数と[[2022-05-02-excel-function-howto-use-substitute|SUBSTITUTE関数]]を組み合わせます。
=LEN(A1)-LEN(SUBSTITUTE(A1,"、",""))
この数式の仕組みはこうです。
LEN(A1)で元の文字数を数えるSUBSTITUTE(A1,"、","")で「、」をすべて削除する- 元の文字数から削除後の文字数を引く
ちょっとむずかしく見えますが、やっていることはシンプルです。「消した分だけ減る=消した文字の数」というわけですね。
CSVデータの区切り文字の数を確認したり、メールアドレスに「@」が何個あるか検証したりするのにも使えます。
TIP
2文字以上の文字列をカウントする場合は、SUBSTITUTE で消す文字数で割ります。たとえば「東京」の出現回数なら
=(LEN(A1)-LEN(SUBSTITUTE(A1,"東京","")))/2です。
パターン3: [[2022-08-03-excel-function-howto-use-trim|TRIM関数]]とLEN関数で余分なスペースを検出する
データの中に余分なスペースが紛れ込んでいないかチェックしたいときも、LEN関数が活躍します。
=LEN(A1)-LEN(TRIM(A1))
[[2022-08-03-excel-function-howto-use-trim|TRIM関数]]は文字列の前後のスペースと、文字間の連続スペースを削除してくれる関数です。この結果が「0」なら余分なスペースはなし、「1」以上なら余分なスペースがあるとわかります。
[[2022-03-19-excel-function-howto-use-vlookup|VLOOKUP関数]]が思い通りに動かないとき、原因がスペース混入だったということはよくあります。VLOOKUP前の前処理として、このチェックは非常に有効ですよ。
パターン4: LEN関数とLENB関数で全角・半角を判定する
LEN関数とLENB関数の結果を比較すると、文字列に全角文字が含まれているか判定できます。
=IF(LEN(A1)=LENB(A1), "全て半角", "全角あり")
LEN関数は文字数、LENB関数はバイト数を返します。半角文字だけなら文字数=バイト数になりますが、全角文字が混ざるとバイト数が大きくなります。
商品コードや社員番号など「半角英数字のみ」というルールのデータを検証するのに便利です。
パターン5: データ入力の長さを揃える(コード番号のゼロ埋め)
社員番号や商品コードを一定の桁数に揃えたいときは、LEN関数と[[2022-11-15-excel-function-howto-use-text|TEXT関数]]を組み合わせます。
=TEXT(A1, REPT("0", 6))
ただしこの方法は数値にしか使えません。文字列のコードに対して、足りない桁数だけ「0」を先頭に追加したい場合はこちらです。
=REPT("0", 6-LEN(A1))&A1
6桁に満たない分だけ「0」を先頭に補完してくれます。LEN関数で現在の桁数を調べて、不足分を計算しているわけですね。
LEN関数とLENB関数の違い
LEN関数とよく混同されるのが LENB関数 です。2つの違いを表で整理しておきましょう。
| 項目 | LEN関数 | LENB関数 |
|---|---|---|
| 数えるもの | 文字数 | バイト数 |
| 半角英数字(A, 1, @) | 1 | 1 |
| 全角文字(漢字・ひらがな・カタカナ) | 1 | 2 |
| 半角カタカナ | 1 | 1 |
| スペース(半角) | 1 | 1 |
| スペース(全角) | 1 | 2 |
| 主な用途 | 純粋な文字数カウント | 半角/全角を区別した長さ計算 |
たとえば「Excel関数」という文字列の場合は次のようになります。
=LEN("Excel関数") → 結果: 7(全部で7文字)
=LENB("Excel関数") → 結果: 9(半角5 + 全角2文字x2バイト)
普段の業務で「文字数を数えたい」ときはLEN関数を使えばOKです。LENB関数は、固定幅のフォーマットに揃えたいときや、半角/全角を区別して文字幅を計算したい場面で使います。
TIP
全角文字の数だけを数えたいときは
=LENB(A1)-LEN(A1)で計算できます。半角文字の数は=2*LEN(A1)-LENB(A1)です。
似た関数との違い・使い分け
LEN関数と関連する文字列関数を比較表で整理します。
| 関数 | 機能 | 使いどころ | |
|---|---|---|---|
| LEN | 文字数を返す | 文字数カウント・文字数制限チェック | |
| LENB | バイト数を返す | 半角/全角区別の長さ計算 | |
| [[2022-05-02-excel-function-howto-use-substitute | SUBSTITUTE]] | 文字列を置換する | LENとの組み合わせで特定文字のカウント |
| [[2022-08-03-excel-function-howto-use-trim | TRIM]] | 余分なスペースを削除する | LENとの組み合わせでスペース検出 |
| [[2023-01-02-excel-function-howto-use-mid | MID]] | 文字列の途中を取り出す | LENで長さを把握してから切り出し |
| [[2022-07-07-excel-function-howto-use-char | CHAR]] | 文字コードから文字を返す | LEN+SUBSTITUTEで改行(CHAR(10))をカウント |
| [[2022-09-02-excel-function-howto-use-asc | ASC]] | 全角を半角に変換する | 半角統一後にLENで長さ確認 |
| [[2022-08-19-excel-function-howto-use-clean | CLEAN]] | 制御文字を削除する | CLEAN後にLENでクレンジング結果を検証 |
文字列の「長さを測る」のがLEN、「文字を取り出す」のがMID、「文字を置き換える」のが[[2022-05-02-excel-function-howto-use-substitute|SUBSTITUTE]]です。これらを組み合わせると、文字列操作の大半をカバーできます。
よくあるエラーと対処法
LEN関数はシンプルな関数なのでエラーが出にくいですが、「期待した結果にならない」ケースがあります。
| 症状 | 原因 | 対処法 | |
|---|---|---|---|
| 文字数が多い | 前後や文字間に見えないスペースがある | [[2022-08-03-excel-function-howto-use-trim | TRIM関数]]で整形してから数える: =LEN(TRIM(A1)) |
| 日付セルで大きな数値が返る | Excelが日付をシリアル値で扱っている | [[2022-11-15-excel-function-howto-use-text | TEXT関数]]で変換: =LEN(TEXT(A1,"yyyy/mm/dd")) |
| 数値の桁数が見た目と違う | 表示形式(桁区切り等)は内部値に影響しない | TEXT関数で表示形式を指定してから数える | |
| 空セルなのに0にならない | 空白に見えてスペースや数式の空文字が入っている | =LEN(TRIM(A1)) で確認。数式なら =ISBLANK(A1) で判定 | |
| 改行を含むセルの文字数が多い | 改行文字(CHAR(10))も1文字としてカウントされる | 改行を除外するなら =LEN(SUBSTITUTE(A1,CHAR(10),"")) | |
| 結果が数式のまま表示される | セルの表示形式が「文字列」になっている | 表示形式を「標準」に変更してからEnterを押し直す |
特に気をつけたいのが 日付のセル です。見た目は「2026/3/17」と表示されていても、内部では「46092」のようなシリアル値です。LEN関数はこのシリアル値の桁数を返してしまいます。
日付の表示文字数を数えたい場合は、[[2022-11-15-excel-function-howto-use-text|TEXT関数]]で表示形式を指定しましょう。
=LEN(TEXT(A1,"yyyy/mm/dd")) → 結果: 10
まとめ
LEN関数は「文字列の文字数を数える」というシンプルな関数です。ただ、他の関数と組み合わせることで実務の幅広い場面で活躍します。
この記事のポイントをおさらいしておきましょう。
- LEN関数は文字数、LENB関数はバイト数を返す
- 半角・全角どちらも 1文字としてカウント される(スペースや改行も含む)
- [[2022-01-16-excel-function-howto-use-if|IF関数]]との組み合わせで 文字数制限チェック ができる
- [[2022-05-02-excel-function-howto-use-substitute|SUBSTITUTE関数]]との組み合わせで 特定文字の出現回数 が数えられる
- LENとLENBの差を使えば 全角・半角の判定 もできる
- 日付セルでは [[2022-11-15-excel-function-howto-use-text|TEXT関数]]で変換してから使うのがコツ
文字数制限のある入力作業やデータのクレンジングで、ぜひLEN関数を活用してみてください。
この記事で紹介した関数・関連記事
- [[2022-01-16-excel-function-howto-use-if|IF関数の使い方]]
- [[2022-02-06-excel-function-howto-use-sum|SUM関数の使い方]]
- [[2022-03-28-excel-function-howto-use-iferror|IFERROR関数の使い方]]
- [[2022-03-19-excel-function-howto-use-vlookup|VLOOKUP関数の使い方]]
- [[2022-05-02-excel-function-howto-use-substitute|SUBSTITUTE関数の使い方]]
- [[2022-08-03-excel-function-howto-use-trim|TRIM関数の使い方]]
- [[2022-11-15-excel-function-howto-use-text|TEXT関数の使い方]]
- [[2022-07-24-excel-function-howto-use-concat|CONCAT関数の使い方]]
- [[2022-09-02-excel-function-howto-use-asc|ASC関数の使い方]]
- [[2022-08-19-excel-function-howto-use-clean|CLEAN関数の使い方]]
- [[2023-01-02-excel-function-howto-use-mid|MID関数の使い方]]
- [[2022-04-24-excel-function-howto-use-count|COUNT関数の使い方]]
- [[2022-04-25-excel-function-howto-use-counta|COUNTA関数の使い方]]
- [[2022-02-06-excel-function|Excel関数の基本]]
- [[2022-02-19-excel-function-list-by-function|Excel関数一覧]]
- [[2022-04-10-excel-error-value-list|Excelエラー値一覧]]
