كيفية حساب المتوسط المرجح في 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
ذهب:
- ث ط = قيم الوزن
- 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)
- متوسط الدرجة للطالب أ = 9.705882
وهذا يطابق القيمة التي حسبناها باستخدام الماكرو.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في VBA:
فبا: كيفية كتابة وظائف AVERAGEIF وAVERAGEIFS
فبا: كيفية كتابة وظائف SUMIF وSUMIFS
VBA: كيفية كتابة وظائف COUNTIF وCOUNTIFS