Добрый день!
Подскажите плиз, есть ли написанные ранее функции, которые могли бы считать средневзвешенное значение, но только по установленному автофильтру.
Вот что смог найти:
Function dhAverageWithWeight(rgWeights As Range, rgValues As Range) _
As Double
If (rgWeights.Count <> rgValues.Count) Then
' Количество весов не соответствует количеству аргументов
dhAverageWithWeight = 0
Exit Function
End If
Dim i As Integer
Dim dblSum As Double ' Сумма значений
Dim dblSumWeight As Double ' Взвешенная сумма значений
' Вычисление...
For i = 1 To rgWeights.Count
' Взвешенной суммы значений
dblSumWeight = dblSumWeight + rgWeights(i) * rgValues(i)
' Суммы значений
dblSum = dblSum + rgWeights(i)
Next
' Возвращение средневзвешенного значения
dhAverageWithWeight = dblSumWeight / dblSum
End Function
Спасибо!
Подскажите плиз, есть ли написанные ранее функции, которые могли бы считать средневзвешенное значение, но только по установленному автофильтру.
Вот что смог найти:
Function dhAverageWithWeight(rgWeights As Range, rgValues As Range) _
As Double
If (rgWeights.Count <> rgValues.Count) Then
' Количество весов не соответствует количеству аргументов
dhAverageWithWeight = 0
Exit Function
End If
Dim i As Integer
Dim dblSum As Double ' Сумма значений
Dim dblSumWeight As Double ' Взвешенная сумма значений
' Вычисление...
For i = 1 To rgWeights.Count
' Взвешенной суммы значений
dblSumWeight = dblSumWeight + rgWeights(i) * rgValues(i)
' Суммы значений
dblSum = dblSum + rgWeights(i)
Next
' Возвращение средневзвешенного значения
dhAverageWithWeight = dblSumWeight / dblSum
End Function
Спасибо!