通过行循环乘以一列VBA

时间:2019-02-12 08:39:07

标签: excel vba excel-formula

我在行BA40:BZ40中有一组权重,我希望每行从BA60:BZ60sum (BA40*BA60 + BB40*BB60 + ... + BZ40*BZ60)开始。然后将其粘贴到CA60中,然后移至第61行。但是,我仍然需要引用BA40:BZ40。我不知道这是不是我的简单化思维变得困惑或不可能。但是,我了解到一切皆有可能。目前,我的代码是

Dim cellsum As Long
For i = 60 to 1000

所以我想每天计算损失的加权总和。例如,第1天sum(0.2*(-10)+ 0.2*(-8)+ 0.1*(-6) + 0.5(-4))

Weight: 20%, 20%, 10%, 50%

Day 1: -10, -8, -6, -5
Day 2: -9, -8, -7, -6
Day 3: -5, -5, -4, -4
...

2 个答案:

答案 0 :(得分:3)

如下使用SUMPRODUCT()函数。它将自动计算百分比。您无需求和为.2.1

=SUMPRODUCT(BA40:BZ40,BA60:BZ60)

答案 1 :(得分:0)

想象一下下面的桌子:

enter image description here

然后按照您的示例计算第1天的加权总和……

=SUM($B$1*B3,$C$1*C3,$D$1*D3,$E$1*E3)

与…相同

=SUMPRODUCT($B$1:$E$1,B3:E3)

然后,可以很容易地将G3中的此公式下拉/复制到G5。


对于您的数据,它应该类似于CA60单元格中的以下内容……

=SUMPRODUCT($BA$40:$BZ$40,BA60:BZ60)

,然后复制到其他行。