いきなり答える備忘録

G Suite・Microsoft 365・LibreOfficeなどに関するメモと日々の実験

(Gスプレッドシート)複数セルの文字数をまとめてカウントする

 Googleスプレッドシートで、複数のセルに含まれる文字の文字数をの合計を求める方法についてです。
 一見なんてことはありませんが、アプローチによってはちょっとした罠にはまる場合があります。

  • 複数セルの文字数の合計は「=SUM(ARRAYFORMULA(LEN(範囲)))」で求められます。
  • 「=LEN(CONCATENATE(範囲))」でも可能ですが、文字数が50000に達するとエラーになります。

手順

f:id:accs2014:20200718165358p:plain:right:w400

 B3:B7の範囲にある文字数をカウントします。
 まずは「=ARRAYFORMULA(LEN(B3:B7))」と入力とそれぞれのセルの文字数が求められますので……

f:id:accs2014:20200718165403p:plain:right:w400

 さらに式をSUM関数で囲んで完成です。
 つまり式はつぎのようになります。

=SUM(ARRAYFORMULA(LEN(B3:B7)))

 

f:id:accs2014:20200718165406p:plain:right:w400

 この式のメリットは文字数が膨大な場合でもきちんとカウントできることです。
 画像では「=SUM(ARRAYFORMULA(LEN(B3:B)))」という式(B3セル以降のすべてのセルを数えています)により、8万字余りの文字数を難なくカウントしています。

f:id:accs2014:20200718165410p:plain:right:w500

 一方で「=LEN(CONCATENATE(B3:B))」とすると式は短く済むのですが、CONCATENATE関数の50000字制限に引っ掛かりエラーになってしまいます。
 Googleスプレッドシートの文字列結合関数はとても便利ですが、この点には注意が必要です。