dポイントプレゼントキャンペーン実施中!

こんにちは皆さんのいつも参考にさせて頂いております。
実際はデータリストは別シートですが下記の用にして男女別の平均年齢を計算したいと考えています。
 DAVERAGEを使った方法、SUMを使った配列、COUNTIF・SUMPRODUCTを使った抽出などいくつ試しましたが、どうも上手くできませんでした。なにか良い方法があればご指導いただければ思います。


  A   B   C  D E  F
1 名前  性別  年齢   平均年齢
2 山田  男   52   男  ○○歳
3 林   女   63   女  ○○歳
4 木村  男   66
5 佐藤  女   24
6 伊藤  女   33

A 回答 (4件)

ANo.3です


sumif関数及びcountif関数ですが、計算では空白部分を無視しますので
空白のところは何も入れなくていいです

参照するフィールドが離れているということと、結果を書くシートが別
ということでしたので以下の式になります。

watawatasaさんの表ですと、
男性の場合
=TEXT(SUMIF(sheet2!B2:B6,"男",sheet2!C2:C6)/COUNTIF(sheet2!B2:B6,"男"),"0歳")
女性の場合
=TEXT(SUMIF(sheet2!B2:B6,"女",sheet2!C2:C6)/COUNTIF(sheet2!B2:B6,"女"),"0歳")

となります。
なお見やすくするため$は省いています。

性別フィールドと年齢フィールドのデータ数は一致させておいてください
でないと、平均が狂います。

結構大変でしょうけど、がんばってください。
    • good
    • 0
この回答へのお礼

K_moriさん おかげさまで無事に成功しました。

数値が異常に小さい原因は、ご指摘の通り性別フィールドが入力済みで年齢フィールドが未入力のレコードが沢山あったためでした。
 対策として
=if(年齢フィールド="","",性別フィールド)
という集計用の列を一つ作ってそちらを性別の対象フィールドとしました。

 丁寧かつ的確なアドバイスを頂き本当にありがとうございました。

お礼日時:2008/05/04 23:57

こんにちは


男女別の平均年齢を出すには、sumif関数とcountif関数の複合で
出ます。
watawatasaさんの表で作成すると以下の式になります

男姓の平均年齢
=SUMIF($B$2:$C$6,"男",$C$2:$C$6)/COUNTIF($B$2:$B$6,"男")

女性の平均年齢
=SUMIF($B$2:$C$6,"女",$C$2:$C$6)/COUNTIF($B$2:$B$6,"女")

同じようにOO歳とつけたい場合は以下の式です

男性の場合
=TEXT(SUMIF($B$2:$C$6,"男",$C$2:$C$6)/COUNTIF($B$2:$B$6,"男"),"0歳")

女性の場合
=TEXT(SUMIF($B$2:$C$6,"女",$C$2:$C$6)/COUNTIF($B$2:$B$6,"女"),"0歳")

シートが別な場合は以下の式です
データが入っているシート名が"sheet2"の場合

男性の場合
=TEXT(SUMIF(sheet2!$B$2:$C$6,"男",sheet2!$C$2:$C$6)/COUNTIF(sheet2!$B$2:$B$6,"男"),"0歳")

女性の場合
=TEXT(SUMIF(sheet2!$B$2:$C$6,"女",sheet2!$C$2:$C$6)/COUNTIF(sheet2!$B$2:$B$6,"女"),"0歳")

これで出ると思います。
関数は難しいですが、使い慣れると便利です。
がんばってください。

この回答への補足

大変丁寧でわかりやすいご回答を頂きありがとうございました。

早速、実際の表で試して試して見たところ、予想以上に小さな数字が出てきてしまいました。私なりに原因を考えてみたのですが、
・まず、実際の表は例示よりも多くの項目があり、性別フィールド(?)と年齢フィールドが離れていること
・次に、元になる250件ほどあるリストが入力途中で1/4程度空白があることです。

せっかく、アドバイス頂いたのに良い報告ができず申し訳ありません。
もしかすると、条件書式や関数で空白に"未入力"とか入れたら良いのでしょうか?

度々の質問で恐れ入りますが、宜しくお願いします。

補足日時:2008/05/04 21:06
    • good
    • 0

 


計算式を間違ってました
=SUMPRODUCT((B1:B6="男")*C1:C6)/COUNTIF(B1:B6,"男")
これが正解、C8とタイプミスしてました。

 

この回答への補足

早速のアドバイスを頂きありがとうございました。

実際の表で早速試してみた所、「$value!」のエラーが出てしまいました。私なりに次の原因を考えてみました。
・実際のリストは例示より項目が多く、年齢(c)と性別(au)が離れていること
・分析シートとリストシートを同時進行で作っているため、空白セルが1/4程度あること

なお、実際に入力は以下のように行いました(Excel 2000使用、読みやすくするために$は削除)

=SUMPRODUCT((一覧!C2:C9999="男")*一覧!aU2:AU9999)/COUNTIF(一覧!C2:C9999,"男")

なんかイージーミスかもしれませんが、お気づきの点がありましたら、アドバイス頂ければ幸いです。

補足日時:2008/05/04 21:27
    • good
    • 0
この回答へのお礼

n4330さん アドバイス頂きありがとうございました。
今回は、No3 k_moriさんの方法で行うことにさせて頂きました。

sumproduct関数は、今後に向けて何とか使いこなせるようになりたいと思っています。また、機会がありましたら宜しくお願いします。

お礼日時:2008/05/05 20:59

 


=SUMPRODUCT((B1:B6="男")*C1:C8)/COUNTIF(B1:B6,"男")

女なら"男"を"女"に変えて下さい。

 
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!