فبا: كيفية كتابة وظائف averageif وaverageifs
يمكنك استخدام الطرق التالية لكتابة دالات AVERAGEIF وAVERAGEIFS باستخدام VBA في Excel:
الطريقة الأولى: الدالة AVERAGEIF في VBA
Sub Averageif_Function()
Range(" E2 ") = WorksheetFunction.AverageIf(Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "))
End Sub
سيقوم هذا المثال المحدد بحساب متوسط القيمة في النطاق B2:B12 حيث القيمة المقابلة في النطاق A2:A12 تساوي “Mavs”، ثم قم بتعيين النتيجة للخلية E2 .
الطريقة الثانية: دالة AVERAGEIFS في VBA
Sub Averageifs_Function()
Range(" E2 ") = WorksheetFunction.AverageIfs(Range(" C2:C12 "), Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "), " >20 ")
End Sub
سيقوم هذا المثال المحدد بحساب متوسط القيمة في النطاق C2:C12 حيث القيمة في النطاق A2:A12 تساوي “Mavs” والقيمة في النطاق B2:B12 أكبر من 20، ثم قم بتعيين النتيجة للخلية E2 . .
توضح الأمثلة التالية كيفية استخدام كل من هذه الطرق عمليًا مع مجموعة البيانات التالية في Excel والتي تحتوي على معلومات حول لاعبي كرة السلة المختلفين:
مثال 1: الدالة AVERAGEIF في VBA
لنفترض أننا نريد حساب متوسط القيمة في عمود النقاط للاعبين في فريق Mavs.
يمكننا إنشاء الماكرو التالي لتنفيذ وظيفة AVERAGEIF هذه:
Sub Averageif_Function()
Range(" E2 ") = WorksheetFunction.AverageIf(Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "))
End Sub
عندما نقوم بتشغيل هذا الماكرو، نحصل على الإخراج التالي:
لاحظ أن الخلية E2 تحتوي على القيمة 18.25 .
يخبرنا هذا أن متوسط القيمة في عمود النقاط للاعبي فريق Mavs هو 18.25.
يمكننا التحقق من صحة ذلك عن طريق حساب متوسط قيمة نقاط اللاعب يدويًا على Mavs:
متوسط نقاط لاعب مافس: (22 + 10 + 29 + 12) / 4 = 18.25 .
مثال 2: دالة AVERAGEIFS في VBA
لنفترض أننا نريد حساب متوسط القيمة في عمود التمريرات الحاسمة للاعبين الذين يستوفون المعايير التالية:
- اللاعب جزء من فريق Mavs.
- وسجل اللاعب أكثر من 20 نقطة.
يمكننا إنشاء الماكرو التالي لتنفيذ وظيفة AVERAGEIFS هذه:
Sub Averageifs_Function()
Range(" E2 ") = WorksheetFunction.AverageIfs(Range(" C2:C12 "), Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "), " >20 ")
End Sub
عندما نقوم بتشغيل هذا الماكرو، نحصل على الإخراج التالي:
لاحظ أن الخلية E2 تحتوي على القيمة 9 .
يخبرنا هذا أن متوسط التمريرات الحاسمة بين اللاعبين الموجودين في فريق Mavs والذين سجلوا أكثر من 20 نقطة هو 9.
ملاحظة : في هذا المثال، قمنا بإنشاء دالة AVERAGEIFS باستخدام نطاقين من المعايير، ولكن يمكنك استخدام أي عدد تريده من نطاقات المعايير في أسلوب WorksheetFunction.AverageIfs .
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في VBA:
فبا: كيفية حساب متوسط قيمة النطاق
فبا: كيفية كتابة وظائف SUMIF وSUMIFS
VBA: كيفية كتابة وظائف COUNTIF وCOUNTIFS