• 締切済み

エクセルの条件つき平均について

エクセルの集計方法(条件つきの平均)についてお尋ねします。以下のようなデータが3,000行ぐらいあります。 田中幸一 85 田中幸一 63 田中幸一  59 田中幸一 80 山田博一  60 山田博一 20 以下同様に3000行 ............. 人名と点数がずっと並んでいます。例としては田中幸一氏は4行ですが、この行数は人によってまちまちです。また、同じ氏名の人が4人いるという意味ではなく、田中幸一という一人がいくつかの点を持っているという意味です。 さて、問題ですが、各人の点数で70点以上だけを集めて平均をとるという処理をしたいと思います。 エクセルのシートのどこかに田中幸一と書いてその横にそのような平均点が出るようにしたいと思います。すなわち、もし氏名が田中幸一で、点が70点以上ならば総和を取り、そして平均を取るという操作になると思います。 sumif()の入れ子になるのでしょうか。田中幸一でかつ70点以上ならば..ということなので。70点以上の個数を調べる必要があるので和を取るだけではだめですね。 このような処理についてエクセルでうまく処理する方法を教えて頂きたいのですが。よろしくお願いします。

みんなの回答

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

次の方法は如何でしょうか。 (1)見出し行が無ければ見出し行を挿入 (2)C1、D1に見出し行と同じ内容に設定、C2に名前、D2に>=70を設定 (3)データの任意セル(先頭が分かりやすい)を選択→データ→フィルタ→フィルタオプションの設定 (4)オプションボックスの抽出先を「指定した範囲」、リスト範囲欄に$A$1:$B$3001、検索条件欄に$C$1:$D$2、抽出範囲欄に$C$3→OK

  • suz83238
  • ベストアンサー率30% (197/656)
回答No.1

A1からA6まで氏名、B1からB6まで点数として C1に目的の人の氏名をいれて E1に下記を入れれば =SUMPRODUCT(($A$1:$A$6=C1)*($B$1:$B$6>=70)*($B$1:$B$6))/SUMPRODUCT(($A$1:$A$6=C1)*($B$1:$B$6>=70)) 目的のものは出ます。 ただし、ある人が70点以上取れなければエラーになります。

関連するQ&A

  • SQLの質問です。

    下記のようなテーブルで、 レベル4以下で点数が入力されているMAXの行を持ってくるにはどうしたらよいでしょうか?よろしくお願いいたします。 職員番号 氏名 レベル 点数 01000 山田 花子 4 01000 山田 花子 3 40 01000 山田 花子 2 30 01000 山田 花子 1 20 01100 田中 あああ 4 10 01100 田中 あああ 3 20 01100 田中 あああ 2 30 01100 田中 あああ 1 40 01200 佐藤 あああ 4 01200 佐藤 あああ 3 01200 佐藤 あああ 2 30 01200 佐藤 あああ 1 40 この場合欲しい結果は 職員番号01000の人は点数40点の行、01100の人は点数10点の行、01200の人は点数30点の行  3行を表示したいです。

  • エクセル2002 条件に合う人だけの平均計算式

    エクセル2002で、当てはまる苗字の人の点数の平均点を出したいです。 例) A列 名前の項目 名前はランダムに複数ある B列 各自の点数 例えばA列に 田中 という名前が10個あり、それがばらばらに不規則に並んでいる。 田中の合計点は800点で10項目なので、田中の点数は80点、という風にしたいです。 どのような式が良いでしょうか?ご指導お願い致します。

  • SQLの質問です。

    以下のようなテーブルで、レベルが4以下で点数が入力されているMAXの行を取得したいです。 よろしくお願いいたします。 職員番号 氏名 レベル 点数 01000 山田 花子 4 01000 山田 花子 3 40 01000 山田 花子 2 30 01000 山田 花子 1 20 01100 田中 あああ 4 10 01100 田中 あああ 3 20 01100 田中 あああ 2 30 01100 田中 あああ 1 40 01200 佐藤 あああ 4 01200 佐藤 あああ 3 01200 佐藤 あああ 2 30 01200 佐藤 あああ 1 40 この場合、取得したいのは 職員番号01000の人は点数40の行、01100の人は点数10の行、01200の人は点数30の行の 合計3行です。

  • Excel(2010)で氏名の頻度の求め方

    Excel(2010)で、A列に縦に 山田 鈴木 田中 山田 鈴木 山田 というように氏名の並べてある表があるとします。この表で氏名の頻度が 山田 3 鈴木 2 田中 1 というように表示できる関数または方法があるでしょうか。 この表のように項目が少なければ 山田 鈴木 田中 というセルを作っておいて、VLOOKUP関数で求められますが、実際には約500行ありその中の氏名をすべて手作業で入力するのは大変ですので、重複なくすべての氏名を抜き出すのは実際的ではありません。 以上よろしくお願いします。

  • こんな表で一気に平均値出せますか?【エクセル】

    こんな表で一気に平均値出せますか?【エクセル】 例えば、1行目から1万行目まで100人の人のあるデータが100行ずつ入っているとします。 A列=人名、B列=点数とします。 A列の1行目から100行目までを仮に【No.1】として、B列の1行目から100行目までランダムに点数が入っています。そして、この【No.1】の平均点を出したくて、C列の1行目に=AVERAGE(B1:B100)として、平均点を出します。 次に、【No.2】として101行目から200行目までのデータの平均点をC列の101行目に出します。 用は、このように【No.1】~【No.100】のそれぞれの平均点を出したいのですが、簡単にできる方法はありますか? オートフィルタで【No.1】~【No.100】まで、それぞれ抽出して、式を入れればいいのですが、何しろ数が多いので、もっと簡単にできる方法があるか聞いてみました。 実際のデータは、100人以上いるし、データもそれぞれ100ぴったりではありません。 分かりにくい説明かもしれませんが、よろしくお願いします。

  • EXCELで重複したデータの処理について

    氏名 | 点数 ----------- 山田 | ----------- 鈴木 | ----------- 小林 | ----------- 高橋 | ----------- 田中 | という表があるとします。 氏名 | 点数 ------------ 山田 | 80 ------------ 鈴木 | 100 ------------ 小林 | 70 ------------ 高橋 | 80 ------------ 田中 | 80 というように点数を入力すると 順位 | 名前 | 点数 ------------------- 1 | 鈴木 | 100 ------------------- 2 | 山田 | 80 ------------------- 2 | 高橋 | 80 ------------------- 2 | 田中 | 80 ------------------- 5 | 小林 | 70 のような表を自動的に作成できるようにしたいのですが、どうもうまくいきません。 順位と点数の並び替えは比較的簡単にできたのですが、それに対応した名前の並び替えがうまくできないのです。 VLOOKUP関数を使用して得点に対応した名前を表示させようとしたのですが、 順位 | 名前 | 点数 -------------------- 1 | 鈴木 | 100 -------------------- 2 | 山田 | 80 -------------------- 2 | 山田 | 80 -------------------- 2 | 山田 | 80 -------------------- 5 | 小林 | 70 となってしまい、80点の取得者が全て山田になってしまいました。 このような場合、どのようにすれば正常に並び替えを行うことができるのでしょうか。 言葉足らずで申し訳ありませんが、よろしくお願い致します。 OSはWindowsXP、ソフトはEXCEL2002を使用しています。

  • エクセルで複雑な条件で平均値を求めたい

    皆様初めまして。 エクセルを使って、以下の平均値を求めたいのですが、計算式の組み合わせが よく分からず困っております。 AVERAGEIFとCOUNTIFをうまく組み合わせればいいのではないかと 思っておりますが、条件が複雑でうまくいきませんでした。 よい方法をご存じの方がいらっしゃれば、アドバイスをお願いします。 (例)添付画像の一覧表を元に説明します。 「I」2列は以下の範囲より「田中さん」の「取次ぎ」項目だけを合計し その値の平均値を求める。 (項目)  「D」2列~「D」21列 (氏名)  「B」2列~「B」21列 (対応時間)「C」2列~「C」21列 「I」8列は以下範囲より「H」2列~「H」7列の 各対応時間の合計値を平均値として計算する。 (項目)  「D」2列~「D」21列 (氏名)  「B」2列~「B」21列 (対応時間)「C」2列~「C」21列 説明が分かりにくいですが、よろしくお願いします。

  • エクセルで2つの条件を満たした列をHLOOKUPで

    エクセルで、1行目と2行目の条件を満たした列をHLOOKUPで参照したいです。 人件費の表をつくっています。 給与明細の名前の欄をプルダウンで変更可能にし、名前を変えればその人の出勤時間が表示されるようにしたいです。 時間を記入するシート1は下のようになってます A     B     C     D 山田   山田   鈴木   鈴木 出勤   退勤   出勤   退勤 14    21    18    23 16    21    18    22 15    23    17    23 16    22    17    21 1行目が氏名 2行目が出勤か退勤か 3行目以降が時間記入欄です。 別シート2に給与明細がありまして A     B     C 氏名   山田 出退   出勤   退勤 1日   14    21 2日   16    21 3日   15    23 のように参照されています 氏名の「山田」の部分がプルダウンリストで選べるようになっていて この氏名の部分を「山田」から「鈴木」に変更すると自動的に出勤と退勤の時間が「鈴木」のものへ変更になるようにしたいです。 やりたいことは以下の事です シート2の氏名が「山田」であれば例のシート2のまま シート2の氏名の部分を「山田」から「鈴木」へ変更すれば B4、B5、B6セルは18、18、17に変わり C4、C5、C6セルは23、22,23に変化するようにしたいです。 関連しそうなIF,AND,MATCH,HLOOKUP等組み合わせてみましたが、どうもうまくいきません。 わかりづらいと思いますが、是非教えて頂ければ幸いですので宜しくお願いします。

  • エクセル:別ファイルからの抽出

    エクセル:別ファイルからの抽出 エクセルにて、 あるファイルに A  B    C No 月    氏名    1 2010/11  佐藤 2 2010/10  山田 3 2011/12  田中 4 2010/10  田中 ・ ・ とあり、それを別ファイルで 2010/10とセルに入力してやると、B列の2010/10だけ抽出して 一覧にしてくれるようにしたいと考えております。 関数またはVBAにて処理する方法はありますでしょうか? A  B    C No 月    氏名    2 2010/10  山田 4 2010/10  田中 ・ ・ ※別ファイルにおいては順番は関係ないので、Noがなくても よいです。 恐縮ですが、お答え願えれば有難いです。

  • エクセルで検索、並び替えの方法

    エクセルで以下のような並び変えはできないでしょうか? エクセルでA列とB列に名前が入っています。 A列、B列の名前は若干違います。 B列の名前をA列に揃えて並び変えることはできないでしょうか?  「処理前」       「処理後」  A   B        A   B 伊藤  山田      伊藤         山田  田中      山田  山田 鈴木  鈴木      鈴木  鈴木 田中  伊集院     田中  田中                     伊集院 宜しくお願いします。