• 締切済み

セル範囲を任意に変更する方法は?

時系列データ(外国為替)の任意の日付から、任意の日数分を対象に データの分析をしたいのですが、対象範囲の指定方法が分かりません。     A    B 1  日付  USD/JPY 2  061205 114.95 3  061205 114.95 4  061206 115.33 5  061207 115.15 6  061208 116.32 7  061211 116.76 8  061212 116.71 9  061213 117.40 10  061214 117.78 11  061215 118.16 例えば、12/15から過去5日間および10日間のドル円(USD/JPY)相場の 平均値を求めたい時、 =AVERAGE(B7:B11) 【過去5日平均】 =AVERAGE(B2:B11) 【過去10日平均】 と任意のセルに範囲指定すれば求められますが、 (1)基準セル(この場合"B11") (2)過去何日を対象にするのか?(この場合"5"とか"10") を入力すれば自動的に算出できるようにしたいのです。 (データは日々追加されるため、基準セルは可変となる) 初歩的な質問かもしれませんが、宜しくお願い致します!

みんなの回答

  • now2150
  • ベストアンサー率50% (17/34)
回答No.5

#3です。#4さんの式が正しいですね。 ですので#3の場合、セルC10には =AVERAGE(OFFSET(B10,-C$2+1,,C$2)) にして下さい。この後C2はどこにでも移動できます。

tetsudon
質問者

お礼

サポートありがとうございました!。 移動平均の算出以外にもいろいろと活用できそうです。

noname#204879
noname#204879
回答No.4

セル D1 に 5 とか 10 の数値を入力するとしたとき、 C11: =AVERAGE(OFFSET(B11,-D$1+1,,D$1))

tetsudon
質問者

お礼

思い通りの結果が得られました! ありがとうございました。

  • now2150
  • ベストアンサー率50% (17/34)
回答No.3

セルC2に期間パラメータの5や10を入力します。 セルC10に =AVERAGE(OFFSET(B10,$C$2*-1+1,0):B10) と入力します。そして下方にドラッグします。 セルC11は =AVERAGE(OFFSET(B11,$C$2*-1+1,0):B11) となりますよね。 あとはパラメータを変えれば任意の期間の平均値が求められます。    A     B       C 1  日付  USD/JPY  MA(2行目はパラメータ) 2                 5 3 06.12.05 114.95 4 06.12.06 115.33 5 06.12.07 115.15 6 06.12.08 116.32 7 06.12.11 116.76 8 06.12.12 116.71 9 06.12.13 117.4 10 06.12.14 117.78 116.99 11 06.12.15 118.16 117.36

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.2

◆間違いました ◆対象日数は「C1]に入力します ◆なお、対象日数より、データ数が少ない場合はエラーになります

tetsudon
質問者

お礼

いろいろな方法があるんですね。 大変参考になりました。 ありがとうございました。

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.1

◆いくつかの方法がありますが ◆B1に過去の対象日数を入力するものとします =AVERAGE(OFFSET(B2,COUNT(B:B)-1,,-C1)) または、 =AVERAGE(INDEX(B:B,COUNTA(B:B)-C1+1):INDEX(B:B,COUNTA(B:B))) または、 =AVERAGE(INDIRECT("B"&COUNTA(B:B)-C1+1&":B"&COUNTA(B:B)))