- ベストアンサー
指定したセル範囲の0以上の値の平均を求めたい
いつもお世話になっています。よろしくお願いします。 C2からC10を範囲として、0以上の値の平均を求めたいのですが どうしたら良いでしょうか。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
C2からC10にはマイナスの値も入っているんでしょうか。 もしそうでしたら =SUMIF(C2:C10,">=0")/COUNTIF(C2:C10,">=0") で計算できます。 数値は全て0以上で、そうでない場合は空欄か文字が入っているのでしたら =SUM(C2:C10)/COUNTIF(C2:C10,">=0") で計算できます。 もちろんその場合でも最初の式で計算できます。
その他の回答 (5)
- comv
- ベストアンサー率52% (322/612)
こんばんは 数式バーに =AVERAGE(IF(C2:C10>=0,C2:C10)) と入力して [Ctrl]+[Shift]キーを押さえながら[Enter] で入力確定(配列数式) 確定後は数式バー上に表示される式は {=AVERAGE(IF(C2:C10>=0,C2:C10))} と{}で括られます。 式を部分編集した時も[Ctrl]+[Shift]+[Enter]を忘れずに
お礼
comvさんこんばんは。私も最初IFを使って平均を求めることを 考えていましたができませんでした。 それとこれは私の説明不足が原因ですが、指定した範囲のデータの内 値が0以上のデータの平均を求めたいと思います。 2 4 -5 0 この場合2と4と0の平均で6/3=2になるような式です
- imogasi
- ベストアンサー率27% (4737/17069)
テストデータとしてA1:A7に 計数 1 2 0 3 4 0 を入れます。A8に=SUM(A2:A7)(Σで)で合計が出ます。 C1:C2に 計数 >0 と入れます。 D10に式=DCOUNTA(A1:A7,A1,C1:C2)と入れます。 件数4が出ます。後は合計A8を件数4で割れば良い。
お礼
imogasiさんこんばんは。せっかく教えていただきましたが 今回はひとつの式で済むほうほうでやりたいと思います。 どうもありがとうございました。
- zeruda
- ベストアンサー率57% (4/7)
D2からD10をダミー列として設定 IF関数で0以上の場合C列の値表示、 0未満の場合は空白 D2からD10の平均をaverage関数で求める やりかたとしては少しダサイですが・・・ 見た目が悪ければ D列 を非表示にして
お礼
zerudaさんこんばんは。教えていただいて恐縮ですが 今回は一つの式で済むほうほうでやることにしました。 どうもありがとうございました。
- oneworld
- ベストアンサー率29% (17/58)
下記の式をコピペして下さい。 =SUM(C2:C10)/COUNTIF((C2:C10),">0") C2からC10の合計を0以上の数値個数で割る
お礼
oneworldさん今晩は、いま2つのセルにそれぞれ式を書いて割り算する ことを考えていました。これならひとつのセルに式がかけますね。 世間にはエクセルの達人がたくさんいて皆さんの頭の良さに驚いています。 教えていただきましたこの式をこれから大事に使わせていただきます。 どうもありがとうございました。
- sen-sen
- ベストアンサー率31% (66/211)
C2からC10の総計を求めて、C2からC10のセルで0以上の数を数えて割るのは、いかがでしょうか。C2からC10のセルで0以上の数を数えるのは、Countif関数を用いてはいかがでしょうか。
お礼
sen-senさん、どうもありがとうございます。 確かに良いアイデアですね。私は条件付で平均を求めることばかり考えて いました。
お礼
fu-raibo-さん始めまして。皆さんの答えがだんだんすばらしいものになってきてうれしい悲鳴です。確かに-も入っています。 大切に使わせていただきます。どうもありがとうございました。