スプレッドシートを利用していて条件に一致するセルの数をカウントしたいと思ったことはありませんか?この記事ではcountif関数を使い条件に適合するセルをカウントする方法について説明します。
条件に適合するものだけ数えるcountif関数
countif関数は条件に適合するセルの数をカウントする関数で、記入方法は下記の通り、最初の引数に範囲、2つ目の引数が条件となります。
=countif(範囲,条件)
条件の部分には数値、テキスト、日付、参照セル、論理式を入れる事が可能です。
- 条件に適合するセルの数を数える関数
- 『範囲』と『条件』を指定する
- 『条件』には数値、文字列、日付、参照セル、論理式が入れることが可能
- 『条件』に数値、文字列を入れる場合は””(ダブルクォーテーション)で囲む
いくつか例を見ていきましょう。
countif関数で数字を基準にカウントする
例として年齢が記入された名簿の中から成人、つまり指定範囲内で18以上の数字が入力されているセルだけをカウントしたいとします。
最初の範囲の指定は、年齢が入力されているセルになるのでC4からC12を指定するため『C4:C12』となり、条件のところには『18以上』を示す『<=18』、が『""』(ダブルクォーテーション)で囲まれて入ります。
=countif(C4:C12,"<=18")
なお、条件の部分は、『17より大きい』でも結果は一緒になります。
=countif(C4:C12,">17")
では、すぐ下の未成年のセルに何が入っているかというと範囲は一緒で条件が『17以下』または『18より小さい』に代わります。
=countif(C4:C12,"<=17")
=countif(C4:C12,"<18")
ちなみに18歳のみをカウントしたい場合は条件を『18と等しい』にすればいいだけです。年齢ごとに人数をカウントしたい場合はカウントしたい年齢の数だけこの記述を増やせばいいだけですね。
=countif(C4:C12,"=18")
countif関数で特定の文字列をカウントする
次に特定の文字列が含まれるセル数をカウントしてみましょう。基本的に条件のところにカウントしたい文字列を入力するだけとなります。
=countif(C4:C12,"本田")
この場合は指定範囲内で『本田』という文字と一致するものだけがカウントされ、『エドモンド本田』や『本田圭佑』のように前後に特定の文字がある場合はカウントされません。ですのでフォーマットが整っていないシートなどから単語の入ったセル数をカウントしたいというときには向きません。
では名字が同じならカウントしたい、または住所禄から特定の県に住んでいる数をカウントしたい時などはどうすればいいでしょうか。そのような時に活用したいのがワイルドカードです。詳しくは後述しますが、任意の文字が前後に入っていてもカウントできるようにするには下記のように記述します。
ただの『本田』も『エドモンド本田』も『本田圭佑』もカウントされる
=countif(B3:B13,"*本田*")
神奈川県に住んでいる人をカウントする
=countif(B3:B13,"神奈川県*")
ワイルドカードの活用
文字のカウントを行う時はワイルドカードをうまく使うことで、カウント時の条件を細かく絞り込むできます。
?(疑問符)で任意の1文字
文字列に『?』を入れると任意の1文字が挟まれた文字だけが条件に一致するようになります。
*(アスタリスク)で任意の数文字
間に任意の数文字を条件として指定したい場合は『*』(アスタリスク)を使用します。
例:下記のテキスト範囲に『?』と『*』を用いて条件付き書式を設定してみました。
- アイス
- アリス
- アムス
- アキレス
- アリストテレス
- アリとキリギリス
『?』や『*』を条件として指定したい場合は~(チルダ)
『?』や『*』自体を条件にしたい時はエスケープ文字として『~』を文字の前につけることで条件として指定できます。
countif関数で空白以外をカウントする
範囲内で空白以外のセル数をカウントするには条件を”<>“にします。こうすると何らかの値が入ったセルはカウントされます。
=countif(C4:C12,"<>")
countif関数で日付をカウントする
単純に日付をカウントしたい場合は条件のところにyyyy/mm/ddの形式で入力します。
=countif(C4:C12,"2022/06/11")
countif関数で別シートの値をカウントする
>別シートの値を参照して、条件に合うものをカウントしたい時は下記のように記述します。
最初に紹介したシートの名前が『名簿』というシート名だったとして、そのシートから同じ18歳以上という条件で呼び出した例です。『”』(シングルクォーテーション)でシート名を括り!(エクスクラメーションマーク)をつけてから通常通りセルを指定するだけです。
=countif(‘名簿’!C4:C12,”<=18")
別シートの値を参照する方法については別の記事で解説しています。
チェックボックスにチェックが入ったものをカウントする
スプレッドシートのチェックボックスはチェックが入っている状態がTRUE、入っていない状態がFALSEというように判定されます。チェックボックスにチェックが入っている時は条件にtrueを入れます。
=countif(C4:C12,true)
未チェックのみ数えたい場合は条件をfalseにします。
=countif(C4:C12,false)
フォームなどの回答で行がどんどん追加されていく場合は、範囲に列を指定してしまいましょう。
=countif(C:C,true)
複数条件を設定する
countif関数を使用していると、複数条件を満たす場合はどうすればいいのかと思う時があると思います。そんな時はcountifs関数を使用します。
まとめ
条件に一致するセル数をカウントするcountif関数について解説してきました。
アンケートの集計時であったりチェックボックスのチェックが入っている数、プルダウン項目の切り替えによってカウントするなんてことも可能です。
スプレッドシートの関数については基本的なものを紹介しています
スプレッドシートの使い方については下記の記事でまとめていますので併せてお読みください。