私の問題を簡略化すると、別のシートにSheet2
平均化したいデータがあるということです。
=AVERAGE(Sheet2!$A$1:Sheet2!$A$100)
上記のコードが使用される場所に応じて、 column をA
別の文字 (たとえば、 column ) に交換する必要がありますD
。これを行うには、次の関数を作成しました。
=MID("ABCDEFGHIJKLMNOPQRSTUVWXYZ",4,1)
出力は次のようになりますD
。
私の問題は、次のように書く代わりに、
=AVERAGE(Sheet2!$D$1:Sheet2!$D$100)
使用したいもの:
=AVERAGE(Sheet2!$MID("ABCDEFGHIJKLMNOPQRSTUVWXYZ",4,1)$1:Sheet2!$MID("ABCDEFGHIJKLMNOPQRSTUVWXYZ",4,1)$100)
しかし、Excel はこれを受け入れません。 の横にある関数をどのように使用すればよいでしょうかSheet2!
?
答え1
INDIRECT を使用できます:
=AVERAGE(INDIRECT ("Sheet2!$" & MID("ABCDEFGHIJKLMNOPQRSTUVWXYZ",4,1)&"$1:Sheet2!$" & MID("ABCDEFGHIJKLMNOPQRSTUVWXYZ",4,1)&"$100"))
答え2
OFFSETとINDIRECTは揮発性なのでINDEXを使用できる。
=AVERAGE(INDEX(Sheet2!$A$1:$Z$100,0,4))
は0
INDEX にすべての行を返すように指示し、は4
4 番目の列です。したがって、列 4 の 1 から 100 までのすべての行が平均化されます。
あなたのコメントによると:
=AVERAGE(INDEX(Sheet2!$A$1:$Z$100,0,(COLUMN(A:A)-1)*3))
答え3
一つの方法は次のとおりです。
=AVERAGE(OFFSET(Sheet2!$A:$A,0,(COLUMN()-1)*3))
はOFFSET
揮発性があり、ワークブックの計算負荷が増加することに注意してください。