• ベストアンサー

EXCELで一行おきの平均を関数で求めたい。

ずばりタイトルに書いたとおりです。

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

  • ベストアンサー
  • kbonb
  • ベストアンサー率51% (254/492)
回答No.2

こんにちは ○A1:A10の奇数行の平均 =AVERAGE(IF(MOD(ROW(A1:A10),2),A1:A10,"")) をCtrl+Shift+Enterで入力 ○A1:A10の偶数行の平均 =AVERAGE(IF(MOD(ROW(A1:A10),2)=0,A1:A10,"")) をCtrl+Shift+Enterで入力 でいかがでしょうか?

参考URL:
http://www2.odn.ne.jp/excel/
oc8
質問者

お礼

早速のご回答ありがとうございました。 配列を使用する巧みな方法だと思いました。 途中セルが空白の場合を考えてみました。 1行目 2 2行目 2 3行目 4 4行目 4 5行目  6行目 6 この場合5行目が空白でこのままだと奇数行の平均が3のところ2になってしまいます。 =average(if(mod(row(a1:a6),2)=1,if((a1:a6)>0,a1:a6,""),"")) としてみると空白があっても良さそうです。 どうもありがとうございました。

その他の回答 (1)

noname#4320
noname#4320
回答No.1

10 4 6 8 の場合、一行おきの平均とは、(10+6)/2 = 8あるいは(4+8)/2=6でよろしいでしょうか? 一発で求めるのは、難しい(というより知らない)ので、私ならばこうします。 A1からA10に、元データがあるとします。平均算出に使いたい元データの隣(B列)に、1とかいれておきます。(1以外でも良し) そうするとB1~B10の間には、1行おきに1が入る感じになりますよね。 そして、あるセルに合計を求めます。 =SUMIF(B1:B10,1,A1:A10) これは、B1~B10の範囲で、1が入っているセルがあれば、それに対応するA1~A10の合計を求めるということです。これを、データ個数で割れば、平均が求まります。データ個数は、COUNTIFという関数で求めることができます。 =COUNTIF(B1:B10,1) B1~B10の間で、1が入っているセル数を数える。 今回B列には1を入れましたが、それ以外の数や文字を使って、いくつかのグループ化をして、それぞれのグループ毎の平均が求められるのでは。

oc8
質問者

お礼

ありがとうございました。 別なセルを使用する方法では私もなんとかできたのですが、sumifという関数は 知りませんでした。参考になりました。

関連するQ&A

専門家に質問してみよう