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 関数の書き方

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です