Excel関数 逆引き集 | 全角文字数を取得 → LEN

Excel
スポンサーリンク

概要

「このセルの中に“全角”が何文字あるか知りたい」
「半角と全角が混ざっていて、全角だけ数えたい」

こういうとき、見た目では分かりづらいので LEN+LENB 関数 を組み合わせて“全角文字数”を計算します。

  • LEN:文字数を数える(全角も半角も 1 文字としてカウント)
  • LENB:バイト数を数える(全角 2 バイト、半角 1 バイトとしてカウント)

この性質を使うと、
「文字列中の全角文字が何文字あるか」をきれいに取り出せます。


基本:LEN と LENB の違い

LEN 関数(文字数)

=LEN(A1)
  • 全角・半角どちらも「1 文字」としてカウント
  • スペースや句読点、改行も 1 文字としてカウント

例:A1 が「abcエクセル123」の場合

  • LEN(A1) → 10(a,b,c,エ,ク,セ,ル,1,2,3 で 10 文字)

LENB 関数(バイト数)

=LENB(A1)
  • 半角:1 バイト
  • 全角:2 バイトとしてカウント

同じく A1 が「abcエクセル123」の場合

  • 半角 6 文字(abc123)→ 6 バイト
  • 全角 4 文字(エクセル)→ 8 バイト
  • 合計 14 バイト → LENB(A1) = 14

全角文字数の考え方と基本式

なぜ「LENB − LEN」で全角文字数が分かるのか

全角文字数を (f)、半角文字数を (h) とすると、

  • LEN = (f + h)(文字数)
  • LENB = (2f + h)(バイト数:全角 2、半角 1)

LENB − LEN を取ると

[ (2f + h) – (f + h) = f ]

つまり、LENB − LEN = 全角文字数 になります。

全角文字数を求める基本テンプレート

=LENB(A1) - LEN(A1)

これだけで、A1 に含まれる 全角文字の個数 が求まります。

例:A1 = 「abcエクセル123」

  • LEN(A1) = 10
  • LENB(A1) = 14
  • LENB − LEN = 14 − 10 = 4 → 全角 4 文字(エ・ク・セ・ル)

全角文字数チェックの実務パターン

全角文字が 1 文字でも含まれているか判定する

入力に 全角が混ざっていたら NG にしたいときの例です。

=IF(LENB(A1)-LEN(A1)>0,"全角を含む","全角なし")
  • 全角文字が 1 文字以上 → 「全角を含む」
  • 0 → 「全角なし」

全角禁止のコード・ID のチェックによく使います。


全角文字数が上限以内かどうかを判定する

「全角文字は 5 文字以内」というような制約をチェックしたい場合。

=IF(LENB(A1)-LEN(A1)<=5,"OK","全角多すぎ")

内部で LENB(A1)-LEN(A1) が「全角文字数」になっているので、
その値で自由に判定できます。


全角と半角の文字数を両方知りたい

全体の文字数も使えば、
半角文字数も求められます。

  • 全角数:
    LENB(A1)-LEN(A1)
  • 半角数:
    全体文字数 − 全角数 なので
=LEN(A1) - (LENB(A1)-LEN(A1))

あるいは、
理屈から導いた別の形:LEN(A1)*2 - LENB(A1) でも同じ結果になります。


使用時の注意点

文字コードや絵文字が混ざる場合

LENB は「全角 2 バイト・半角 1 バイト」という前提で動きますが、
絵文字など一部のマルチバイト文字では思った通りにならないことがあります。

  • 一般的な日本語+英数字の範囲では実用上問題ない
  • 絵文字・特殊記号が多いデータではズレる可能性がある

という点は頭の片隅に置いておいてください。


例題

問題1

A1 に入っている文字列の 全角文字数 を求める式を書いてください。
LEN と LENB を組み合わせてください。

=LENB(A1)-LEN(A1)

問題2

A1 に全角文字が 1 文字でも含まれている場合は「全角あり」、
含まれていない場合は「全角なし」と表示する式を書いてください。

=IF(LENB(A1)-LEN(A1)>0,"全角あり","全角なし")

問題3

A1 の文字列について、
全角文字数が 5 文字以下なら「OK」、
6 文字以上なら「NG」と表示する式を書いてください。

=IF(LENB(A1)-LEN(A1)<=5,"OK","NG")

問題4

A1 に含まれる 半角文字の数 を求めたいです。
LEN と LENB を使って式を書いてください。

=LEN(A1)-(LENB(A1)-LEN(A1))

問題5

A1 の文字列長(文字数)と全角文字数をそれぞれ B1, C1 に出したいです。
B1 に「文字数」、C1 に「全角文字数」が入るような式を書いてください。

B1:

=LEN(A1)

C1:

=LENB(A1)-LEN(A1)

全角・半角が混ざるデータを“ちゃんと扱える人”は、実務でとても重宝されます。
まずはこの基本形を、自分の手で何度か試して感覚をつかんでみてください。

Excel
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました