• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【Excel】複数条件のAVERAGE)

【Excel】複数条件のAVERAGEで平均値を求める方法

このQ&Aのポイント
  • Excelの関数「AVERAGE」を使用して、複数条件の平均値を求める方法について解説します。
  • 特定の条件に該当する要素の平均値を求めるためには、「SUMIFS」関数を使用し、その結果を「AVERAGE」関数に入れる必要があります。
  • ただし、この式をコピーして他のセルに貼り付ける際に、正常に動作しないことがあります。原因はセル範囲の絶対参照の設定にあります。

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

  • ベストアンサー
  • miso_kasu
  • ベストアンサー率60% (6/10)
回答No.2

>確認のために手動計算してみましたところ、合っていました。 SUMIFS関数で合計を算出した範囲の平均値であれば合っているはずはないのですが平均対象のセルを再確認してください。 A列が2016年でG列がアスパラガスは対象データが無いようです。 >>AVERAGEIFS >に差し替えたのですが、#DIV/0!になってしまいます。 前述のように条件に合う計算対象が1つもないため「0で除算したときのエラー」になったのです。 >外側というのは何に対しての外側でしょうか?どう設定すればよいかわかりません。 =AVERAGEIFS($D$2:$D$596,$A$2:$A$596,$H$2,$B$2:$B$596,$G5,$E$2:$E$596,H$3)      ↓ =IFERROR(AVERAGEIFS($D$2:$D$596,$A$2:$A$596,$H$2,$B$2:$B$596,$G5,$E$2:$E$596,H$3),"") >つまり、列全体とした場合上の式は =AVERAGEIFS(D:D,A:A,$H$2,B:B,$G5,E:E,I$3)     ↓ =IFERROR(AVERAGEIFS($D:$D,$A:$A,$H$2,$B:$B,$G5,$E:$E,H$3),"") H3とI3は結合しているのでI$3にはデータが有りません。 $E:$EをH$3と比較してください。

frau
質問者

お礼

おかげさまで目的が叶いました。ありがとうございました!

その他の回答 (1)

  • miso_kasu
  • ベストアンサー率60% (6/10)
回答No.1

>これを合計ではなく平均値で出す場合、「SUMIFS」のみ「AVERAGE」に入れ替え 「AVERAGE」ではなく「AVERAGEIFS」にしてください。 但し、集計する対象が無いときは「0で除算」のエラーになります。 >という式を「I5]に入れると確かに平均値はあっていたのですが、 手動で計算してみましたか? AVERAGE関数はカッコ内にカンマ区切りで列記されたセルの値や実数が全て計算対象になりますのでAVERAGEIFS関数と異なった結果になります。 >この式をコピー(セルのコピー)しても、正常に反映されず、I5の回答がそのままコピーされてしまいます。 I5をI6へコピーすると同じ結果になると思います。 >何が原因なのでしょうか? AVERAGEとAVERAGEIFSでは求める対象が異なります。 前述のように「AVERAGE」を「AVERAGEIFS」に修正してください。 エラーを避けるにはIFERROR関数を外側に付けてください。

frau
質問者

お礼

=AVERAGEIFS($D$2:$D$707,$A$2:$A$707,$H$2,$B$2:$B$707,$G5,$E$2:$E$707,I$3) ですが、行は707までに増やしました。 参照される側のセルを増やすたびに、式を変えていかなければなりません。 列全体を選択させるにはたとえば =SUMIF(B:B,G6,D:D) のようになるらしいですが、「B:B」と「D:D」には絶対値の記号「$」がつけられてません。 「B:B」はB列全部という意味だと思いますが、このように示せば絶対値の「$」マークは不要なのでしょうか? つまり、列全体とした場合上の式は =AVERAGEIFS(D:D,A:A,$H$2,B:B,$G5,E:E,I$3) こうなるのでしょうか?

frau
質問者

補足

ご回答ありがとうございます。 > 手動で計算してみましたか? 確認のために手動計算してみましたところ、合っていました。 >AVERAGEIFS に差し替えたのですが、#DIV/0!になってしまいます。 #DIV/0!は数式や関数が0(ゼロ)または空白のセルで割られていることを伝えるメッセージだそうですが、これは >集計する対象が無いときは「0で除算」のエラー のことだと思いますが、 > エラーを避けるにはIFERROR関数を外側に付けてください。 外側というのは何に対しての外側でしょうか?どう設定すればよいかわかりません。

関連するQ&A