- ベストアンサー
AVARAGE関数で0をカウントしない、の応用
初めて投稿させて頂きます。 目的は =AVERAGE(B5,B33,B61,B89,B117,B145,B173) の各セル中に0があった場合、その0をカウントせず平均を出したいのです。 Google検索で右記ページ(http://okwave.jp/qa413766.html)を見つけ、 =SUM(A1:A10)/COUNTIF(A1:A10,"<>0") という所まではたどり着いたのですが、 =SUM(B5,B33,B61,B89,B117,B145,B173)/COUNTIF(B5,B33,B61,B89,B117,B145,B173,"<>0") とするとエラーが出ました。。 Excelの基礎をも知らないド素人なのですが、業務上必要なデータを算出する為に上記を作成しなければならず、大変困っております。。 どうか知恵をお貸し下さいますようお願い致します!!
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
ついでに: =SUMPRODUCT((MOD(ROW(B1:B173),28)=5)*B1:B173)/SUMPRODUCT((MOD(ROW(B1:B173),28)=5)*(B1:B173<>0)) 集計するセルが規則性があるようなので、こんな感じで計算式を立てると一つ一つセル番地を入力する手間が省けます。
その他の回答 (4)
- CMLT
- ベストアンサー率40% (143/357)
COUNTIFの引数(範囲指定)はひとつです。カンマで区切れません。 一度=で連続した別セルに数値を引っ張ってくれば、やりたいことは出来ると思います。といってもこの方法をとった場合、SUMとCOUNTIFを組み合わせるよりAVERAGEIFでいっぺんにできてしまいますが。
お礼
ご回答ありがとうございます!! AVERAGEは何とか理解出来ている(つもり)なのですが、その後にIFが付くと、もうどうしていいかわからなくなります…(苦笑 下記のお礼としても書きました通りですが、関数の意味を勉強しながら取り入れていきたいと思います!!
- mu2011
- ベストアンサー率38% (1910/4994)
COUNTIF関数でエラーと思います、仮に計数対象セルには数式で「0」が設定されているのでしたら、「""」にすれば如何でしょうか。 又は、対象セルを選択して置換で「0」を空白にしても良いと思います。 計数対象が28行単位だったので参考程度です。 尚、配列数式の為、入力完了時にshift+ctrl+enterキーを同時押下して下さい。 =AVERAGE(IF(MOD(ROW(B5:B173)-5,28)=0,IF(B5:B173<>0,B5:B173,""),""))
お礼
ご回答ありがとうございます!! 初めて見る関数で思わず画面の前で苦笑いしてしまいました。 質問欄で記載したセルに早速当てはめてみましたところ、この関数でやりたい事は実現出来る様子でした!! …が、同様に他のセルで反映させようと中身をいじってみたのですが、出来ませんでした。。 おそらくいじり方を間違っているのだと思われますので、試行錯誤しながら関数の意味を勉強したいと思います!! 本当にありがとうございました!!
- gyouda1114
- ベストアンサー率37% (499/1320)
作業列を使う方法はいかがですか 例えばC列に =B5 =B33 =B61 =B89 =B117 =B145 =B173 と入力し =SUM(C1:C7)/COUNTIF(C1:C7,"<>0") でいかがですか
お礼
ご回答ありがとうございます!! これは目からウロコでした…!! そうですね、一度他のセルに移せば問題無いですよね!! これならば私でも出来そうなので、取り急ぎこの方法で一旦作成してみる事にします!!
- web2525
- ベストアンサー率42% (1219/2850)
COUNTIF(B5,B33,B61,B89,B117,B145,B173,"<>0") COUNTIFはセル範囲内での集計に用いられますのでこういった書き方自体が間違っているという事になるのだと思います。 他の方法でカウントする必要がありそうですね、 例: SUM(B5<>0,B33<>0,B61<>0,B89<>0,B117<>0,B145<>0,B173<>0) とかで?
お礼
ご回答ありがとうございます!!
お礼
ご回答ありがとうございます!! 初めて見る関数で思わず画面の前で苦笑いしてしまいました。 質問欄で記載したセルに早速当てはめてみましたところ、この関数でやりたい事は実現出来る様子でした!! …が、同様に他のセルで反映させようと中身をいじってみたのですが、出来ませんでした。。 おそらくいじり方を間違っているのだと思われますので、試行錯誤しながら関数の意味を勉強したいと思います!! 本当にありがとうございました!!