(Excel)文字列中の特定の文字の数をカウントする

 Excelで、文字列の中に含まれている特定の(指定した)文字の数をカウントする方法についてです。
 LEN関数とSUBSTITUTE関数による方法が有名ですが、ここでは少し異なる方法を試してみます。

  • SEQUENCE関数、MID関数等を使って文字列中の特定の文字をカウントすることができます。
  • 式は若干複雑ですが、複数の種類の文字であっても簡単に指定できるのがメリットです。

手順

f:id:accs2014:20200120000732p:plain:right:w600

 B3,B4には全く同じ文字列が記録されています。
 これに対してC3,C4に次のように入力します。

 C3,C4セル

=COUNT(FIND(MID(B3,SEQUENCE(LEN(B3)),1),"あ"))
=COUNT(FIND(MID(B4,SEQUENCE(LEN(B4)),1),"あうお"))

 最初の式は、セルの文字列を1文字ずつ区切り、「あ」という文字列に含まれるかどうかをそれぞれ判定して含まれるものをカウントしています。結果的に「あ」が何文字含まれるかがカウントされます(FIND関数を用いているので英字等の大文字と小文字は区別されます)。
 2番目の式も基本的に同じですが、1文字ずつ「あうお」という文字列に含まれるかどうかをカウントしていますので、結果的に「あ」「う」「お」が何文字含まれるかがカウントされます。
 

f:id:accs2014:20200120000736p:plain:right:w350

 結果はこうなります。
 式はなかなかくどいですが複数の文字種を指定できるのがメリットです。