Vba で加重平均を計算する方法 (例あり)
VBA を使用して加重平均を計算するには、次の基本構文を使用できます。
Sub FindWeightedAverage()
Range(" E2 ") = _
WorksheetFunction.SumProduct(Range(" B2:B7 "), Range(" C2:C7 ")) / _
WorksheetFunction.Sum(Range(" C2:C7 "))
End Sub
この特定の例では、範囲B2:B7 のセルを値として使用し、範囲C2:C7のセルを重みとして使用して加重平均を計算します。
加重平均がセルE2に表示されます。
次の例は、この構文を実際に使用する方法を示しています。
例: VBA を使用して加重平均を計算する
会社の従業員によるさまざまな売上を示す次のデータ セットが Excel にあるとします。
「金額」列の値を値として使用し、「価格」列の値を重みとして使用して、価格の加重平均を計算するとします。
これを行うには、次のマクロを作成できます。
Sub FindWeightedAverage()
Range(" E2 ") = _
WorksheetFunction.SumProduct(Range(" B2:B7 "), Range(" C2:C7 ")) / _
WorksheetFunction.Sum(Range(" C2:C7 "))
End Sub
このマクロを実行すると、次の出力が表示されます。
セルE2には9.705882という値が含まれていることに注目してください。
加重平均を手動で計算することで、これが正しいことを確認できます。
加重平均には次の式を使用することに注意してください。
加重平均 = Σw i X i / Σw i
金:
- w i = 重量値
- X i = データ値
データセットの値をこの式に代入して、加重平均価格を計算できます。
- 加重平均 = Σw i X i / Σw i
- 加重平均 = (1*8 + 3*5 + 2*6 + 2*7 + 5*12 + 4*14) / (1+3+2+2+5+4)
- 学生 A の成績平均値 = 9.705882
これは、マクロを使用して計算した値と一致します。
追加リソース
次のチュートリアルでは、VBA で他の一般的なタスクを実行する方法について説明します。
VBA: AVERAGEIF 関数と AVERAGEIFS 関数の書き方
VBA: SUMIF 関数と SUMIFS 関数の書き方
VBA: COUNTIF 関数と COUNTIFS 関数の書き方