おはよう、
この出力を別のシートに表示する必要がありますが、基本的に私が解決しようとしている問題は次のように説明できます。
次の形式で列内のセルを平均化する方法を理解しようとしています。
Sheet2の、の、の、 (Sheet1!a10:a13) などをB2
入力します。average(Sheet1!a2:a5)
B3
average(Sheet1!a6:a9)
B4
必要以上に複雑にしてしまったかもしれませんが、私のアイデアは次のように Offset 関数を使用することです。
=AVERAGE(OFFSET(Sheet1!$a$2, 4*(ROW()-ROW(Sheet1!$a$2)), 0, 4, 1))
うまくいきました! ただし、異なるデータを表示するには、以下に示すように別の列が必要です。
=AVERAGE(OFFSET(Sheet1!$a$118, 4*(ROW()-ROW(Sheet1!$a$118)), 0, 4, 1))
参照エラーが発生します。なぜこれが機能しないのか理解するのを手伝ってくれる人はいませんか? 簡単な解決策があればありがたいのですが、理由の説明があると特にありがたいです!!
答え1
そうですね、最初の数式には別の数式を使います。
=AVERAGE(INDEX(A:A,1+4*(ROW()-ROW($B$1))):INDEX(A:A,4*(ROW()-ROW($B$1)+1)))
これは、平均を計算するための配列を作成します。これは、範囲の両側で、現在の行を見つけ、参照行を減算し、1 を加算して 4 を乗算することによって行われます。動作を確認するには、evaluate 式を使用します。
これをもう一度やりたいが、A118から始めるとしよう。これがあなたが尋ねているものだと思います
=AVERAGE(INDEX(A118:A999,1+4*(ROW()-ROW($B$118))):INDEX(A118:A999,4*(ROW()-ROW($B$118)+1)))
さて、これでは118行目で作業を行う必要がありますが、1行目に戻って新しい列を開始したいとします。
=AVERAGE(INDEX(A118:A999,1+4*(ROW()-ROW($B$1))):INDEX(A118:A999,4*(ROW()-ROW($B$1)+1)))
最初のものと同じです。