セルに入力されている文字から特定の文字の数を数式で求める方法について解説していきます。
こちらでは、以下の黄色のセルから「A」と「B」のそれぞれの数を数式で求めていきます。
・求め方
まずは、求める方法について考えていきます。
Excelには、セル内の特定の文字を数えるという機能は備わっていません。
そのため、数える仕組みを自身で作成する必要があります。
こちらでは、1つの方法について解説していきます。
こちらで紹介する方法は、「セル内の数えたい対象の文字を削除した文字列の文字数」と「元々の文字列の文字数」の差分を計算することで、対象の文字の数を求めます。
・数式の作成
では実際に、先ほどの仕組みを数式で求めていきます。
数式で求めるには、「特定の文字を消すための関数」と「文字の数を求める関数」を活用する必要があります。
「特定の文字を消すための関数」はExcelには用意されていないため、文字を置換するSUBSTITUTE関数を活用して求めていきます。
SUBSTITUTE関数の使い方は、以下の通りです
=SUBSTITUTE(文字列, 検索文字列, 置換文字列, [置換対象])
// [文字列]の中の[検索文字列]を[置換文字列]に置換する
// 文字列:対象の文字列
// 検索文字列:置換したい文字列
// 置換文字列:置換する文字列
// [置換対象]:検索文字列が複数存在する場合に、先頭から何番目の対象の文字を置換するのかを数値で指定
// ※省略時は全ての検索文字列を置換
SUBSTITUTE関数を用いて特定の文字を消すためには、以下のように活用します。
=SUBSTITUTE(B2,"A","")
「文字の数を求める関数」は、LEN関数になります。
LEN関数の使い方は、以下の通りです。
=LEN(文字列)
// 指定した[文字列]の文字の数を返す
// 文字列:対象の文字列
以下のように活用します。
=LEN(B2)
SUBSTITUTE関数とLEN関数を用いて、特定の文字の数を求めていきます。
「セル内の数えたい対象の文字を削除した文字列の文字数」は、以下のように求めることができます。
=LEN(SUBSTITUTE(B2,"A",""))
// 「A」の文字を削除した場合の文字数
そのため、以下のように、元々の文字数から上記の文字数を引くことで、特定の文字の数を求めることができます。
=LEN(B2)-LEN(SUBSTITUTE(B2,"A",""))
上記の内容は「A」の文字数になります。
「B」の文字数に関しても、以下のように求めることができます。
=LEN(B2)-LEN(SUBSTITUTE(B2,"B",""))
今回のように、関数を組み合わせることによって、好みの値を求めることができます。
特定の文字の数ではなく、他の値を求める場合などで、関数を組み合わせても求めることができない場合、もしくは、かなり複雑な数式になってしまう場合は、VBAを活用するのが良いかと思います。
(VBAとは、「Visual Basic for Applications」の略称で、ExcelやWordなどといったMicrosoft Officeのアプリケーションの機能を拡張することができるプログラミング言語になります。)