- 締切済み
エクセル関数の組合せ
エクセルの関数で質問です。 ■シート(1) 生徒名 IDのカウント 80以上 50以下 Aさん 1 9 0 Bさん 5 3 0 Cさん 1 1 0 別のDBシートで生徒毎の点数データ一覧があり、 上記のシート状の80以上のセルに、 生徒名Aさんの80以上の件数を表示したいと思っています。 50以下も同様なのですが、関数の組合せがわかりません。 どなたか教えてください。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- vo_kazu
- ベストアンサー率59% (13/22)
=SUM(IF(A1:A10="Aさん",IF(B4:B10>=80,1,0))) でいかがでしょう?上記の場合、A1~A10の中で、 "Aさん"と入力されている場所のB列を見て、 80以上だったら"1"を返します。 最終的にSUMでくくっていますので、個数が返ります。 この数式は「配列数式」ですので、通常の入力ではうまくいきません。 セルに入力して数式を決定する際、[Shift]+[Ctrl]を押しながら Enterキーを押してください。 ちなみに、データベースの用途がはっきり分からないので、何とも言いがたいですが、データベースは横に伸ばしていったほうが扱いやすいと思います。 |テストA|テストB|テストC--> Aさん| Bさん| Cさん|
- vo_kazu
- ベストアンサー率59% (13/22)
別シートのDBがどのように作られているのかわかりませんが、 Aさんのデータが入力されているのが、C2からC10だったとすれば、 =COUNTIF(C2:C10,">=80") とすれば、80点以上の件数が得られます。 ちなみに「以下」の場合、<=です。「以外」の場合<>です。 質問が微妙にわからないところがあるので、お答えになっているかわかりませんが。IDのカウントとは何でしょうか?
補足
回答ありがとうございます!! >IDのカウントとは何でしょうか? 別シートのDB中、Aさんのデータの件数です。 こちらはCOUNTIFで"=生徒名列(Aさん)"で引っ張ってます。 >別シートのDBがどのように作られているのかわかりませんが、 >Aさんのデータが入力されているのが、C2からC10だったとすれば、 > =COUNTIF(C2:C10,">=80") 上記まではわかるのですが、別シートのDBの構造が Aさん、Bさん、Cさん・・・・と複数の生徒名のデータが存在し 常に更新される状態になっています。 なので、DB全体を広く範囲として指定して、 【DB中、Aさんのデータで、且つ、80以下のもの】 という検索でデータを持ってきたいのです。 DBの更新の都度、参照先を変えるのが面倒なため このようなやり方が出来ないか考えています。 もし判れば教えてください!!
お礼
御礼が遅れました。 見事にできました! 本当に助かりました。 配列関数は使ったことが無かったので今回で覚えることができて ダブルでありがたいです。 DBはデータを横に伸ばす形式にしています。 たびたびご回答くださり、感謝感謝です!!