dポイントプレゼントキャンペーン実施中!

シート#1にある数値
A1
A2
A3
A4
A5
A6
A7




とある数値の平均を、別シート#2に表示させたいと考えています。
シート#2
A1→#1のA1~A3の平均値
A2→#1のA4~A6の平均値
A3→#1のA7~A9の平均値
という具合にしたいと思っているのですが、そのままコピーすると

A1→#1のA1~A3の平均値
A2→#1のA2~A5の平均値
A3→#1のA3~A6の平均値

となってしまいます。

この方法をコピーで行うことはできるのでしょうか?

ご教授よろしくお願いします。

A 回答 (4件)

シート2のA1にたとえば


=AVERAGE(OFFSET(Sheet1!$A$1:$A$3,(ROW(A1)-1)*3,0))
などのように式を立て,下向けにコピーします。

こういった計算は,OFFSET関数,INDEX関数,INDIRECT関数を利用して工夫することができます。
教わった式をコピーするだけなら簡単ですが,自分で数合わせの計算をして数式を自作するのはメンドクサイです。


#別の方法:推奨
シート2のA1に
=AVERAGE(Sheet1!A1:A3)
を記入,
A2,A3は空っぽのままA1:A3を選択して下向けにオートフィルドラッグします
A列を列選択
Ctrl+Gを押し
現れたダイアログでセル選択をクリックし
現れたダイアログで空白セルにマークしてOKし
飛び飛びに空白セルが選択されるので,崩さないように注意して右クリックして削除を選び,上に詰めます
一番シンプルなアナタの欲しかった結果が並びます。
    • good
    • 0

普通はOFFSET、INDEX関数を使う


ーー
しかし式のセル番地部分を文字列で作る方法もある。
こちらは中学受験の算数のような考えで出来る。
D1セルに ="A"&(ROW()-1)*3+1&":A"&(ROW()-1)*3+3  と入れて下方向に式を複写
D1:D8が
A1:A3
A4:A6
A7:A9
A10:A12
A13:A15
A16:A18
A19:A21
A22:A24
(これは式の一部がが正しいか確認用に出してみたものである。)
となる。これで番地指定についてはOKだろう。
ーー
そこで文字列をセル番地範囲として使うので、INDIRECT関数に入れる。
=AVERAGE(INDIRECT("A" & (ROW()-1)*3+1 & ":A"&(ROW()-1)*3+3))
のようにして下方向に式を複写すれば良い。
もちろんD列を作業列として使って良いのなら
=AVERAGE(INDIRECT(D1)) などと書ける。
    • good
    • 0

>A1→#1のA1~A3の平均値


>A2→#1のA4~A6の平均値
この二つを入力してからオートフィルするとその間隔を維持する。
    • good
    • 0

こんばんは!


一例です。
Sheet1のデータはA1セルからあるとします。

表示したいセルに
=AVERAGE(OFFSET(Sheet1!$A$1,(ROW(A1)-1)*3,,3))

としてオートフィルで下へコピーではどうでしょうか?m(_ _)m
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!