Jak obliczyć średnią ważoną w vba (z przykładem)
Do obliczenia średniej ważonej za pomocą języka VBA można użyć następującej podstawowej składni:
Sub FindWeightedAverage()
Range(" E2 ") = _
WorksheetFunction.SumProduct(Range(" B2:B7 "), Range(" C2:C7 ")) / _
WorksheetFunction.Sum(Range(" C2:C7 "))
End Sub
W tym konkretnym przykładzie obliczana jest średnia ważona przy użyciu komórek z zakresu B2:B7 jako wartości i komórek z zakresu C2:C7 jako wag.
Średnia ważona jest następnie wyświetlana w komórce E2 .
Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.
Przykład: Oblicz średnią ważoną za pomocą języka VBA
Załóżmy, że mamy w Excelu następujący zestaw danych, który pokazuje różne sprzedaże dokonane przez pracowników firmy:
Załóżmy, że chcemy obliczyć średnią ważoną ceny, wykorzystując wartości z kolumny Kwota jako wartości i wartości z kolumny Cena jako wagi:
W tym celu możemy utworzyć następujące makro:
Sub FindWeightedAverage()
Range(" E2 ") = _
WorksheetFunction.SumProduct(Range(" B2:B7 "), Range(" C2:C7 ")) / _
WorksheetFunction.Sum(Range(" C2:C7 "))
End Sub
Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:
Zauważ, że komórka E2 zawiera wartość 9,705882 .
Możemy sprawdzić, czy jest to prawidłowe, ręcznie obliczając średnią ważoną.
Pamiętaj, że na średnią ważoną stosujemy następujący wzór:
Średnia ważona = Σw i X i / Σw i
Złoto:
- w i = wartości wagowe
- X i = wartości danych
Możemy podłączyć wartości z naszego zbioru danych do tego wzoru, aby obliczyć średnią ważoną cenę:
- Średnia ważona = Σw i X i / Σw i
- Średnia ważona = (1*8 + 3*5 + 2*6 + 2*7 + 5*12 + 4*14) / (1+3+2+2+5+4)
- Średnia ocen ucznia A = 9,705882
Odpowiada to wartości obliczonej za pomocą makra.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w VBA:
VBA: Jak napisać funkcje ŚREDNIA.JEŻELI i ŚREDNIA.JEŻELI
VBA: Jak pisać funkcje SUMIF i SUMIFS
VBA: Jak pisać funkcje COUNTIFS i COUNTIFS