エクセル・関数で成績の絞込みの方法

このQ&Aのポイント
  • エクセル2002を使用して成績処理のための絞込みを行いたい場合、COUNTIF関数を利用することができます。しかし、A列とE列の両方を絞り込む場合は通常のCOUNTIF関数では難しいです。解決策としては、条件式をAND関数で結合することです。
  • 詳しい手順は以下の通りです。まず、セルにCOUNTIF関数を入力し、絞り込む範囲と条件を指定します。次に、AND関数を使ってA列とE列の両方の条件を結合します。その後、結果を表示するセルにこの式を入力すると、条件に合致するデータの数が表示されます。
  • 例えば、2年1組で得点が30~50点の生徒の人数を知りたい場合、COUNTIF(A列, 条件式1)とCOUNTIF(E列, 条件式2)をAND関数で結合することで実現できます。この方法を使えば、A列とE列の両方の条件を満たす絞込みが可能です。
回答を見る
  • ベストアンサー

エクセル・関数で成績の絞込みの仕方

エクセル2002を使用しています。 成績処理のための絞込みを行いたいと考えています。 A ・・・・      E 2101         31 2102         51 ・ ・ ・ 2332         47 上記のようにA列は学年・クラス・出席番号の通し番号、E列にはある科目の得点が入力されています。 たとえば2年1組で、得点が30~50点の範囲に何人いるかを知りたいわけです。 自分でやってみて、COUNTIFを利用した場合、 A列かE列どちらかを絞り込むことは出来たのですが、両方とも絞込みの条件にすることは出来ませんでした。出来る方法があるのでしたら教えてください。

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

  • ベストアンサー
  • telescope
  • ベストアンサー率54% (1069/1958)
回答No.3

=SUMPRODUCT(($A$1:$A$6>2100)*($A$1:$A$6<2200)*($E$1:$E$6>=30)*($E$1:$E$6<=50)) すべての条件がtrueのもののみカウントします。 または、2年1組の成績を G1セルに29点まで、G2セルに30点から50点まで、G3セルに51点から70点までの人数を表示する場合、 G1セルからG3セルを選択して =FREQUENCY(E1:E26,{30,50,70}) と入力して、Ctrl+Shift+Enterで確定します。 (E1からE26までが2年1組だと仮定しています。)

untokodokkoisyo
質問者

お礼

ありがとうございました。質問した表示のほかにも度数分布を求める関数を使って表示させる方法があったのですね。大変参考になりました。

その他の回答 (2)

  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.2

COUNTIFでは複数条件の検索は出来なかったと思いますが・・・。 2年1組で得点が30点以上であれば、 =COUNTIF(INDEX(E:E,MATCH(2101,A:A)):INDEX(E:E,MATCH(2199,A:A)),">=30") こんな感じで出来ますね。

untokodokkoisyo
質問者

お礼

早速の回答ありがとうございました。これに合う処理を行うときに参考にさせていただきます。

  • jun9031
  • ベストアンサー率42% (51/120)
回答No.1

まず、Aの左に「クラス」という行を追加すると便利かと思います。 (LEFT(A2,2)などで) それを付け足してしまえばあとは好きなように料理できます。 COUNTIFを使う力技もあるし、 ピボットテーブルを使うのもいいですし、 DCOUNTというデータベース関数を使うのもいいですね。 ピボットテーブルだと、クラスごとの平均点なんかも一気に計算できて便利そうですね。 (範囲の数値は多少操作が必要ですが・・・)

untokodokkoisyo
質問者

お礼

早速の回答ありがとうございました。これらのヒントも今後の参考にさせていただきます。

関連するQ&A

  • COUNTIF関数で数式の指定

    よろしくお願いします。 A1~A40に40人のクラスの数学の点数が100点満点で出席番号順に入っているとします。 B1~B40には、同じクラスの国語の点数が「40点満点」で出席番号順になっているとします。 以下、C列は理科が60点満点...などとなっているとします。 各科目で、満点の60%~70%の点数を取っている生徒の人数を数えたいとします。 そこで私は、A41に=100*0.6 、 A42に=100*0.7 B41に=40*0.6、B42に=40*0.6...とC列以降も計算しておきました。 そしてA43のセルにCOUNTIF(A1:A40,">=A41")-COUNTIF(A1:A40,">=A42")としてみましたが、 実際は数人いるにもかかわらず0人となってしまいました。 ">の後にはセルを指定することはできず、 必ず数値をでなければならないのでしょうか? 長々とした質問でうまく表現できているか心配ですが、よろしくお願いします。

  • エクセルで順位付けする方法を教えて下さい

    エクセルで順位付けする方法を教えて下さい。 (A列)にクラス、(B列)に学籍番号、(C列)に得点が記載された1つの表があるとします。表にはクラス、学籍番号、得点、順に並んでいないところを、関数で順位付けしたいと考えています。表示結果として、クラス毎で得点の低い順に表示したいと考えています。 具体的には、 元々の表 (A列) (B列) (C列)  A組   8   57  B組   4   41  A組   6   42  C組   3   83  C組   6   73  B組   2   83 結果の表 (A列) (B列) (C列)  A組   6   42  A組   8   57  B組   4   41  B組   2   83  C組   6   73  C組   3   83 非常に煩雑な関数になりそうですが、お力をお貸しいただきたく宜しくお願いいたします。        

  • excelのデータ抽出?検索?についておしえてください。

    excelのデータ抽出?検索?についておしえてください。 エクセル2003で sheet1に次のようなデータがあります。   A列  B列  C列     D列  E列 ・・・ 1 組   番号  氏名     古典  現文 ・・・  2 1   1   青木 優    3 1   2   池田 洋子   4 1   3   植村 美紀   ・ ・ sheet2には1組の成績が sheet3には2組の成績が入っています。 クラスによって科目が違います。 この「氏名」と1行目の「科目名」が一致するデータを 他のシートから読み出してくる関数がありませんでしょうか 青木さんの古典を1組のシートから読み出すといった感じです。 説明がへたで 申し訳ないのですが うまく検索ができなくて困っています。 ぜひ くわしいかた教えてください。 どうぞ よろしくおねがいします。

  • グループごとの最高得点者一覧を取得するには

    MySQLで、グループごとの最高得点者一覧を取得する方法を教えてください。 例えば、「生徒番号」「学年」「組」「成績」というカラムを持ったテーブルがあるとき、各クラス (「学年」と「組」のペア) から一人ずつ、最高得点を取得した生徒の「生徒番号」と「成績」を取得しようとしています。このとき「生徒番号」は一意ですが、「成績」は一意とは限りません。 また、同じクラスで最高得点者が二人以上いる場合、すべて取得か条件を指定して一人に絞るかを選べたらなおありがたいです。 【だめだった例】 SELECT 生徒番号, 成績 GROUP BY 学年, 組 ORDER BY 成績 DESC ⇒ 「GROUP BY 成績」なので「生徒番号」を SELECT できない SELECT 生徒番号, 成績 GROUP BY 学年, 組 HAVING MAX(成績) ⇒ 同じく SELECT 生徒番号, 成績 WHERE 成績 IN ( SELECT MAX(成績) FROM テーブル GROUP BY 学年, 組 ) ⇒ 「成績」は一意ではないので、余分な行 (他のクラスで成績が同じ者) が取得される

    • ベストアンサー
    • MySQL
  • VBAで成績表を作りたい

    VBAについては全く初心者ですが、自分なりに調べて成績表を作ってみました。 A列個人の名前、B・C・D列にそれぞれ1~3回目のテストの総得点が入っていとして、E列に得点のランク別にA~Mの成績を出します。 Select Case を使って成績を出すようにしたいのですが、1~3回目のテストの中で、1番高得点だったもので判定したいのです。 また、全員が3回ともテストを受けているとは限らず、得点が空欄になる人もいます。 具体的には A列   B列    C列   D列   E列 ○さん  580点 620点 530点  C列の得点で判定 △さん  550点 580点 600点  D列の得点で判定 □さん  600点      590点  A列の得点で判定 1回分のテストの得点だけでは Select Case を使って上手く判定できたのですが、3回分の中から選択させる方法がわかりません。 関数を使う方法もあると思いますが、今回はVBAを使って作りたいと思います。 よろしくお願いします!

  • エクセルの関数について

    現在、エクセル2003を使っていますが、以下のような場合、関数をどのように使用すれば宜しいでしょうか?   A   B  C  D  E(列) 1 点数 学年 組 2 50 1  A   3 80 2  B 4 30 2  A 5 20 3  B 6 20 2  A ・・・・・ 98 10 8  C   99 20 2  B (行) ひとつのマスで関数を使って学年が”2”、かつ組が”B”の場合の点数の合計を求める場合。(この場合だと、100)

  • Accessのテーブルから成績一覧表を作成したい。

    こんにちは。 ExcelはVBAまで使えるレベルですが、Accessはまったくの初心者です。 基本的なことだと思うのですが、Access2003の使い方で質問です。何をどう調べていいのかわからないので、お願いします。 Accessのテーブルで「名簿」、「成績」、「科目名」の3つのテーブルがあります。 それぞれのテーブルのレコードの内容は以下の通りです。 「名簿」--- 番号(5桁で1年1組1番は10101となっています)、氏名 「成績」--- 番号、氏名、成績(5段階です)、科目番号(1~100まで) 「科目名」 --- 科目番号、科目名 以上のテーブルを使って、エクセルの表で成績一覧表を作るようなことは可能なのでしょうか?エクセルだとA列に番号、B列に氏名、C列以下が科目名が入り、それぞれの生徒の成績が横並びになりますが、そのように表示させることは可能かどうかということです。 Accessのことはよくわからないので、補足が必要であれば指摘して下さい。 よろしくお願いします。

  • エクセルでの出欠・成績管理がしたい。

    エクセルでの出欠・成績管理がしたい。 PCのリテラシが低いので、回答を戴いても操作方法が解からない可能性がありますが、よろしくお願いします。 1.A列に氏名があります。昇順化しました。B列には出席者の学籍番号があります。これも昇順化しました。現在は、B列の出席者の番号を目で見ながら、A列の番号に照会し、出欠マークを付けています。500名の処理なので苦労しています。もっと簡単に済ます方法は無いでしょうか? 2.また、これから成績表を作成する予定です。学籍番号は10桁なので、これを前方5桁あるいは後方5桁だけを入力し、これを例えばC列に置きます。そしてこの5桁の学籍番号の後ろ(例えばD列)に成績を記入します。このC&Dをセットとし、先ほどのB列の学籍番号との一致度を自動的に処理し、B列の後ろにC&Dが並ぶといった処理は出来るものでしょうか?

  • Excel COUNTIF関数

    お世話になります。 countif関数について教えてください。 12345 12345A countif関数で、ワイルドカードを使用して、=countif(A:A,"12345*") とし、上記の12345で始まる文字列をカウントしようとしたのですが、 12345Aはカウントされ、12345はカウントされませんでした。 上記のような文字列を両方ともカウントさせるにはどうしたらいい でしょうか。 よろしくお願いします。

  •  エクセルで中学校の成績処理を行っています。

     エクセルで中学校の成績処理を行っています。  ブックはシート3枚構成で、シート1はメニュー画面、シート2には生徒番号(1組1番の生徒は101)、学年、組、氏名、各教科の成績データが入力されており、シート3は、特定のセルに入力した値(生徒番号)を参照するvlookup関数を使った個票形式になっています。 マクロを使って、メニューシートにクラスを入力し、そのクラスの生徒の個票が連続で印刷されるプログラムを使っています。生徒数は学級によって違います。また、生徒番号は転出等により途中欠番があります。  今まで次のようなプログラムを使っていました。 Sheets("menu").Select For 行 = Range("E17").Value To Range("G17").Value Sheets("個票").Select Range("ak5").Value = 行 ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Next Sheets("menu").Select  E17セルには開始生徒番号(1組の場合は101)、G17セルには最終生徒番号が自動計算で出てくるようにしています。  この方法だと欠番のところに1つ前の生徒のデータが重複して印刷されます。 そこで、メニューシートに入力した組を、データシートの組列の上から順番に検索し、一致するセルの行を開始行とし、その行の生徒番号の値を個票シートにコピーし、個票を印刷。次にその行の1つ下の行の生徒番号をコピーし印刷。これを該当クラスだけ続けて、組が別の組になったら終了するというような形に変えたいと思います。  たぶんdo loopなどでできると思うんですが。よろしく御願いします

専門家に質問してみよう