1

列を持っているExcelシートでは、各列は週番号を表します。各行と各週のいわゆる 4 週間平均を計算したいのですが、これは私が使用する式です: ((value*Tvalue)+(value*Tvalue)+(value*Tvalue)+(value*Tvalue) )/(Tvalue) (これは実際の式ではなく単純化されたものであり、それほど重要ではありません)。

物事をもう少し複雑にするのはチェックです。weeknr の値がゼロの場合はスキップしますが、次の値もゼロの場合は、数式をすべてスキップしてゼロ (または "false" のようなテキスト) にします。したがって、考慮しなければならないもう 1 つのことは、値がゼロの場合、代わりに次の週の値が取得されるということです。

例 (含まれているファイルを参照): 12 週の 3 番目の値の式 (mov 4wk avg) を計算したいので、式(0.2*6)+(0.3*6)が作成され、14 週にゼロがあるため、スキップすると、式は (0.2*6)+(0.3*6)+(0.6*6)+(0.9*6)/(6)になります。それが理にかなっていることを願っています。

現在、多くの変数と多くの if ステートメントを使用して VBA でこれを行っています。これを行うためのより簡単で効果的な方法はありますか?

サンプルシート https://dl.dropbox.com/u/3121767/Book1.xlsx

PS サンプル シートが 2007/2010 バージョンであることはわかっていますが、2003 年にはこれを達成する必要があります。

4

2 に答える 2

0

2段階アプローチしてみた

1) 次のルールに従って各セルを変換します。

if myweek = 0 and mynextweek = 0 then
    myweek = 0
elseif myweek = 0 and mynextweek <> 0 then
    myweek = mynextweek
else
    myweek = myweek
endif

Sheet2!B2 に入力し =IF(AND(Sheet1!B2=0,Sheet1!C2=0),0,IF(Sheet1!B2=0,Sheet1!C2,Sheet1!B2))て、Sheet1 のデータが存在するすべてのセルにコピーし、列 A のベース値のコピーと一緒に

2) 次に、列 M の W15 から始まる 4 列のセットごとに、4 週間にわたる標準移動平均を作成します。これをシート 1 またはシート 2 に表示するかどうかは好みの問題です。

于 2012-11-09T11:37:59.717 に答える