いきなり答える備忘録

Google Workspace(旧G Suite)・Microsoft 365・LibreOfficeなどに関するメモ

(Gスプレッドシート)文字列中の文字ごとの出現数を集計する

 Googleスプレッドシートで、文字列中の文字の種類別に、それぞれ何文字ずつあるのかを集計する方法です。

  • QUERY関数を使って文字列中の各文字の個数を集計することができます。

手順

 画像では、B3セルに対象となる文字列が入力されています。
 これに対し、(見出し行の存在を考慮して)D2セルに次のような式を入力して各文字の出現数を集計しています。

f:id:accs2014:20201128120814p:plain:w780

 D2セル

=QUERY(ARRAYFORMULA(MID(B3,SEQUENCE(LEN(B3)),1)),"SELECT Col1,COUNT(Col1) GROUP BY Col1 ORDER BY COUNT(Col1) DESC")

 ちょっと長いですが、QUERY関数というかSQLに慣れていればさほどでもないかと思います。
 まずARRAYFORMULA関数内で文字列を1文字ずつに分割し、QUERY関数により文字の種類ごとにグループ化し、文字の出現数(COUNT)を集計して多い順に並べ替えて表示しています。
 複数のセルに含まれる文字を(全体をつなげて1つとみなして)集計する場合は、2か所ある「B3」を「CONCATENATE(B3:B5)」などとすればOKです。