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関数の基本的な使い方は非常にシンプルです。
- 文字数を調べたいセルを準備する
まず、文字数を知りたいテキストが入力されているセルを用意します。例えば、A1セルに「Hello, World!」と入力します。 - 結果を表示するセルにLEN関数を入力する
文字数を表示させたいセルに「=LEN(A1)」と入力します。これでA1セルの文字数が返されます。 - Enterキーで結果を確認する
関数を入力したらEnterキーを押します。A1セルが「Hello, World!」の場合、13と表示されます(スペースも1文字としてカウントします)。
このように、LEN関数は引数に指定したセルの文字数を即座に返します。
複数のセルの文字数を合計する方法
複数のセルの文字数を合計したい場合は、SUM関数と組み合わせます。
- 合計文字数を表示するセルを選ぶ
例えば、C1セルに合計を表示します。 - SUMとLENを組み合わせた式を入力する
C1セルに「=SUM(LEN(A1),LEN(B1))」と入力します。これでA1とB1の文字数の合計が計算されます。 - 結果を確認する
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の差で全角文字数を求める
- 全角文字数を計算する式を用意する
「=LENB(セル)-LEN(セル)」と入力します。この計算式は、全角文字が1文字につき1バイト多いことを利用しています。 - 実際の例で確認する
A1セルに「あいうえお」と入力します。LENB関数は10、LEN関数は5です。差は5で、全角文字数と一致します。 - 半角と全角が混ざっている場合
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
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Googleスプレッドシートの人気記事ランキング
- 【Googleスプレッドシート】GOOGLEFINANCE関数で株価・為替を取得!リアルタイムデータの呼び出し
- 【Googleスプレッドシート】印刷範囲を指定して印刷!特定範囲だけPDFや紙に出す手順
- 【Googleスプレッドシート】新しいスプレッドシートを作成する3つの方法!ドライブ・URL・テンプレート
- 【Googleスプレッドシート】数値の連続データを自動入力!オートフィルの活用
- 【Googleスプレッドシート】ダークモードを有効にする!目に優しい配色への切替
- 【Googleスプレッドシート】株価APIで株式データを自動取得!GOOGLEFINANCE超え活用
- 【Googleスプレッドシート】共有相手が編集できない時のチェック!権限と許可状態の確認
- 【Googleスプレッドシート】ページ設定で用紙サイズと向きを調整!印刷レイアウトの基本
- 【Googleスプレッドシート】Excelファイルxlsxをインポートする手順!ドラッグ&ドロップで取り込み
- 【Googleスプレッドシート】条件付き書式をコピーする!書式のみペーストの活用
