Vba: كيفية الإضافة إذا كان بين تاريخين
يمكنك استخدام بناء الجملة التالي في VBA لحساب المجموع إذا كانت الخلايا بين تاريخين:
Sub SumifBetweenDates()
Range(" E3 ") = WorksheetFunction.SumIfs(Range(" B2:B9 "), Range(" A2:A9 "), " >= " & [E1], _
Range(" A2:A9 "), " <= " & [E2])
End Sub
سيجمع هذا المثال المحدد القيم الموجودة في النطاق B2:B9 فقط عندما يقع التاريخ الموجود في النطاق A2:A9 بين تاريخ البدء في الخلية E1 وتاريخ الانتهاء في الخلية E2 .
سيتم بعد ذلك عرض المبلغ في الخلية E3 .
يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.
مثال: كيفية إضافة إذا بين تاريخين في VBA
لنفترض أن لدينا مجموعة البيانات التالية التي تحتوي على معلومات حول إجمالي عدد المنتجات المباعة في تواريخ مختلفة في متجر بيع بالتجزئة:
لنفترض أننا نريد حساب مجموع المبيعات فقط للتواريخ بين 07/01/2023 و 26/01/2023 .
يمكننا إنشاء الماكرو التالي للقيام بذلك:
Sub SumifBetweenDates()
Range(" E3 ") = WorksheetFunction.SumIfs(Range(" B2:B9 "), Range(" A2:A9 "), " >= " & [E1], _
Range(" A2:A9 "), " <= " & [E2])
End Sub
عندما نقوم بتشغيل هذا الماكرو، نحصل على الإخراج التالي:
لاحظ أن الخلية E3 تحتوي على القيمة 16 .
ويمثل هذا مجموع القيم الموجودة في عمود المبيعات حيث يقع التاريخ بين 07/01/2023 و26/01/2023.
يمكننا التحقق من صحة ذلك عن طريق حساب مجموع القيم في عمود المبيعات يدويًا حيث تكون القيمة المقابلة في عمود التاريخ بين 07/01/2023 و26/01/2023:
مجموع المبيعات: 3 + 7 + 6 = 16 .
وهذا يتوافق مع القيمة المحسوبة بواسطة VBA.
لاحظ أنه إذا قمت بتغيير قيم تاريخي البدء والانتهاء في الخلايا E1 و E2 على التوالي، وقمت بتشغيل الماكرو مرة أخرى، فسيتم حساب مجموع المبيعات للتواريخ الجديدة.
ملاحظة : من المفترض أن القيم الموجودة في عمود التاريخ تم تنسيقها بالفعل كتواريخ في Excel.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في VBA:
VBA: كيفية كتابة وظائف SUMIF وSUMIFS
VBA: كيفية كتابة وظائف COUNTIF وCOUNTIFS
فبا: كيفية كتابة وظائف AVERAGEIF وAVERAGEIFS