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

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *