- 締切済み
エクセル特定範囲の平均算出について
エクセルで年代別のさまざまなデータの平均値を求めたいのですが。 たとえば20~80歳の間で、身長・体重などの平均を年代別に集計するというものです。 どうぞよろしくお願いいたします。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
質問のデータ内容をしっかり書いてない。簡単な実例ぐらい質問するのだから挙げるべき。 年齢数字がデータとしてあるのか(対するは生年月日) 年代別とは切りのいい10年刻みか。 ーー 例データA1:A8 年齢 計数 31 1 43 2 33 4 55 4 59 5 48 6 39 7 D2:D6に D列 E列 30 4 40 4 50 4.5 60 #DIV/0! 70 #DIV/0! E2には =AVERAGE(IF(($A$2:$A$8<D3)*($A$2:$A$8>=D2),$B$2:$B$8,"")) と入れてShift,Ctrl,Enterの3つのキーを同時押しする。配列数式。 式を下方向に複写する。結果上記E列。 SUMPRODUCTとCOUNTIFでもできる。2,3日前も同じ質問あり。 ーー 2007ではAVERAGEIFSが使えるとおもう。 http://officetanaka.net/excel/excel2007/010.htm ーー>エクセルバージョンを書くこと。 ーーー Div/0!を出さないようにするには =IF(ISERROR(AVERAGE(IF(($A$2:$A$8<D3)*($A$2:$A$8>=D2),$B$2:$B$8,""))),0,AVERAGE(IF(($A$2:$A$8<D3)*($A$2:$A$8>=D2),$B$2:$B$8,""))) 0の代わりに"該当なし"も良いかも. ---- FREQUENCY関数は頻度件数は出せるが平均は、ストレートに出せないと思うが
- 5gasira
- ベストアンサー率34% (347/994)
2回目の回答です。 すいません。私、使う(使える・使いこなせる)関数に偏りがあって、というかややこしいデータ集計でも知ってる関数で何とかやりくりしてきたものですから。 皆さんが回答しているビボットテーブルや難しそうな名前の関数、たぶん使うとすっきりした見栄えのいい計算式で私と同じ結果が出るのでしょうが。 でもここは、力技でいきましょう。(一個一個平均するとかではなく、知ってる関数フル活用して乗り切りましょう) average、if、countif、sumなどでしたらシート変わっても付いてくるし、急ピッチで仕上げなければならなさそうなデータのようですのであくまで知ってる関数で行きましょう。
お礼
ありがとうございました。 がんばってやってみます。
- jo-zen
- ベストアンサー率42% (848/1995)
FREQENCY関数を使う手もありますよ。詳しく解説している時間がないので、ネットで検索してみてください。解説サイトも多数ありますので、実例もいろいろヒットすると思います。
お礼
ありがとうございました。 今後の資料作成の参考にさせていただきます。
- 5gasira
- ベストアンサー率34% (347/994)
データはすでに「特定範囲」に入力済みという前提でお話します。 年齢、性別、身長、体重、血液型、・・・とならんであるデータを集計するものと考えますよ。 まずはランダムに並んだ中から20から29才、30から39才・・・と分けますので関数のif文で抽出できます。後は、抽出したもののみで、データがある分のみ(歯抜けデータは無視する)を平均したらいけるのではないですか? マクロ組んで項目入力してボタン押せば結果出る。が一番いいのですが、説明が長くなりすぎますので簡単なif文でいきましょ。 エクセルではデータの量の制限が出てきますので今後はアクセスに集計するのをお勧めします。
お礼
ありがとうございます。 やっぱりifなんですかね。 いろいろとやっているうちに混乱してきてしまいました。 average と if の組み合わせでしょうか? 再度、ご指南お願いいたします。
ピボットテーブルが便利ですヨ
お礼
ありがとうございます。 そうしたいのはやまやまなのですが。 私の説明不足でした。 基本データの表をもとに、別に平均値の表(シート)を作成しなければならないのです。 シート間でなにかうまく使える数式はないものでしょうか? countif とaverageの組み合わせなのかと考えましたが・・・。 どうやら違うようですね。 再度、お願いいたします。
お礼
ご指摘ありがとうございます。 やってみます。 今後は気をつけます。説明不足のなか、いろいろと教えていただきましたこと感謝します。