COUNTIF関数/COUNTIFS関数☆
一覧表が何行あるのかって合計を求めるのと同じくらい重要なんです。何かが売れるごとに記録されている表があれば、何回売れたかとか何個売れたかってことがわかるんです。
Excelではそういったものを数えるためには、データが数字ならCOUNT関数、文字データも含むならCOUNTA関数を使うと思うんですけど、この2つは範囲の中の全体の個数を求めるものなんですよね。
全体じゃなくて、ある商品のものだけとか、ある取引先だけとか、そういった一部だけを数えることってとっても重要なんですよね。
その時に使うのがCOUNTIF関数、COUNTIFS関数です。この2つの関数の違いは、COUNTIF関数は条件が1つだけ、COUNTIFSは条件を複数設定できることです。
SUMIF関数、SUMIFS関数とセットでよく使う関数なので解説しますね。
数を数えるって何をするの?
でも、合計するのは意味があるのはわかるんですよ。数を数えるのってなんでするのか、わたしははじめわからなかったんですね。
例えば次の販売一覧表があります。全部で10行です。よくある表ですよね。数字はわかりやすいようにしてあります。
合計というと金額を合計する、数を数えるのは個数、のように思いませんか?
でもこの表だと全部の金額は合計で求めますけど、全部の販売個数は数を数える感じではなくて販売個数を合計します。
販売個数の合計は1個が5つで2個が5つなので全部で15個ってことになりますよね。これを数を数える感じで考えてみると、個数が入っているセルを数えるので、全部10個ってなるんです。これは販売個数じゃなくて、販売した回数になるんですよね。この表だと、数を数えるというのは回数を見るということになるんです。
次の表は住宅を販売した販売記録です。
この表で全部販売件数(販売超すう)は何件(何個)ですか?と言われたら、件数はデータに入っていないんですね。
この表が間違っているんじゃなくて、1つ1つの金額が変わる大きな金額のものは1つずつしか売れないですから、個数は記録しないでおくものなのです。
このような表では、個数を数えるのは、数を数えれば販売個数求まるんですね。
こんなふうに表の記録方法によって、数を数えてできることって変わります。
だから、今は合計するのか、個数を数えるのか判断して、SUM系の関数なのかCOUNT系の関数なのか選ぶ必要があるんですよね。わたしも最近やっとわかるようになりました。はじめに合計かなって見てみて、違ったら数を数えるって判断するようにしています。
COUNTIF関数の使い方
COUNTIF関数は、一つだけの条件で数を数える関数です。
数えるCOUNTのIFなので、もしも○○だったら数えていって、そうじゃなかったら数えてるうちに入れないでって意味ですね。
数字のセル個数だけ数えるCOUNT関数に対して、数字以外でも空白じゃなきゃ数えるCOUNTA関数がありますが、COUNTIF関数に対するCOUNTAIF関数というのはありません。
文字とか数字とか関係なく、条件に当てはまるセルの数を数える関数です。
COUNTIF関数の使い方は次の通りです。
=COUNTIF(範囲,検索条件)
「検索条件」に探すものはなにかを指定して、「範囲」はそれを探す範囲ですね。
SUMIF関数だとこれに「合計範囲」というのがつきますけど、COUNTIF関数はこの2つだけで「数える範囲」っていうのはありません。
範囲の中で条件に当てはまったセル個数を出すだけです。
次の計算式は下の表で販売商品が平屋の個数を数えます。「平屋」は文字列なので””で囲みます。
=COUNTIF(C3:C7,"平屋")
もしセルF3に「平屋」と入れてそれを参照するなら、次のようになります。セル参照は””で囲みませんから。
=COUNTIF(C3:C7,F3)
もし次のようにF3からF5までのセル範囲に「平屋」「2階建て」「2.5階建て」の3つが入っていて、G3からG5までのセル範囲にその販売件数を求めたいときは、まずセルF3に計算式を作成して、セルF4とF5にオートフィルでコピーして作ることになると思うんですけど、そのセルF3に入る計算式は絶対参照を意識しなきゃですね。
セルF3は下に動きますけど、C3からC7のセル範囲は動かないので絶対参照にしましょう。
=COUNTIF($C$3:$C$7,F3)
検索条件は相対参照でよくて範囲は絶対参照になる感じですね。
COUNTIFS関数
COUNTIFS関数はCOUNTIF関数の条件が増えた感じです。
条件が増えるっていうのは、次の表みたいな表だとあるんです。
「販売商品」が「みかん」で「目的」は「ジュース」で「販売先」が「DK飲料」の販売件数を知りたいときは、条件が3つになります。そんなときにCOUNTIFS関数の登場なんです。
COUNTIFS関数の使い方は次のようにします。
=COUNTIF(検索条件範囲1,検索条件1,検索条件範囲2,検索条件2,検索条件範囲3,検索条件3,…)
「検索条件範囲」ってCOUNTIF関数では「範囲」になっていたものです。なぜか正式用語の名前が同じものなのに違うんですよね。統一してほしい。。。
検索条件範囲と検索条件を交互に入れてく感じですね。
上の条件での計算式は次の計算式です。
=COUNTIFS(C3:C12,"みかん",D3:D12,"ジュース",E3:E12,"DK飲料")
C3からC12のセル範囲の中で「みかん」のもので、しかも、D3からD12のセル範囲の中で「ジュース」のもので、しかも、E3からE12のセル範囲の中で「DK飲料」のものの個数を数えます。個数を数えるということは行数を数えるってことで、件数を数えるってことです。みかんをジュース用としてDK飲料が買った回数は3回っていう答えが出るんです。
セルI2に販売先を入れたら、それぞれの販売商品と目的ごとの件数を求めるという表をI列以降に作成するときは、セルJ4に計算式を一つ作って、セルK6までのセル範囲にコピーして作るのが一番効率いいですよね。でもその時は絶対参照を意識しなければいけないです!
セルI1で考えると、販売商品の条件はC3からC12までのセル範囲でセルI4のもの、目的の条件はD3からD12までのセル範囲でセルJ3のもの、販売先の条件はE3からE12までのセル範囲でセルI2のものっていう条件になるんですけど、左側の表のセル範囲は絶対そこなのでこれは絶対参照ですね。I4の販売商品は縦方向は動くけど必ずI列なのでIの前に$です。J2の販売先は横方向は動くけど必ず3行目なので3の前に$です。I2の販売先は必ずI2なのでIの前と2の前に$がつきます。
=COUNTIFS($C$3:$C$12,$I4,$D$3:$D$12,J$3,$E$3:$E$12,$I$2)
この計算式をセルJ4に入れて、セルK6のセル範囲までコピーすれば完成します。
実際の利用例
上の2通りはCOUNTIF関数とCOUNTIFS関数でよくある実例です。SUMIF関数と同じように、集計するのに便利なんですね。
それとはちょっと違った使い方なんですけど、こういう実例もあります。
ある会社の社員一覧表を作りました。この会社では同じ名前で同じ生年の人はいません。
でも、社員が7人しかいないのに、一覧表では8人いることになっているので、これは同じ人を2回入力してるかもしれないのです。
このときは、その行の社員を社員全体で探して、それから、その行の生年を生年全体から探してその行数を数えてみます。重複して登録されていなければ1回だけという結果になるはずです。重複していたら2以上になるはずです。
この時の計算式は、次のようになります。
=COUNTIFS($B$3:$B$10,B3,$C$3:$C$10,C3)
この計算式をセルD3に作成して下にオートフィルすると全員分の個数が計算されます。
1994生まれのあべさんのデータが重複してたみたいですね。
この計算式の方法を使って1つの表の中の重複のほかに、2つの表で一致しているものがあるのかってチェックもできるんですよ!
まとめ
今回は、個数や件数を数えるCOUNTIF関数と、探す条件が複数の時に使うCOUNTIFS関数を紹介しました。
どっちもSUMIF関数のように、データを集計してまとめるのに便利ですね。
そういえばあのお客さん、今年になってあまり注文してくれないなぁとか、あのお客さん先月まではどらやきを買ってくれたけど今月はお団子買ってくれるほうが全然多いな、ってことがわかるので、それならこのお客さんにはこういうサービスや、来店したときにこういう案内しようとか考えることができると思います。
これってめっちゃお客さんファーストじゃないですか!すごい!!
COUNTIF関数、COUNTIFS関数を使えばそういうことも簡単にわかるので、ぜひ活用してみてくださいね!!
関連関数
AVRAGEIF関数:一部の平均を求めます
AVRAGEIFS関数:複数条件の一部の平均を求めます
MAXIFS関数:一部の最大値を求めます
MINIFS関数:一部の最小値を求めます
SUMIF関数:一部の合計を求めます
SUMIFS関数:複数条件の合計を求めます