Vba: كيفية كتابة وظائف sumif وsumifs
يمكنك استخدام الطرق التالية لكتابة دالات SUMIF وSUMIFS باستخدام VBA في Excel:
الطريقة الأولى: دالة SUMIF في VBA
SubSumif_Function ()
Range(" E2 ") = WorksheetFunction.Sumif(Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "))
End Sub
سيقوم هذا المثال المحدد بجمع القيم في النطاق B2:B12 فقط عندما تكون القيمة المقابلة في النطاق A2:A12 تساوي “Mavs” وتعيين النتيجة للخلية E2 .
الطريقة الثانية: دالة SUMIFS في VBA
Sub Sumifs_Function()
Range(" E2 ") = WorksheetFunction.SumIfs(Range(" C2:C12 "), Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "), " >20 ")
End Sub
سيجمع هذا المثال المحدد القيم في النطاق C2:C12 فقط عندما تكون القيمة في النطاق A2:A12 تساوي “Mavs” وتكون القيمة في النطاق B2:B12 أكبر من 20، ثم قم بتعيين النتيجة للخلية E2 . .
توضح الأمثلة التالية كيفية استخدام كل من هذه الطرق عمليًا مع مجموعة البيانات التالية في Excel والتي تحتوي على معلومات حول لاعبي كرة السلة المختلفين:
مثال 1: دالة SUMIF في VBA
لنفترض أننا نريد حساب مجموع القيم في عمود النقاط فقط للاعبين الموجودين في فريق Mavs.
يمكننا إنشاء الماكرو التالي لتنفيذ وظيفة SUMIF هذه:
SubSumif_Function ()
Range(" E2 ") = WorksheetFunction.Sumif(Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "))
End Sub
عندما نقوم بتشغيل هذا الماكرو، نحصل على الإخراج التالي:
لاحظ أن الخلية E2 تحتوي على القيمة 73 .
يمثل هذا مجموع القيم الموجودة في عمود النقاط للاعب فريق Mavs.
يمكننا التحقق من صحة ذلك عن طريق حساب مجموع القيم في عمود النقاط للاعبي فريق Mavs يدويًا:
مجموع نقاط لاعبي مافز: 22 + 10 + 29 + 12 = 73 .
مثال 2: دالة SUMIFS في VBA
لنفترض أننا نريد حساب مجموع القيم في عمود التمريرات الحاسمة فقط للاعبين الذين يستوفون المعايير التالية:
- اللاعب جزء من فريق Mavs.
- وسجل اللاعب أكثر من 20 نقطة.
يمكننا إنشاء الماكرو التالي لتنفيذ وظيفة SUMIFS هذه:
Sub Sumifs_Function()
Range(" E2 ") = WorksheetFunction.SumIfs(Range(" C2:C12 "), Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "), " >20 ")
End Sub
عندما نقوم بتشغيل هذا الماكرو، نحصل على الإخراج التالي:
لاحظ أن الخلية E2 تحتوي على القيمة 18 .
يمثل هذا مجموع القيم الموجودة في عمود النقاط للاعبي فريق Mavs الذين سجلوا أكثر من 20 نقطة.
ملاحظة : في هذا المثال، قمنا بإنشاء دالة SUMIFS باستخدام نطاقين من المعايير ولكن يمكنك استخدام أي عدد تريده من نطاقات المعايير في أسلوب WorksheetFunction.SumIfs .
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في VBA:
VBA: كيفية كتابة وظائف COUNTIF وCOUNTIFS
فبا: كيفية كتابة وظائف AVERAGEIF وAVERAGEIFS