• ベストアンサー

抽出条件した上で平均を求める

エクセル2003です A B 性別 年齢 男 20 女 21 男 女 男 21 女 20 上記のような表で、男性の平均年齢を求めたいのですが、 sumif/countif では、年齢の空白がカウントされてしまいます。 年齢が空白の男性の数、を求めようと思いましたが良い方法が思い浮かびません。 2007ではないので、averageif が使えません。 マクロを使用しないで、関数で求める良い方法があればよろしくお願いします。

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

  • ベストアンサー
  • aleister
  • ベストアンサー率31% (11/35)
回答No.2

=SUMIF(A2:B7,"男",B2:B7)/SUMPRODUCT((A2:A7="男")*(B2:B7<>"")) sumifで男の合計を sumproductで男で空白以外のセルの数を これでどうでしょうか?

参考URL:
http://www.excel.studio-kazu.jp/lib/e3h/e3h.html
seed0000
質問者

お礼

ありがとうございます。できました。 sumproduct関数についても、もう少し勉強してみます。

その他の回答 (2)

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.3

=SUBTOTAL(101,年齢範囲) 後はオートフィルターで 性別:男性 年齢:空白を除く  と選択すれば平均が出ます。

seed0000
質問者

お礼

遅くなりました。ありがとうございます。 今回の場合は、年齢の空白行も表示しておきたいというところがあるので、 マッチはしませんでしたが、 確かにこの方法もありますね。(思い浮かびませんでした。)

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

配列関数でAverageIF関数と同じ機能を作って見ます。 A   B   C  D 性別 年齢  男 男  20   女  21 男 女 と準備してあるとして =AVERAGE(IF(A2:A10=C2,B2:B10,"")) Ctrl+Shift+Eniterで決定します。

seed0000
質問者

お礼

ありがとうございます。 やってみたところ、空白セルをカウントした結果が出てしまいました。 しかし、こういった手法は全く知らず勉強になりました。

関連するQ&A

  • Excel平均値のSUMIF/COUNTIFのCOUNTIFの条件

    毎月の集計で常に平均値を知りたいのですが、経過日については日々数字が入ります。後日分について、空白部分のカウントをしないように関数をいれ、現在までの平均値を把握したいと思います。 SUMIF(A1:A31)/COUNTIF(A1:A31)だと誤って空白もカウントしています。望んでいる経過日までの平均値が出ません。 空白をカウントしない関数を教えていただけませんでしょうか?

  • 条件のあう数値の平均を求める関数を教えてください。

    お世話になっております。 次のような表で性別が女性の平均身長を調べる場合の関数を教えてください。 A B 1 性別 身長 2 女 156 3 男 174 4 男 168 5 女 159 6 女 147 7 男 178 8 女 149 9 女 158 10 女 154 11 男 177.5 どうぞよろしくお願いします。

  • エクセル 関数 3つ以上の複数条件にあった抽出 

    *先日も同じ質問をさせて頂き、類似した様々な質問の中から色々検索してみては、というアドバイスを頂き、検索してみたのですが、わからなかったため、再度質問させて頂きたく投稿しました。(しつこくてすいません) *前回は質問が抽象的というご指摘でしたので、詳しく記入させて頂きます。(表がずれて見にくくなっていてすいません) Sheet1(例1) 項目/  氏名  生年月日  性別 年齢  要介護度  入所日数     たろう  S1.1.1   男  83   3    100     はなこ  T1.1.1   女  97   5    50     いちろう S2.1.1   男  82   4    90     じろう  T2.1.1   男  96   4    80 *たろう=セルC3  Sheet2(例)                  要介護度              1  2  3  4  5 男性 (人数)      ○  ○  ○  ○  ○    (平均年齢)    ×  ×  ×  ×  ×    (平均入所日数)  △  △  △  △  △ *Sheet1 をベースに Sheet2 の表の「○」「×」「△」に値を返したく「○」については Sheet3  性別  要介護度 男     1  *性別=セルA2 Sheet3を新たに作成し =DCOUNTA(Sheet1$C$2:$H$6,"",Sheet3!A2:B3)という関数を入力しそれぞれ値を返すことは何とかできましたが、その値が出た人数の「平均年齢」や「平均入所日数」などの値の求め方がわからない状態です。 無知のため、関数やマクロなど色々検索してみましたがやはり方法が分からず、どなたか教えて頂けないでしょうか??よろしくおねがいします。

  • AVERAGEに「if」はないですか?

    SUMIFやCOUNTIFはあるのに AVERAGEIFあないのでしょうか? 範囲を指定して平均値を求めたい場合は SUMIF合計を求め、COUNTIFで個数を求め 合計÷個数で求めるしかないのでしょうか? 他に何かいい方法があったら教えてください。 よろしくお願いします。

  • 条件を満たしたものの、平均価格を求めたいです。

    Excel2003を使っています。 業務上で必要な集計を出したいのですが、関数は言うほど理解できていないので、とにかく出来るだけシンプルな方法はないか探しています。 例)   A    B    C 1 間取  戸数  合計価格   2 4LDK  11   39,230 3 4LDK  11   25,480 4 3LDK  10   25,370 5 3LDK  10   26,570 6 4LDK   9    27,810 7 3LDK   8   19,170  上記のような表があって、たとえば3LDKだけをカウントして平均価格出したいのです。 (ちなみは、合計価格は別に一覧表があってそちらから反映させてます) 3LDKだけをカウントして合計を出すのはどうにか出来たのですが(SUMIFを使いました)この合計から平均が出せません。 (AVERAGEを使えばいいのはなんとなくわかるのですが…。) どなたかご指導お願いします。

  • 表Aから表Bを抽出し、グラフを作りたい

    下記の表から、グラフを作りたいと思っています。 (表A) 雇用  名前  性別  誕生日    満年齢  入社年月日  勤続年数 正社員 AAAA 男 1958/2/18 49 1993/04/01 14 正社員 BBBB 女 1963/5/7 44 1993/04/01 14 正社員 CCCC 男 1970/8/17 36 1993/04/01 14 正社員 DDDD 女 1971/6/20 36 1993/04/01 14 正社員 EEEE 女 1965/9/22 41 1993/08/01 13 契約 FFFF 女 1969/5/23 38 1993/12/01 13 正社員 GGGG 女 1973/10/22 33 1994/04/01 13 この表からグラフに使えるように数値を抽出したいのですが (表B) 年齢  男  女 65歳  1 64歳     1 63歳  2    62歳  1  1 ・ ・ ・ 18歳  4  3 表Aから 表Bを作るのに、何かいい方法はありますか? 関数表をみてCOUNTIFやらSUMIF等を使ってみましたが うまく動きませんでした(式が間違っています、数式が間違っています等) 最終的に作りたいグラフは、人口ピラミッドです。 よろしくお願いします

  • エクセル関数 複数の条件にあったデータの抽出

     パソコンに関してあまりに無知なために、色々検索しても意味がわからず、困って投稿しました。現在、仕事で、「データベース」的なものを作成しています。老人施設に入所している人の「データベース」なのですが、「氏名」「年齢」「性別」「要介護度」など項目をつけ、一覧は作成していて、その中から「IF関数」や「COUNTIF関数」など使用し、単純な男性のみの合計などは出来るのですが、例えば「60歳代の男性で要介護度が1の場合の人数」や「要介護3の男性の平均年齢」などの複数の条件にあった値が求められず困っています。  どなたか、おわかりになる方がいましたら宜しくお願いします。  

  • エクセルで条件付きの平均値を求める関数

    お世話になります。 恐らく簡単な見落としかと思うのですが、 関数がうまく動いてくれないので質問します。 A1~A5に商品名群(空白セルあり)、B1~B5(空白セルなし)にその値段が入力されています。 C1セルに、A1~A5で空白ではない行のB1~B5セルの平均値を出したいです。 例: A1:リンゴ  B1:100 A2:(空白) B2:50 A3:みかん  B3:400 A4:メロン  B4:500 A5:みかん  B5:200 この場合、B2の「50」は含めず、それ以外の行の平均値を求める。 関数はC1=AVERAGEIF(A1:A5,"<>""",B1:B5)と入れたのですが、空白セルを除いて計算してくれません。 間違いが分かる方がいましたら、返信頂きたいです。

  • excelで男女別の平均年齢を求める方法

    こんにちは皆さんのいつも参考にさせて頂いております。 実際はデータリストは別シートですが下記の用にして男女別の平均年齢を計算したいと考えています。  DAVERAGEを使った方法、SUMを使った配列、COUNTIF・SUMPRODUCTを使った抽出などいくつ試しましたが、どうも上手くできませんでした。なにか良い方法があればご指導いただければ思います。   A   B   C  D E  F 1 名前  性別  年齢   平均年齢 2 山田  男   52   男  ○○歳 3 林   女   63   女  ○○歳 4 木村  男   66 5 佐藤  女   24 6 伊藤  女   33

  • DCOUNT関数で空白セルであることを条件にしたい

    DCOUNT関数についての質問です。 スプレッドシートでDCOUNT関数を使用していますが、条件設定で、「セルが空白の場合」の設定ができません。COUNTIFでできるような「""」や「"="」にしたりと試してみましたができませんでした。 具体的には、以下のように、3つある条件のうちの1つが「セルが空白の場合」で、それら3つの条件全てを満たすものの数を数えたいです。 初歩的な質問で恐縮ですが、「セルが空白」を条件とする書き方を教えていただきたいです。よろしくお願いします。 なお、DCOUNT関数はスプレッドシートでもExcelでも使用できるので、カテゴリはExcelにしています。 <やりたいこと> 以下の3つの条件を全て満たす数値の数をカウントする 条件1 性別が男性 条件2 年齢が40以上 条件3 既往歴なし(セルが空白) <データベース(実際のデータ数はもっとあります>    A   B   C   D   E   F   G 1  氏名  住所  年齢 性別  身長  体重  既往歴 2  山田  東京  42  男性  168   72 3  武田  静岡  54  男性  171   81  脳卒中 4  田中  和歌山 24  女性  159   54 <条件>    I   J   K 1  性別  年齢 既往歴 2  男性  >=40 【ここをどう書けばよいか】 <数式> =DCOUNT(A1:G4,C1,I1:K2)

専門家に質問してみよう