Циклическое умножение строк на один ряд VBA - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть набор весов в строках BA40:BZ40, и я хочу, чтобы каждая строка начиналась с BA60:BZ60 до sum (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 голосов
/ 12 февраля 2019

Используйте функцию SUMPRODUCT() следующим образом.Он будет автоматически рассчитывать процент.Вам не нужно суммировать как .2, .1

=SUMPRODUCT(BA40:BZ40,BA60:BZ60)
0 голосов
/ 12 февраля 2019

Представьте следующую таблицу:

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)

и затем скопируйте ее в другие строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...