• ベストアンサー

COUNTIF関数で0以外の平均値

COUNTIF関数で0を除く平均値を出したいと考えています。例えば下の平均値は300ということになります。    A 1   600 2   400 3    0 4  -100 5   900←合計 A5/COUNTIF(A1:A4,">0") ↑ これなら0以上の数値の平均となり、-100まで除かれてしまいます。 0を除いたものとするにはどうすればよいのですか?

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

  • ベストアンサー
  • 134
  • ベストアンサー率27% (162/600)
回答No.5

=a5/(countif(a1:a4,"<>")-countblank(a1:a4")) とすると、空白セルは省けそうに思います。

daidonist
質問者

お礼

ありがとうございました。

その他の回答 (6)

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.7

こんにちは。maruru01です。 配列数式の別解。 =SUM(A1:A4)/COUNT(IF(A1:A4*1<>0,)) と入力して、[Ctrl]と[Shift]を押しながら[Enter]で確定。 (数式の両端に「{}」が付く) 範囲に数値以外は入力しないなら、 =SUM(A1:A6)/SUMPRODUCT((A1:A6*1<>0)*1) で、普通に[Enter]で確定、でもOK。

daidonist
質問者

お礼

ありがとうございました。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.6

空白行に対する対処法。 COUNTIFは2条件に対処できない。別の方法を考える。 (1)件数から=COUNTBLANK(A1:A8)を引く方法(#5のご回答) (2)配列数式 これも「判らない」といわず、勉強して見て下さい。応用が広がります。 http://www.kste.co.jp/pc21/pc_10/hr11.htm など。 =AVERAGE(IF((A2:A9<>0)*(A2:A9<>""),A2:A9,"")) といれて、SHIFT+CRTL+ENTER (3)DAVERAGEを使う (例データ)A1:A9に 計数 10 20 40 50 0 -15 20 (条件) D1:E2 計数 計数 <>0 <>"" 合計を出したいセルに =DAVERAGE(A1:A9,"計数",D1:E2) 「計数」は「人員数」などなんでも内容を表す見出しで良い。しかし必須。

daidonist
質問者

お礼

アドバイスありがとうございました。配列数式も勉強してみます。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

#3です。配列数式を使う、条件付き平均は =AVERAGE(IF(C1:C8<>0,C1:C8,""))で SHIFT+CTRL+ENTERを押す、 でした。 (例)C1:C8に 200 100 0 -50 200 0 300 0 で結果は150です。

daidonist
質問者

補足

配列数式というのはわからないので、使わない場合でうまくいきました。今度は空白のセルまで合計されてしまいます。空白と0以外の平均を出したいのですが、できますか?

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

(データ例) 200 100 0 50 200 0 300 0 (関数式) C9に=SUM(IF(C1:C8<>0,C1:C8,""))/COUNTIF(C1:C8,"<>0")といれてSHIFT+CTRL+ENTER(3キーを一緒に押す)配列数式。 (結果)170 配列数式を使わないなら =SUM(C1:C8)/COUNTIF(C1:C8,"<>0")

回答No.2

A5/(COUNTIF(A1:A4,">0")+COUNTIF(A1:A4,"<0")) これでどうでしょう?

daidonist
質問者

お礼

ありがとうございました。

  • 134
  • ベストアンサー率27% (162/600)
回答No.1

~ "<>0" では、だめですか?

daidonist
質問者

お礼

ありがとうございました。

daidonist
質問者

補足

ありがとうございます。それでできたのですが、今度は空白のセルまでカウントされてしまいました。空白と0以外というのはできるのでしょうか?