EXCEL 小技・テクニック集

COUNTIF,COUNTIFSの使い方を徹底解説!条件の個数カウントを極めよう

COUNTIF,COUNTIFSの使い方を徹底解説!条件の個数カウントを極めよう

条件指定でデータの個数をカウント!COUNTIF,COUNTIFSの使い方

データの個数をカウントする際に一般的な関数がCOUNTIF,COUNTIFSですが、その条件指定で上手くカウントできないこともしばしば。
今回はその条件指定の方法について、様々な使い方、パターンを紹介したいと思います。

COUNTIFで条件に合致した個数をカウントしよう

countif1

16行目以降のデータ群から、D列の性別が対象のものについてカウントします。
この時の数式がこちらです。

countif2

▼D2の数式
=COUNTIF($D$16:$D$1048576,C2)

一つ目の引数にはカウントしたい範囲の指定($D$16:$D$1048576)
この際に気を付けるポイントは、D3セル(一つ下のセル)にコピーする際に同じ範囲指定を行うため
$を忘れないでください。

二つ目の引数には条件となるC2を指定します。
これで範囲の中から「男」に合致したカウント数が結果に表示されます。

あとはこの数式をD3にコピーすれば「女」のカウント数が結果に表示されます。

COUNTIFで含むときや含まないときの指定方法

次に、条件指定で「文字列を含む」ときのカウント、「文字列を含まない」ときのカウント
方法をご紹介します。
この例では、名前にテストが含むか含まないかをカウントします。

countif3

countif4

▼D6の数式
=COUNTIF($C$16:$C$1048576,"*"&C6&"*")

文字列を含むときにカウントする際、ワイルドカードの"*"(アスタリスク)を使用します。
"*"&C6&"*"

ここでよく間違うポイントとして"*C6*"としてしまう人が多いのでご注意。
これではC6セルの文字列を含むのではなく"C6"を含むになってしまいます。

countif5

▼D7の数式
=COUNTIF($C$16:$C$1048576,C7)

また、アスタリスクは初めからセル内に含まれている場合でも同様のカウントが行えます。
こちらの方が数式がスッキリしますね。好みで使い分けてください。

それでは次に「文字列を含まない」のカウントを見てみましょう。

countif6

▼D8の数式
=COUNTIF($C$16:$C$351,"<>*"&C6&"*")

演算子というやつですね。
<>がイコールでないという意味になります。
※ダブルコーテーションやアスタリスクの付け方に気を付けてください。

複数条件でのカウントならCOUNTIFSで

先ほどまでの例では一つの条件が合うか合わないかで個数をカウントしていましたが、複数条件でのカウントを行いたいときはCOUNTIFSを使用します。
次の例では期間内での個数をカウントします。

countif7

countif8

▼D11の数式
=COUNTIFS($B$16:$B$1048576,">="&B11,$B$16:$B$1048576,"<="&C11)

COUNTIFでは
(範囲,条件)で終わっていましたがCOUNTIFSでは
(範囲1,条件1,範囲2,条件2…)と複数の範囲と条件を指定することが可能です。

D11のセルではB11(1月1日)以上、C11(1月31日)以下の個数をカウントしています。
当然、ここに他の条件を付けることも可能ですので「テスト」を除くとか「男だけ」とかも
繋げることも可能です。

以上、COUNTIF,COUNTIFSの使い方についてご紹介させていただきました。
個数のカウントではなく数を足し合わせたい場合はSUMIF,SUMIFSが使えますのでコチラの記事をご覧ください。
EXCEL 集計関数を極めよう!様々な集計関数まとめ

罫線

文字列抽出・変更・置換系トピック

SUBSTITUTEで複数置換を一気に行う方法

EXCEL Find関数で複数条件指定したい

EXCEL 置換関数にワイルドカードが使えない!代わりの方法を考えました。

EXCEL findを右から(後ろから)検索する方法

EXCEL 文字列の分割(区切り位置)を関数で行う方法

EXCELで文字列の記号を全て削除!記号を一覧にしてSUBSTITUTE関数で一括置換しよう

EXCELで改行を削除(置換)して消す方法/実はSUBSTITUTE関数でも出来るんです!

EXCELで不要な空白(文字列前後の空白や連続した空白)はtrim関数で削除!

EXCELで特定の文字列を含む行を抽出する関数

検索系トピック

VLOOKUPでのエラー(#N/A)の対処はIFやIFERRORを使って解決しよう!

VLOOKUPの近似一致(近似値)・あいまい検索って何に使うの?

EXCELで条件に一致したデータを検索&抽出するならVLOOKUP関数

VLOOKUPを"文字列を含む"で行う方法

VLOOKUP 検索範囲にワイルドカード

VLOOKUPを横にコピー!複数列をまとめて抽出するために列番号をずらす方法

VLOOKUPで左側(右から左に)の値を取得する方法はあるのか

VLOOKUPを複数条件/2つの条件を検索値にする方法

VLOOKUPで複数結果を全て抽出・表示する方法/重複したときに2番目以降も抽出できる?

SUMPRODUCT関数では文字列を抽出出来ない/条件に合致した文字列を抽出するならVLOOKUP

集計・ピボット系トピック

SUMIFの条件でワイルドカード(アスタリスク)を使う方法

COUNTIFを含む条件でカウントする方法/ワイルドカード(アスタリスク)を使って含む条件を行おう

SUMIFを複数条件で集計/2つ以上の条件で集計したいときはSUMIFS関数で!

COUNTIFで空白以外(空白ではないセル)のカウントを行う方法

AVERAGEで0以外を集計するならAVERAGEIFで!エクセル平均集計を自在に

AVERAGEIFを複数条件で平均値を算出したいならAVERAGEIFSで

EXCEL 集計関数を極めよう!様々な集計関数まとめ

EXCELで条件付きの合計を算出する時はSUMではなくSUMIFまたはSUMFISで

EXCELで期間集計(日付や範囲指定での抽出合計)ならSUMIFS関数

COUNTIF,COUNTIFSの使い方を徹底解説!条件の個数カウントを極めよう

掛け算の関数PRODUCT関数!SUM関数の掛け算版があるなんて知らなかった…

EXCELの月別集計(日別データを月別に集計する方法)はSUMIFS関数で

SUMIF(SUMIFS)の計算が重い・遅いときは集計の鉄板ピボットテーブル?

ピボットテーブルの初期設定(デフォルト)が変えられない!私なりの解決策

ピボット更新で書式がもとに戻る時の対応

ピボットの空白部分を埋める方法

EXCEL ピボットテーブルで重い・遅いときの改善方法

EXCELで行ずつ・行おきの集計方法を紹介

VLOOKUPで合計(集計)は出せない!VLOOKUPの代わりにあの関数で条件付き合計を出そう!

EXCELで時間帯別に集計する方法/日時データから時間を抽出

マクロで自動化!簡易ツールの作成やVBAの活用例を紹介

VBAでCSVファイルを結合(一つにまとめる)ツールを作成しました。

EXCEL フォルダ内のブック(ファイル)を結合(統合)/VBAマクロで複数ファイルをまとめる!

EXCELで複数画像を一括挿入貼り付け!VBA(マクロ)で作っちゃいました。

EXCEL 複数のグラフを一括作成/マクロ(VBA)で大量グラフを自動作成するツール!

EXCEL 全シート名を取得し一覧に!VBAを利用して一瞬で解決

EXCEL シート毎にファイル分割保存する方法/マクロ(VBA)で解決!

EXCELで複数ファイルを集計するツール/マクロ(VBA)を使って作ってみました。

EXCELマクロ(VBA)って何?とりあえず試しに使ってみよう

その他EXCELテクニック

エクセルのプルダウンを設定(作成)する方法を簡単解説!

EXCEL プルダウン(リスト)を連動させる二つの方法/入力規則を使いこなせ!

エクセルでエラーを表示しない方法/ISERROR関数とIFERROR関数で解決

EXCEL 文字の繰り返し関数(REPT関数)

EXCEL リンクでシート間を楽々移動!ハイパーリンクで別シートへ移動

EXCEL業務効率化!私が行っている4つの効率化テクニック

IF関数でワイルドカード(アスタリスク)は使えない?IF関数で含むを条件にする方法

EXCEL 時間の足し算(計算)ってどうやるの?時・分・秒の計算方法まとめました

EXCEL アルファベットでオートフィルは無理?

1行おきに行挿入する方法

EXCEL よく使うショートカット

EXCELフィルタをショートカットで行う方法

EXCEL 空白セルを一括で埋める方法

EXCELで2列以上の複数列を一列にまとめる方法

EXCEL 大量シートの管理/indirect関数の活用

EXCELで重複したデータをカウント!連番をつけ重複データを見つける方法

エクセルで行または列を固定し、スクロールさせずに常に見える状態にする方法

EXCELファイルサイズが異常に大きくなった原因/容量肥大化を縮小(解消)する方法ある?

EXCEL 列の番号取得はCOLUMN関数で/アルファベットの取得方法は?

EXCELでフィルタした行を削除するのが重い(遅い)時の解決方法

EXCELでシート名の参照なんて出来たの!?indirect関数の使い方

コラム

エクセル使える人、出来る人とはどの程度のレベル?一般事務・IT企業で求められるスキル

罫線

★人気記事 TOP10

SUBSTITUTEで複数置換を一気に行う方法

VLOOKUP 検索範囲にワイルドカード

EXCEL Find関数で複数条件指定したい

EXCELで期間集計(日付や範囲指定での抽出合計)ならSUMIFS関数

VLOOKUPを複数条件/2つの条件を検索値にする方法

EXCEL 置換関数にワイルドカードが使えない!代わりの方法を考えました。

VLOOKUPを"文字列を含む"で行う方法

EXCEL findを右から(後ろから)検索する方法

VLOOKUPの近似一致(近似値)・あいまい検索って何に使うの?

EXCEL 大量シートの管理/indirect関数の活用

★新着記事

VBAでCSVファイルを結合(一つにまとめる)ツールを作成しました。

エクセル使える人、出来る人とはどの程度のレベル?一般事務・IT企業で求められるスキル

エクセルのプルダウンを設定(作成)する方法を簡単解説!

EXCELでシート名の参照なんて出来たの!?indirect関数の使い方

EXCELで時間帯別に集計する方法/日時データから時間を抽出

EXCELで複数ファイルを集計するツール/マクロ(VBA)を使って作ってみました。

EXCELで条件付きの合計を算出する時はSUMではなくSUMIFまたはSUMFISで

SUMPRODUCT関数では文字列を抽出出来ない/条件に合致した文字列を抽出するならVLOOKUP

EXCELでお困りの方へ

EXCEL効率化したい仕事人

当サイトでは皆さまがEXCEL作業で行き詰った問題を解決するべく王道のテクニックからちょっと特殊なテクニックまで 様々な中〜上級技・プチテクニックを公開し、少しでも皆様の業務効率改善に役立てていただければと思い、ネタをまとめています。

EXCELの作業で悩み・お困りごとはありませんか?
集計に時間がかかり過ぎ。効率化をしたい。などなど日頃から奮闘しているあなたに少しでも参考になる情報を与えることが出来れば幸いです。

質問・相談なども受け付けますのでお気軽にメールください。
忙しくなければその日のうちに返信させていただきますが、質問の内容によっては後日改めて回答させていただきます。

※サンプルのエクセルファイルなど添付していただくと回答もスムーズに行える場合が多いです。

お問い合わせはコチラ