いきなり答える備忘録

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

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

 Excelで、文字列中に含まれる特定の部分文字列の数を数える方法についてです。
 SUBSTITUTE/LEN関数を使う方法(部分文字列を空文字列に置き換えて文字数を比較する)が有名ですが、ここでは新しい関数を使う方法を試してみます。

  • TEXTSPLIT関数を使って、文字列中に指定した文字列がいくつ含まれているか数えることができます。複数種の文字列を数えることもできます。

手順

 ここでは、それぞれの行でB列の文字列にC列の文字列がいくつ含まれているかをカウントするものとします。

 そこでD3セルに次のような式を入力して下方にコピーしています。

 D3セル

=COLUMNS(TEXTSPLIT(B3,C3))-1

 TEXTSPLIT関数を使い、C3セルの文字列を区切り文字とみなしてB3セルの文字を分割しています。
 これによりB3セルの文字列は「含まれているC3セルの文字列の数+1」個の列に分割されます。そこでCOLUMNS関数でその列数を数えて1を引けばC3セルの文字列の数が求まるというわけです。


 さらに複数種類の文字列を数えることも可能です。
 次の例では、B列の文字列にC列の文字列とD列の文字列が合計でいくつ含まれているかをカウントしています。

 E3セル

=COLUMNS(TEXTSPLIT(B3,C3:D3))-1

 TEXTSPLIT関数の引数が「C3:D3」になっただけなのですが、これだけで2つの部分文字列をそれぞれ数えた合計値が得られます。これが(TEXTSPLIT関数の)便利なポイントで、SUBSTITUTE/LEN関数を使う方法だと別々に数えて足し算する必要があります。