Excel使いこなしの基礎と応用

COUNTIFS関数を使ってクロス集計表

使用関数:COUNTIFS

COUNTIFS関数は複数の条件全てに合致する値を数えます。複数の項目別にデータをカウントしたい時に重宝な関数です。その基本構成と使い方、不等号(比較演算子)を使った条件の指定方法などを図解します。

目次


COUNTIFSの基本構成と使い方

条件で検索したデータの個数を数えるのがCOUNTIF(カウント・イフ)。COUNTIFS(カウント・イフ・エス)は複数の条件で検索したデータの個数を数えます。

構成を見るために、引数のダイアログを開きましょう。 「数式」タブ「関数ライブラリ」→「その他の関数▼」→「統計▶」から「COUNTIFS」をクリックします。
「関数ライブラリ」→「その他の関数▼」→「統計」→COUNTIFSをクリック
COUNTIFSの引数は「検索条件範囲」と「検索条件」の2つがセットになっていて、これを「1」から番号順に必要なだけ指定していきます。
ダイアログを開くと最初は1のセットだけ。Tabキーを押してカーソルを次に移動させる度に、引数のボックスが増えていきます。途中でスクロールバーが出るので、スライドさせることもできます。
COUNTIFSの引数は「検索条件範囲」と「検索条件」の2つがセット

例えば、名簿から男女別、年代別に人数を表示させたいとします。
名簿から男女別、年代別の人数を表示
上図の右側にある赤線で囲ったクロス集計表を作るわけですが、このような場合、まず表の最初のセル(最上左端)に入れる数式を考えます。
上図では「男性」と「20代」がクロスした「K3」セルですね。
即ち、「男性」を検索する条件と、「20代」を検索する条件の2つをCOUNTIFS関数で指定すればいいということです。

ダイアログの1番めの検索条件を指定してみましょう。
検索条件範囲1」には「性別」の列範囲を指定します。列全体「G:G」を指定しても、入力値が入ったセル範囲を指定してもどちらでもOK。ただ、セル範囲を指定するときはF4キーを押して絶対参照にしておきましょう。
検索条件1」には文字列で「"男"」を指定します。セル参照でもOK。ただ、後々データの追加や入れ替えなどで入力値が変わる恐れがあるなら、文字列指定が安全です。
検索条件範囲1に性別の範囲、検索条件1に"男"を指定

2番めの条件を指定します。
検索条件範囲2」には「年代」の列範囲を指定します。列全体「E:E」でも、セル範囲でもOK。ここも、セル範囲を指定するときはF4キーを押して絶対参照にしておきます。
検索条件2」にはクロス集計表の「20」と入ったセル「I3」をクリックして指定します。F4キーを3回押して絶対列参照「$I3」にしておきます。後で数式をフィルコピーするために列だけを固定させたわけです。
検索条件範囲2に年代の範囲、検索条件2に20年代を指定
数式は「=COUNTIFS($G$3:$G$42,"男",$E$3:$E$42,$I3)
性別の範囲から男を探し更にその中から20代を探してカウントする」

20代男性の人数」が表示されたセルのフィルハンドルをダブルクリックするか、下まで引っ張って、この数式をオートフィルコピーします。
数式をオートフィルコピー
また、「女性」「20代」のセルに数式をコピペして、「検索条件1」の「"男"」を「"女"」に変えてから、同じように下までフィルコピーして完了です。
COUNTIFSでの集計が完了

COUNTIFSで0が返されるときのチェックポイント

COUNTIFSでは幾つかの外せない条件指定ルールがあります。これを守らないと、多くの場合「0」が返ってきます。

「検索条件範囲」は行(列)数を揃える

複数の条件を指定する際は、「検索条件範囲」の全てで行(列)数が同じである必要があります。
「検索条件範囲」は行(列)数を揃える

不等号(比較演算子)を使った条件はダブルクォーテーション「"」で括る

文字列の指定をダブルクォーテーションで括るのは周知ですが、不等号を使った数式も同様にダブルクォーテーションで括る必要があります。「25歳以上45歳未満」を「">=25"」「"<45"」と指定するということです。文字列と同様、数値と明確に区別するためのルールです。
不等号(比較演算子)を使った条件はダブルクォーテーション「"」で括る

セル番地と不等号(比較演算子)はアンパサンド「&」でつなげる

不等号(比較演算子)を使った数式にセル参照を組み込む場合はダブルクォーテーションの他にアンパサンド「&」を入れます。
例えば「30以上」という条件を比較演算子とセル参照で指定するなら、まず比較演算子をダブルクォーテーションで「">="」と囲い、続けてアンパサンド「&」を入力、その後にセルをクリックして指定します。「">="&I4
セル番地と不等号(比較演算子)はアンパサンド「&」でつなげる
ダブルクォーテーションの位置に注意して下さい。
ダブルクォーテーションの正しい位置と誤った位置

「<>」を「空白以外」として使う

不等号(比較演算子)の中で「~と等しくない」を表す「<>」は、「<>20」とすれば「20以外」を表しますが、単独だと「空白ではない=空白以外」が転じて「全ての値」を意味します。
これを応用して、最初の章で使ったクロス集計表で数式をフィルコピーした際に「総計」までを表示させてみます。

年代を表す数字の入った列の最終セルに「<>」を入力します。(「20代」の男性・女性セルには下図のようにそれぞれの数式が挿入されています)
年代を表す数字の入った列の最終セルに<>を入力
20代の2つのセルを選択して、フィルハンドルをダブルクリックするか、「総計」行まで引っ張ってオートフィルコピーします。
「総計」行までオートフィルコピー
「総計」のセルに入った数式はこうなります。
=COUNTIFS($G$3:$G$42,"男",$E$3:$E$42,$I7)
$I7」には「<>」が入っているので、「全ての年代」を指定したことになります。「性別の範囲から男を探し、年代からは全てをカウントする」

▶検索して数えるCOUNTIF関数


高機能の表計算ソフトExcelを活用すれば、仕事や私生活で、今あなたが必要とするいろいろなモノが作れます。その作成手順とデザイン、アイデアのヒントまでを可能な限り詳細にわかりやすくナビします。基本操作や関数、グラフに関する解説記事とともにご利用下さい。