前々回、関数はこの5つさえ知っておけばだいたいOKと書きました。
【Excel/関数】関数はこの5つさえ知っていればOKだと思う~(私にもできたんだから)あなたにもできる!エクセル関数を使いこなそう① ~
①IF
②COUNTIF
③SUMIF
④VLOOKUP
⑤LEFT,RIGHT,MID(文字列取り出し関数)
今回はそのうちの ② COUNTIF関数 をざっくり解説。
何かと使う関数です。
■ COUNTIF関数
指定した範囲内の指定した条件に一致する個数をカウントします。
=COUNTIF( 範囲 , 条件 )
以下の表を例にします。テストの点数が100点の数を数えます。
検索する範囲はC2~E7、検索条件100を指定します。
=COUNTIF(C2:E7,100)
ダイアログボックスは上の図のようになります。
範囲に探したい範囲を選択し、検索条件検索条件を入力します。
・範囲の指定
例のように複数列・複数行の範囲も指定できます。一列、一行ももちろんOK。
$A:$A のように行を指定せず列のみの指定でもOK。
C2:C7,D2:D7 のように離れた範囲を複数指定するのはできません。エラーになります。
これはだめ↓
どうしても離れた範囲を指定したい場合は・・・COUNTIFを足せばいいんです!
=COUNTIF(C2:C7,100) + COUNTIF(E2:E7,100)
それぞれのCOUNTIFの結果の 1 と 0 が足されて 1になります。
・条件の指定
数値、文字列、〇〇より大きいなどの比較条件式が指定できます。
セル位置での指定もできます。
数値はそのまま入力、文字列・比較条件式はダブルクォーテーションで囲んで入力します。
数値:=COUNTIF(C2:E7,100)
文字列:=COUNTIF(B2:B7,”田中”)
数値:=COUNTIF(C2:E7,”>70″)
関数ダイアログボックスを利用した場合、文字列・比較条件式の場合はダブルクォーテーションを付けずに入力しても勝手につけてくれます。便利~
比較条件式は「全角」で入力するとただの文字列とみなされうまくいきません。半角で入力します!
文字列検索で、ワイルドカードも使用可能です。
条件欄に *田* と指定すると、「田」を含む「田中」「山田」をカウントします。
=COUNTIF(B2:B7, ” *田* ” )
セルで指定する場合。セル位置を入力します。ダイアログボックス利用の場合はセルを指定します。
セルG1に入力された「田中」をセル範囲「B2:B7」から探します。
=COUNTIF(B2:B7,G1)
クラスA・B・Cの個数をカウントする場合
検索範囲に絶対参照(※)を使うと便利です。
一番上のセルにCOUNTIF関数を入力する際に範囲を絶対参照で指定します。
検索条件は絶対参照にせずそのまま。
=COUNTIF($A$2:$A$7,A9)
一番上の式を下までコピーすると、検索範囲の位置は変わらず検索条件のセル参照はいい感じに変わってくれます。
セル指定で比較条件式を指定する場合は注意が必要です。
セルに入力された数位以上の点数を検索する場合。
=COUNTIF(B2:B7,”>=G1”) とするとだめで
=COUNTIF(B2:B7,“>=”& G1 ) と比較演算子のところだけをダブルクォーテーションで囲み & でセル位置をつなぎます。
■ COUNTIFの進化系、COUNTIFS関数とは
COUNTIFS関数はExcel2007で登場したそうです。
COUNTIF関数で条件を2つ3つ指定できればいいのに・・・と思っていたら、夢の関数を作ってくれた!
最大127個の条件を指定できるそうな(そんなに使わないけど・・・)
検索範囲を指定、条件を指定、次の検索範囲を指定、条件を指定としていきます。
=COUNTIFS( 範囲1 , 条件1 , 範囲2 , 条件2 , 範囲3 , 条件3・・・)
すべての条件を満たす「かつ」の件数をカウントします。
条件1もOK、条件2もOK、条件3もOK、すべてOKで1とカウント。
条件1もOK、条件2もOK、条件3は✕、の場合はカウントされず。
例です。下の表でカテゴリが「食品」で売上個数が20以上に該当する個数をカウントします。
=COUNTIFS( B2:B8 , “食品” , D2:D8 , “>=20” )
2行目、3行目、5行目、6行目がカウントされて結果は 4 。
8行目はカテゴリは食品だが売上個数が20未満なのでカウントされず。
ダイアログボックスはこんな感じ
■ COUNTシリーズ COUNT、COUNTA、COUNTBLANK
COUNT仲間にCOUNT、COUNTA、COUNTBLANKがあります。
COUNTは検索範囲内の「数値のセルの個数」の数を数えます。
COUNTAは検索範囲内の「空白でないセルの個数」の数を数えます。
つまり数値でも文字列でもカウント。
COUNTBLANKは検索範囲内の「空白のセルの個数」の数を数えます。
COUNTとCOUNTAは検索範囲を複数個所指定できます。COUNTBLANKはCOUNTIFと同じ、離れた範囲は指定できず。
いやあ、またしても自分も勉強になりました。
実はCOUNTIFの検索条件にワイルドカードを指定できることを今回初めて知りました。てへ。
※絶対参照
エクセル関数の参照方式には「相対参照」と「絶対参照」があります。
相対参照は数式をコピーしたときに参照範囲が自動で変更されます 。
絶対参照は数式をコピーしたときに参照範囲が変わらず固定されます。
動かしたくない列および行の前に「$」を入力することで固定されます。
この二つをうまく合わせて利用すると便利です。
行も列も範囲を固定したいときは $A$2:$A$7 と列・行の前に「$」を入力します。
列だけ固定したいときは $A2 と列の前だけに「$」を入力します。
行だけ固定したいときは A$2 と行番号の前だけに「$」を入力します。
「$」の入力は面倒なので、「F4」キーを押すと絶対参照の「$」の入力切替ができます。
F4キー1回:$A$2:$A$7 行列固定
F4キー2回:A$2:A$7 行固定
F4キー3回:$A2:$A7 列固定
F4キー4回:A2:A7 相対参照(「$」消えて元に戻る)
関数ダイアログボックスで指定した際、もしくは参照範囲を選択した状態でF4キーを押すことで変わります。
先述の例で、クラスA・B・Cの個数をカウントする際に、検索範囲は絶対参照にして、検索条件は相対参照にしています。一番上の式をしたにコピーしたときに検索範囲は固定され、検索条件はセル位置に応じて参照行が変わっています。便利~
累計を計算したいときなんかも便利です。
最初の行を「A$2」と固定してしまいます。
絶対参照の「$」をつけるとき、あれ?行を固定したいんだっけ?列を固定したいんだっけ?どこに「$」つけたいんだっけ?とわからなくなるとことがあります(私だけ?)
固定したいところの前に「$」でぶすっと杭を打ち、列または行を固定するぞ!というイメージをすると、なんか理解しやすくなります(私だけ?)
ざっくり、といいながらやはり長くなりました。
最後までお読みいただきありがとうございました!
関数はこの5つさえ知っていればOK!シリーズ
- 【Excel/関数】関数はこの5つさえ知っていればOKだと思う~(私にもできたんだから)あなたにもできる!エクセル関数を使いこなそう① ~
- 【Excel/関数】ザックリ解説 IF関数~(私にもできたんだから)あなたにもできる!エクセル関数を使いこなそう② ~
- 【Excel/関数】ザックリ解説SUMIF関数~(私にもできたんだから)あなたにもできる!エクセル関数を使いこなそう④ ~
- 【Excel/関数】ザックリ解説VLOOKUP関数~(私にもできたんだから)あなたにもできる!エクセル関数を使いこなそう⑤ ~
- 【Excel/関数】ザックリ解説 文字列操作関数~(私にもできたんだから)あなたにもできる!エクセル関数を使いこなそう⑥ ~
コメント