いきなり答える備忘録

Google Workspace・Microsoft 365・LibreOfficeなどに関するメモ

(Gスプレッドシート)特定の文字の数をカウントする

 Googleスプレッドシートで、文字列に含まれる特定の(指定した)文字の数を数える方法についてです。

  • REGEXREPLACE関数とLEN関数の組み合わせで、文字列に含まれる特定の文字の数をカウントできます。
  • カウントする文字の種類が複数であっても列挙して簡単に指定できるのがメリットです。

手順

 B3:B6には同じ文字列が並んでいます。
 これに対しC3:C6にそれぞれ次のように入力して文字をカウントします。

 C3~C6セル

=LEN(REGEXREPLACE(B3,"[^あ]",""))
=LEN(REGEXREPLACE(B4,"[^が]",""))
=LEN(REGEXREPLACE(B5,"[^あが]",""))
=LEN(REGEXREPLACE(B6,"[^か-ご]",""))

 上から順に
  ・「あ」を数える
  ・「が」を数える
  ・「あ」と「が」を数える
  ・「かきくけこがぎぐげご」のすべてを数える
 となっています。
 最初の式ではREGEXREPLACE関数の第2引数(置換対象)に「[^あ]」を指定することで、「あ」以外を空文字に置き換え、LEN関数で文字数をカウントしています。結果的に「あ」の数がカウントされます。角カッコ([ ])がないと違う結果になるため注意が必要です。
 2番目の式は対象が「が」に変わっただけであとは同じです。
 3番目の式では「あ」と「が」の2種の文字をカウントします。SUBSTITUTE関数による方法だとネストする必要がありますが、この方法だと列挙するだけで複数の文字種をカウントできるのがメリットです。
 4番目の式では「-」を使って、置換対象となる文字の範囲を指定しています。これにより「か」「が」「き」「ぎ」「く」「ぐ」「け」「げ」「こ」「ご」の10種の文字をカウントの対象としています(「ご」に注意)。このような指定も便利ですが、例えば「[^か-こ]」と指定した場合に「かきくけこ」以外に「が」「ぎ」「ぐ」「げ」が対象となる(「ご」はならない)など、濁音や半濁音等の扱いに注意が必要です。
 

 結果はこうなります。




 さらに進んでひらがなをカウントする、カタカナをカウントする、といった例も考えられますが、それらについては次の記事をご覧ください。

www.officeisyours.com

 また、2文字以上の文字列をカウントする場合については次の記事で例を挙げています。
 ただしこの例では1種類の文字列しかカウントできません。

www.officeisyours.com