• ベストアンサー

EXCELで数値の入ったセルがいくつあるか計数

EXCELで数値の入ったセルがいくつあるか計数したい。 どうすればいいか。 例題 1~200までの値の範囲でF1~F300までの各セルにランダムに数値が入っています。 これを次の4つに分類し各カウントをする。 (a):値が1~5までが何個 (b):値が6~10まで何個 (c):値が11~20まで何個 (d):値が21以上何個

質問者が選んだベストアンサー

  • ベストアンサー
  • comv
  • ベストアンサー率52% (322/612)
回答No.1

こんにちは    A  B  C 1  1  5  式 2  6 10  ↓ 3 11 20  ↓ 4 21     ↓ セルC1に 式 =COUNTIF($F$1:$F$300,">="&A1)-COUNTIF($F$1:$F$300,">"&B1) C4までコピー で試してみて下さい

taktta
質問者

お礼

どうもありがとうございます。うまく解決しました。 なお最後のC4式で,">"&B4は 意味上ヌルより大でヌルより大は全てのセルが該当するよう考えてしまうのですが、事実はカウント0になりますね。この理由はなんなんでしょうか。

taktta
質問者

補足

非常にエレガントな回答、かつ応用がきく解法を示され感動いたしました。 ところで,">="&A1が1以上という意味だとはわかりますが(答えから)、この条件式の&は論理式のANDとイコールなのでしょうか。初心者ですのですみませんお教えください。

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.5

#2です。 >残念ながら意味がわかりません。-->残念です。 やっていることは (1)セルの値が1~5にはコード1を    値が6~10までにはコード2を    値が11~20までにはコード3を    値が21以上にはコード4を一旦別列(使っていない列)にセットしています。その表の作り方がちょっと工夫が必要です。 (2)その後上記の新たにセットしたコード1-4について、件数を数えるわけです。 VLOOKUP関数は解説書で勉強してください。 WEBでもVLOOKUPで照会すると、沢山解説が出てきます。 http://www.rericca.com/qa/ex6.htmほか多数。 第4引数が本件のようにTRUEと他にFALSEの場合があり、用途が変ります。 FALSEは表引き TRUEは封書の重さと郵便料金計算や区分分けをイメージしてください。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

#2です。 >残念ながら意味がわかりません。-->残念です。 やっていることは (1)セルの値が1~5にはコード1を    値が6~10までにはコード2を    値が11~20までにはコード3を    値が21以上にはコード4を一旦別列(使っていない列)にセットしています。その表の作り方がちょっと工夫が必要です。 (2)その後上記の新たにセットしたコード1-4について、件数を数えるわけです。 VLOOKUP関数は解説書で勉強してください。 WEBでもVLOOKUPで照会すると、沢山解説が出てきます。 http://www.rericca.com/qa/ex6.htmほか多数。 第4引数が本件のようにTRUEと他にFALSEの場合があり、用途が変ります。 FALSEは表引き TRUEは封書の重さと郵便料金計算や区分分けをイメージしてください。

taktta
質問者

お礼

やってみるとなかなか味わい深い手法であることがわかりました。 非常に楽しい時をすごさせていただきました。 エクセルの関数は使いこなすと非常に深いことができるんですね。改めて興味がわいてきました。 どうもごていねいにありがとうございました。

  • comv
  • ベストアンサー率52% (322/612)
回答No.3

こんばんは #1のcomv です >この条件式の&は論理式のANDとイコールなの >でしょうか。 [&]これは文字列演算子のアンパサンドと呼ばれるもので 複数の文字列を連結して1つの文字列にするものです。 例    A   B   C    D 1 今日は  晴れ  です  =A1&B1&C1  で D列には 今日は晴れです となります。 COUNTIF() の条件部分を 文字列 ">=" 以上 と 参照セルの値 A1 を連結した文字列の結果 ">=1" が検索条件となるようにしたものです。 >なお最後のC4式で,">"&B4は意味上ヌルより大で >ヌルより大は全てのセルが該当するよう考えて >しまうのですが 試されて結果は納得されているので、考え方だけ! 先ほどの文字列の連結結果で COUNTIF(範囲,">")  となりますが、これは何に対しても反応しません たとえば可能性のある ="" などを参照範囲に記載 して 条件を ">=" "<" "<="にしても同様です。 要は全てに該当しません! 全てに該当は "<>" (空白以外)となります。 COUNTA() と同じ意味でエラー値をもカウントします 逆に空白にのみをカウントは "=" です 数式結果の=""があっても無視しますのでCOUNTBLANK() とは多少違います。 また直接""を指定する ">""" の条件は""より大きい となり 文字列 の記載のあるセルをカウントします。 ""は文字数0文字の文字列ですから1文字以上の文字 より小さいことになります。 ただし "<""" としても数値はカウントしません これは ">0"と数値指定したときは対象を数値のみに "<a"などと文字指定したときは対象を文字列のみで 検索するためです。 機会があれば色々使い分けてみてください!

taktta
質問者

お礼

ていねいな解説ありがとうございました。 なるほどコンカチネートの意味でアンパサンドをつかうのですね。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

2段構えなのですが A列にデータがあるとする。 D1:E4に 0 1 6 2 11 3 21 4 の表を作る。 B1に=VLOOKUP(A1,$D$1:$E$4,2,TRUE)を入れ下方向に 複写する。B列にはコード1-4のどれかが入る。 C1に=COUNTIF(B1:B20,1)で(または=COUNTIF($B$1:$B$20,1))B列コード1の行数を, =COUNTIF(B1:B20,2)でコード2の行数を数えます。 B20は最下行に変えてください。 テーブルを刻みに注意することと第4引数はTRUE です。

taktta
質問者

補足

残念ながら意味がわかりません。VLOOKUP(A1,$D$1:$E$4,2,TRUE)この意味はなんでしょうか、