(Excel)丸の数を数える方法

 Excelで、丸(○の記号)の数をカウントする方法についてです。
 丸のセルを数える方法と、文字列内(セル内)の丸の数を数える方法をそれぞれ紹介します。

丸が入っているセルを数える方法

 次の画像では、C3:C10の範囲にいくつかの丸(○)が入力されています。
 そこでE3セルに数式を入力し、丸の数(5)を取得しています。

 E3セル

=COUNTIF(C3:C10,"○")

 COUNTIF関数を使い、第1引数(範囲)を「C3:10」、第2引数(検索条件)を「"○"」とすることで、範囲内の丸の数をカウントしています。
 第2引数を単に「○」とするのではなく「"○"」とするところがポイントです。



 また、よくあるのが「丸に見える文字が別の文字であるため数えられない」というケースです。
 次の画像のE3セルの数式は上のものと変わりませんが、C3:C10の範囲内にある「〇」は漢数字のゼロなのでカウントできず、結果は0となっています。

 丸とそれ以外の文字が混在しているといった可能性もあるので、不安な場合は、入力されている複数種類の文字種をそれぞれカウントしてみて合計がおかしくないか確認するのが無難です。



 また、条件を加える場合はCOUNITFS関数を使います。
 次の画像では、B列の値が「法学部」であることを条件として、D列の丸の数を数えています。
 D7,D8,D9の3つのセルが該当するので、結果は3となっています。

 F3セル

=COUNTIFS(B3:B10,"法学部",D3:D10,"○")

 複数の条件(AND条件)でカウントするCOUNTIFS関数を使っています。
 具体的にはB3:B10の範囲で値が「法学部」であり、かつD3:D10の範囲で値が丸である行の数を数えています。
 同様にして条件と値の組を増やしていけば、さらに条件を増やすこともできます。

文字列に含まれる丸を数える方法

 1つの文字列内に丸がいくつかるか数える方法です。
 3つの方法を紹介しますが、後に紹介するものほど新しいバージョンの関数が必要になります。


 まず最初の方法です。次の画像ではD3セルに数式を入力してC3セル内の文字列中の丸の数を数えています。
 さらに数式をD7セルまでフィルコピー(緑色の枠の右下にある小さい四角をD7セルまでドラッグ)して、C7セルまでの5つのセルの丸を数えています。

 D3セル(下方にフィルコピー)

=LEN(C3)-LEN(SUBSTITUTE(C3,"○",""))

 「SUBSTITUTE(C3,"○","")」で文字列中の丸を「""」に置き換え、つまり削除した文字列を得ています(C3セルは「○○××△○×△欠○」なので「✕✕△×△欠」となります)。
 そしてLEN関数でその文字数(6)を数えています。
 一方で「LEN(C3)」はC3セルの元の文字数(10)です。
 この2つの数値の差(10-6=4)が丸の数となります。



 次の画像は2つ目の方法です。別の関数を使って丸の数を数えています。

 D3セル(下方にフィルコピー)

=COLUMNS(TEXTSPLIT(C3,"○"))-1

 TEXTSPLIT関数を使い、文字列を丸で区切った配列を得ています。
 具体的にはC3セルは「○○××△○×△欠○」なので「」「」「✕✕△」「✕△欠」「」の5つの値の配列が得られます(空の値(空文字列)も得られることに注意)。
 あとはCOUMNS関数(列数を数える関数)でこの値の個数を数えていますが、それだと丸の数より1つ多くなるので最後に1を引いています。
 ただし、セルが空白だとエラーになります。次のようにすれば防げますが式が長くなってしまいます。

=IFERROR(COLUMNS(TEXTSPLIT(C3,"○"))-1,0)

 


 そして3つ目の方法です。ここではREGEXREPLACE関数を使います。
 Microsoft 365でのみ使える関数ですので注意してください。

 D3セル(下方にフィルコピー)

=LEN(REGEXREPLACE(C3,"[^○]",""))

 REGEXREPLACE関数はSUBSTITUTE関数と同様に文字列の置換をする関数ですが正規表現を扱えるのがポイントです。
 「REGEXREPLACE(C3,"[^○]","")」により文字列中の丸以外の文字をすべて「""」に置き換え、つまり削除しています。
 そしてLEN関数でその文字数、つまり丸の数を数えています。