在我有列的 excel 表上,每列代表一个星期数。我想为每行和每周计算所谓的 4 周平均值,这是我使用的公式: ((value*Tvalue)+(value*Tvalue)+(value*Tvalue)+(value*Tvalue) )/(Tvalue)(这不是实际的公式,而是简化的,这并不重要)。
正是这些检查使事情变得更加复杂。如果 weeknr 的值为零,则跳过它,但如果下一个值也为零,则完全跳过公式并将其设为零(或类似“false”的文本)。所以必须考虑的另一件事是,如果值为零,则取而代之的是下周的值。
示例(参见包含的文件):我想计算第 12 周第三个值的公式 (mov 4wk avg),这将使公式(0.2*6)+(0.3*6)现在第 14 周为零所以我跳过它,那么公式将是: (0.2*6)+(0.3*6)+(0.6*6)+(0.9*6)/(6)。希望这有点道理。
现在我在 VBA 中使用大量变量和大量 if 语句来执行此操作。有没有更简单更有效的方法来解决这个问题?
示例表 https://dl.dropbox.com/u/3121767/Book1.xlsx
PS 我知道示例表是 2007/2010 版本,但我需要在 2003 年完成此操作