- ベストアンサー
ランダムな数字の平均値を求める方法
- 質問者は、B列とE列とG列にランダムな数字があり、A列にはカテゴリーの文字列があるデータを持っています。
- 特定の条件(例えばA列にウと入っている行)を満たす行のB列とE列とG列の数字の平均値を求めたいと考えています。
- ifaverage関数やsumif()/countif()を使用しましたが、対象列が複数あり、他の列には計算に含めたくないデータがあるため、うまくいきません。アドバイスを求めています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
別にちょこっと手直すだけですけどね。 =SUMPRODUCT(SUMIF(A:A,"ウ",OFFSET(A:A,0,{1,4,6})))/SUMPRODUCT(COUNTIFS(A:A,"ウ",OFFSET(A:A,0,{1,4,6}),">0")) #そーいうイレギュラーな事をしたいと、肝心な説明を手抜きするからこんな具合に二度手間になります。次回の反省点になさってください。(て言っとかないと、逆切れちゃう人が多いので。) 判りやすい方の数式は特に反応もありませんし、こちらは十分詳しくご説明したのでこれ以上解説は要らないと思いますので、もし興味があるなら同様に出来ますから自力で解明してください。
その他の回答 (2)
- keithin
- ベストアンサー率66% (5278/7941)
たとえば =SUMPRODUCT(SUMIF(A:A,"ウ",OFFSET(A:A,0,{1,4,6})))/SUMPRODUCT(COUNTIFS(A:A,"ウ",OFFSET(A:A,0,{1,4,6}),"<>")) などのように。 #補足 AVERAGEIF系の関数では全くできません。 簡単に言えば (ウであってB列のSUMIF、E列のSUMIF、G列のSUMIFの合計)÷(ウであってB列が空白じゃないCOUNTIFS、E列のCOUNTIFS、G列のCOUNTIFSの合計) で計算できます。 前述のようにイミフメイな事をしなくても、ふつーに丁寧に =(SUMIF(A:A,"ウ",B:B)+SUMIF(A:A,"ウ",E:E)+SUMIF(A:A,"ウ",G:G))/(COUNTIFS(A:A,"ウ",B:B,"<>")+COUNTIFS(A:A,"ウ",E:E,"<>")+COUNTIFS(A:A,"ウ",G:G,"<>")) と計算するのなら判りますよね。 #参考 >数字には0があったり、セルにブランクが含まれていたりする ブランクは当然ノーカウントですが、ゼロはふつーに計算対象です。何が言いたかったのでしょうね?
補足
ご回答ありがとうございます! 例えば、計算対象のセルに、6、8、0、2、12がそれぞれ入っていたとして、 計算したい結果は、平均値にゼロのセルをカウントしない28/4=7、なのですが、 0も分母にワンカウントされてしまうので、平均値が28/5=5.6、という結果が出てしまうのです。
- angkor_h
- ベストアンサー率35% (551/1557)
averageif(excel2007以降)で出来ませんか? 平均値対象範囲は複数行が適用できます。 > 今回の計算の対象にはしたくない数字が入っているので… これは具体的には何ですか? したくない(人の思考)? 関数が無視してくれない? #### 私も経験していますが、「数字として無効なセル」を 無効なのでエラーを返す関数 …したいことが出来ない 無効なので無視してくれる関数 …ありがたい があって苦労します。 たとえば、「na()」はグラフでは無視するのにSUMではエラーになったり…
お礼
再度のご回答ありがとうございます! 質問が舌足らずだったようで申し訳ございませんでした。 実は会社で作業をしているのですが、今自宅なのですぐに試すことができないのです。 会社から掲示板サイトへの書き込みが原則禁止されているので これから出社して早速ためしてみます!