早速ですが、加重移動平均を求めたいのですが
=SUMPRODUCT(OFFSET(E6,0,0,-$J$4,1),OFFSET(I6,0,0,$J$4,1))/SUM(OFFSET(I6,0,0,$J$4,1))
式として成り立ってます。E列が基本データ $J$4は 集める期間 20項とか
I列が 連番です。連番を利用すれば事足りるのですが、オリジナルはシートが大きくなり、連番の列を増やしたくない、で、連番の代わりに ROW()が代わりに使えないか? という質問です
NGですが
SUMPRODUCT(OFFSET(E5,0,0,-$J$4,1),OFFSET(row(),0,0,$J$4,1))/SUM(OFFSET(row(),0,0,$J$4,1))
こんな感じで使えれば・・・
お手数ですが
No.1
- 回答日時:
質問の状況(excelのシートの状況)がわかりません。
質問文の式から想像して、一つの方式を例示します。
ただ、Excelの状況は別に造り直しました。
1) B列に上から下へ変動するデータを入れてある(適当に)
2) C2に「1」を入れ、C列下に100まで連続する数値を入れてある(固定)
3) 2行目に、(D列から適当に)加重移動平均する区間の数を入れる(適当に)
4) D3に次の式を入れる
「 =SUMPRODUCT(OFFSET($B4,1-D$2,0,D$2,1),OFFSET($C$2,0,0,D$2,1)*2/(D$2+1)/D$2) 」
5) D3を、右方向や下方向にコピードラッグしてしまう。
(式がコピーされたセルに、加重移動平均が表示される)
イメージは添付画像のようなものです。
2行目の D2、E2、G2などのセルの値を変更すると、加重移動平均は再計算されます。 B列の変動データを書き直しても同じです。
お手数おかけします。質問の意図は
=Row() が 成立するのに
=SUMPRODUCT(OFFSET(E5,0,0,-$J$4,1),OFFSET(row(),0,0,$J$4,1))/SUM(OFFSET(row(),0,0,$J$4,1))
が なぜ NGか?
式はE列がデータ、I列は連番、$J$4は平均を取る期間(通常変化させません、利用目的の適合期間を求めるためにシュミレーションとして可変することは有ります)です。
加重移動平均は 明示頂いたHPの様に使われます。
No.2
- 回答日時:
間違いました。
4) D3に次の式を入れる ⇒ 4) D4に次の式を入れる
5) D3を、 ⇒ 5) D4を、
このように配列入力でなく、SUMPRODUCTを使うのは、私は初めての経験です。加重移動平均というやり方も、私は知りませんでした。
http://www.fx-soken.co.jp/tech/t_130.html
計算はできるけれど、これで計算してどう使えるのかが、私にはわからない。
またこのような計算をする式を実用的に使えるものか、私にはわからない。
このシートの計算結果をグラフにはできるようです。
単純移動平均は
早い話、小売店の日々の売り上げをグラフにしても、曜日のデータばらつき(金土日が売り上が多い)が影響して、傾向が見えません。そこで、7項移動平均が使われます。火曜の朝に日から月(1週前の)まで合計し7で割る。次は月(昨日の)から日まで同じように・・・・これでグラフを書けば、すべてのデータに土日のデータが混ざって、曜日の特徴が消えます。
欠点は、「データ変化が鈍くなる」と言うことです。
毎日10万売上る店が有ります。グラフは10万で横直線です。
競合店が出来て、売り上げが5万に成りました。グラフのデータが5万に成るのは 1週間後です。
それまで、日々コンスタントに7142円減少します(7142*7=49994)
加重移動平均だと12500円減少します。
明示頂いたHPの時は、転換点が早く表示されます。
この様な使われ方です。
投稿感謝
No.3ベストアンサー
- 回答日時:
>=Row() が 成立するのに
>=SUMPRODUCT(OFFSET(E5,0,0,-$J$4,1),OFFSET(row(),0,0,$J$4,1))/SUM(OFFSET(row(),0,0,$J$4,1)) が なぜ NGか?
OFFSETの関数の使い方が違うからです。
https://support.office.com/ja-jp/article/OFFSET- …
OFFSET(基準とする参照位置, 参照位置からの行偏位, 参照位置からの列偏位, [指定する高さ], [指定する幅])
これが使い方なので、ROW()では適切なものになりません。
加重するウエートをセルに明示して確定させておくことが便利だと私は思います。とにかく、そこをシート上に示したくない、セルを使いたくないのであれば、次のような式も考えられると思います。
E4 = SUMPRODUCT(OFFSET($B4,1-E$2,0,E$2,1),ROW(OFFSET($A$1,0,0,E$2,1)))*2/(E$2+1)/E$2
上記では、
E2に加重平均するための期間(例えば、7や20など)を数値で入力
B4からB789などの下方行に、変動するデータ
E4の数式を下方向にドラッグコピーすれば、E2=20ならば、
E90には、B71:B90の過去を1,2,3,4………20のウエートで加重平均した結果が表示されると思います。
上記の式の$A$1は、ただ行番号を配列にするための指定開始位置なので、$F$1にしても結果は同じです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelでなぜこのような式をつかっているのでしょうか、行に1,2,3と連番を振るだけなのに 5 2023/04/08 20:00
- Excel(エクセル) Excelで縦1列に並んだ大量の数字から、一定間隔で平均値を出したい。 2 2023/02/20 09:17
- Visual Basic(VBA) 3つの条件を指定してVBAで行を削除したい 条件1:分類1が重複 条件2:分類2が重複 条件3:個数 6 2022/06/24 11:07
- Excel(エクセル) マクロで列を加えたら上手くいかなくなりました。 2 2022/05/23 17:59
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Visual Basic(VBA) Sheet1をフィルターで「りんご」を抽出し、Sheet2へ地域を貼り付ける下記マクロを変更して S 2 2022/12/11 03:01
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) 並べ替え、ソートの構文がわからない。 お世話になります。VBA超初心者です。 エクセルでワークシート 2 2023/06/28 21:00
- Excel(エクセル) エクセル 行番号を自動で振るには 3 2022/08/08 20:19
- Excel(エクセル) エクセルの印刷範囲をページ単位で可変にする方法 3 2022/05/23 13:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Vba 実数および実数タイプの変...
-
Excelのマクロについて教えてく...
-
VBA レジストリの値の読み方に...
-
ExcelのVBAコードについて教え...
-
Excel マクロについての相談
-
Excel VBA 定義されたプロージ...
-
Vba SelStart、SelLen教えてく...
-
エクセルのマクロについて教え...
-
VBAに詳しい方教えてください。
-
VBAの質問になります メッセー...
-
ユーザーフォームに別シートか...
-
2つのマクロでチェックボックス...
-
VBA listBoxから
-
VBA初心者 Ctrl+での操作、ボタ...
-
VBA 複数条件の分岐処理の上手...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
左右の表のキー位置を合わせたい
-
VBAの質問になります Userform内で
-
Excelについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBA 定義されたプロージ...
-
Excel-VBAのmsgBox()の不思議
-
【VBA】マクロの入ったファイル...
-
VBA 複数条件の分岐処理の上手...
-
現在のブックを閉じないで、マ...
-
VBAで各列の"+"と"o"の合計数を...
-
VBAに詳しい方教えてください。
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
ユーザーフォームに別シートか...
-
エクセルのマクロについて教え...
-
ExcelVBA シート名を複数セルか...
-
エクセルのマクロについて教え...
-
VBA listBoxから
-
Excelのマクロについて教えてく...
-
エクセルのマクロについて教え...
おすすめ情報