• ベストアンサー

EXCEL関数での相対範囲指定法を教えてください

EXCEL(2000)で、関数が参照する範囲を自由に変える方法はないでしょうか? 仕事で、時系列のデータに対する移動平均線が必要になりました。 具体的には、 =AVERAGE(R[-10]C[-1]:RC[-1]) のような関数を同一列にコピーして、左隣の列のデータを順次平均する関数が必要です。 [-10]の代わりに特定のセルの値を入れて、平均値に用いる引数の個数を自由にコントロールしたいと考えています。 =AVERAGE(R[R1C1]C[-1]:RC[-1]) 等と指定しても、エラーになるので、困っています。 よろしくお願いします。

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

  • ベストアンサー
回答No.2

offset関数は試してみましたか? =offset(基準のセル,-1,0,3,1) とすれば、基準のセルとその上下の全部で3つのセルからなる参照を返します。 どこかに5点平均とか7点平均のための数値を格納する場所を決めておいて =average(offset(基準のセル,-1*((個数-1)/2),0,個数,1)) なんてやると、インタラクティブにコントロールできると思いますよ。

cokun
質問者

お礼

こんなに早く回答を頂いて、ありがとうございます。 まさに「これ」です。 offset関数なんて知らなかったので、勉強になりました。 本当にありがとうございます。助かりました。

その他の回答 (2)

回答No.3

例えば、セル"B11"に  =AVERAGE($A$1:A10) と入力して、そのセルを右方向にドラッグでコピーしていけば。  C11=AVERAGE($A$1:B10)  D11=AVERAGE($A$1:C10)  E11=AVERAGE($A$1:D10) ・・・ というように、「$」を付けると絶対参照 付けないと相対参照します。

cokun
質問者

補足

説明不足ですみません。 AVERAGEで参照するセルの個数は、常に一定にした上でコピーしたいと考えていますので、この方法では考えていたような結果は得られないと思います。 ご回答どうもありがとうございました。

  • comv
  • ベストアンサー率52% (322/612)
回答No.1

こんにちは =AVERAGE(R[R1C1]C[-1]:RC[-1]) と同じ意味を持ちエラーの出ない式の例です =AVERAGE(INDIRECT("R["&R1C1&"]C"&COLUMN()-1&":RC"&COLUMN()-1,0)) 同様の処理はOFFSET()でも可能な筈です。 (苦手なので提示できませんが^^;)

cokun
質問者

お礼

早速のご回答ありがとうございます。 無理かと思っていましたが、いろいろと方法はあるものですね。 思ったとおりの結果が得られましたが、この方法、理解するのにちょっと時間がかかりそうです。

関連するQ&A