ADVERTISEMENT

【Googleスプレッドシート】LEN関数で文字数をカウント!半角と全角の数え方の違い

【Googleスプレッドシート】LEN関数で文字数をカウント!半角と全角の数え方の違い
🛡️ 超解決

Googleスプレッドシートで文字数をカウントしたい場面はよくあります。

しかし、半角文字と全角文字が混在していると、思った通りの数にならないことがあります。

LEN関数は基本的にすべての文字を1文字として数えますが、半角と全角でバイト数が異なるため、注意が必要です。

この記事では、LEN関数の基本的な使い方から、半角と全角の数え方の違い、LENB関数を使ったバイト数カウントまで詳しく解説します。

【要点】LEN関数で文字数を正しくカウントする方法と半角全角の違い

  • =LEN(セル): セル内の文字数を半角・全角に関わらず1文字として数えます。
  • =LENB(セル): 全角文字を2バイト、半角文字を1バイトとしてバイト数を返します。
  • 半角と全角の混在時にLENBを使う: 全角文字だけを抽出したい場合などにLENBとLENの差を利用します。

ADVERTISEMENT

LEN関数が文字数をカウントする仕組みと半角全角の違い

LEN関数は、指定された文字列の文字数を返す関数です。

この関数は、半角のアルファベットや数字も全角の日本語もすべて「1文字」として数えます。

一方、LENB関数は文字列のバイト数を返します。

半角文字は1バイト、全角文字は2バイトで計算されるため、同じ文字数でもバイト数が異なることがあります。

例えば、「あいう」は全角3文字でLEN関数では3ですが、LENB関数では6になります。

同様に、「abc」は半角3文字でLEN関数では3、LENB関数でも3です。

この違いを理解することで、文字数のカウントを目的に応じて使い分けることができます。

LEN関数で文字数をカウントする基本手順

LEN関数の基本的な使い方は非常にシンプルです。

  1. 文字数を調べたいセルを準備する
    まず、文字数を知りたいテキストが入力されているセルを用意します。例えば、A1セルに「Hello, World!」と入力します。
  2. 結果を表示するセルにLEN関数を入力する
    文字数を表示させたいセルに「=LEN(A1)」と入力します。これでA1セルの文字数が返されます。
  3. Enterキーで結果を確認する
    関数を入力したらEnterキーを押します。A1セルが「Hello, World!」の場合、13と表示されます(スペースも1文字としてカウントします)。

このように、LEN関数は引数に指定したセルの文字数を即座に返します。

複数のセルの文字数を合計する方法

複数のセルの文字数を合計したい場合は、SUM関数と組み合わせます。

  1. 合計文字数を表示するセルを選ぶ
    例えば、C1セルに合計を表示します。
  2. SUMとLENを組み合わせた式を入力する
    C1セルに「=SUM(LEN(A1),LEN(B1))」と入力します。これでA1とB1の文字数の合計が計算されます。
  3. 結果を確認する
    A1に「abc」、B1に「あいう」の場合、3+3=6と表示されます。

配列数式を使えば、範囲内の全セルの文字数を一気に合計することも可能ですが、その場合はARRAYFORMULA関数が必要です。

LEN関数とLENB関数の違いと使い分け

LEN関数とLENB関数の最大の違いは、カウントの単位です。

LEN関数は文字数(文字の個数)を返し、LENB関数はバイト数を返します。

半角文字だけの場合は両者の結果は同じですが、全角文字が含まれると異なります。

例えば、A1セルに「Google(グーグル)」と入力した場合、LEN関数は「Google(グーグル)」の全12文字を数えます。一方、LENB関数は半角部分(Google)が6バイト、全角部分((グーグル))が12バイトの合計18バイトを返します。

この性質を利用して、文字列内の全角文字の数だけを抽出することもできます。

LENBとLENの差で全角文字数を求める

  1. 全角文字数を計算する式を用意する
    「=LENB(セル)-LEN(セル)」と入力します。この計算式は、全角文字が1文字につき1バイト多いことを利用しています。
  2. 実際の例で確認する
    A1セルに「あいうえお」と入力します。LENB関数は10、LEN関数は5です。差は5で、全角文字数と一致します。
  3. 半角と全角が混ざっている場合
    A1セルに「aあbいcう」と入力します。LENB関数は「a(1)+あ(2)+b(1)+い(2)+c(1)+う(2)」で9、LEN関数は6です。差は3で、全角文字数と一致します。

このテクニックは、全角文字だけの個数を知りたいときに便利です。

ADVERTISEMENT

LEN関数を使うときの注意点とよくある失敗

LEN関数は便利ですが、いくつか注意すべき点があります。

空白セルに対してLEN関数を使うと0になる

セルが空の場合、LEN関数は0を返します。ただし、セルにスペースが1つでも入っていると、そのスペースも1文字としてカウントされます。

そのため、空白かどうかを判定するときは、LEN関数とIF関数を組み合わせて「=IF(LEN(A1)=0,”空”,”空じゃない”)」のように使うことができます。

数字や日付も文字列として扱われる

LEN関数は、セルの値が数値や日付であっても、内部的に文字列に変換してから文字数を数えます。

例えば、セルに「12345」と数値が入力されている場合、LEN関数は5を返します。日付の場合は、シリアル値(数値)として扱われるため注意が必要です。

日付を文字列として正しくカウントしたい場合は、TEXT関数で文字列に変換してからLEN関数を使います。

改行や特殊文字も1文字としてカウントされる

セル内に改行(CHAR(10))が含まれている場合、改行も1文字としてカウントされます。

同様に、タブや他の制御文字もすべて1文字として扱われます。

そのため、見た目の文字数と実際のLEN関数の結果が異なることがあります。

LEN関数は配列に対してそのまま使えない

複数のセルに一括でLEN関数を適用したい場合、通常のドラッグコピーでは個別のセルごとに数式をコピーする必要があります。

もし、範囲全体の文字数を一度に求めたい場合は、ARRAYFORMULA関数と組み合わせて「=ARRAYFORMULA(LEN(A1:A10))」のように入力します。

これにより、各セルの文字数が配列として返されます。

LEN関数とLENB関数の比較表

関数 返す値の単位 半角文字の扱い 全角文字の扱い 使用例
LEN 文字数(個数) 1文字としてカウント 1文字としてカウント 「=LEN(“abcあいう”)」は6
LENB バイト数 1バイトとしてカウント 2バイトとしてカウント 「=LENB(“abcあいう”)」は9

この表からわかるように、半角のみの文字列ならLENとLENBは同じ値を返しますが、全角が含まれると異なります。

自分の目的に合わせて関数を選びましょう。

まとめ

LEN関数を使うと、セル内の文字数を半角・全角に関わらず簡単にカウントできます。

一方、LENB関数を使えばバイト数がわかり、全角文字の個数を抽出するのにも便利です。

文字数制限のある入力フォームのチェックや、データの整形時にこれらの関数を活用してみてください。

次に、TRIM関数やSUBSTITUTE関数と組み合わせることで、より高度な文字列処理が可能になります。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。