- ベストアンサー
連続データのセルの行数を一行ごとに+7する方法
A1=ROUND((AVERAGE(C1:C7))*5,2) これをオートフィルすると、C2:C8とセルの行数がひとつずつ増えていくのですが、これをC8:C14のように7つずつ増やしたいと考えています。 どうすればよいでしょうか。 もしくは、B列の数字が7行ごとに数字が1つずつ増えるようにしてあるので、B列の数字が1の時のA列の平均をC1にB列の数字が2の時にA列の平均をC2にみたいな式でも構いません。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは! 一例です。 =ROUND(AVERAGE(OFFSET(C$1,(ROW(A1)-1)*7,,7))*5,2) または =ROUND(AVERAGE(INDIRECT("C"&(ROW(A1)-1)*7+1&":C"&(ROW(A1)-1)*7+7))*5,2) という数式を入れオートフィルで下へコピーしてみてください。 ※ 数式としては前者の方が簡単かもしれませんね。m(_ _)m
その他の回答 (2)
- MackyNo1
- ベストアンサー率53% (1521/2850)
回答がかぶったようなので、参考までに他の計算方法を提示します。 OFFSET関数を使うならC1:C7の範囲を7づつずらす以下の式のほうがわかりよいかもしれません。 =ROUND((AVERAGE(OFFSET($C$1:$C$7,(ROW(A1)-1)*7,0)))*5,2) またOFFSET関数やINDIRECT関数は揮発性関数なのでセルに入力くするごとに再計算が走りますので、シートの動きが重くなる可能性があります。 このような場合はINDEX関数を使って以下のような数式にすることもできます。 =ROUND((AVERAGE(INDEX(C:C,(ROW(A1)-1)*7+1):INDEX(C:C,ROW(A1)*7)))*5,2)
お礼
ありがとうございます。様々な関数を示して頂き、大変助かりましたm(__)m
- MackyNo1
- ベストアンサー率53% (1521/2850)
以下のような関数で集計対象の範囲を変更することができます。 =ROUND((AVERAGE(OFFSET($C$1,(ROW(A1)-1)*7,0,7,1)))*5,2) または =ROUND((AVERAGE(INDIRECT("C"&ROW(A1)*7-6&":C"&ROW(A1)*7)))*5,2)
お礼
いつもありがとうございます。OFFSETはマクロでは使ったことあるんですが、数式でも使えるんですね!参考になります。