في هذه المقالة سيتم التطرق لشرح كيفية استعمال الدالة SOMMEPROD والتي تعتبر من الدوال المهمة في الإكسيل.
ترجع الدالة SOMMEPROD مجموع نطاقات القيم مضروبة فيما بينها ، سطراً بسطر
يستخدم :
=SOMMEPROD(plage_1)
أو
=SOMMEPROD(plage_1; plage_2)
أو
=SOMMEPROD(plage_1; plage_2; plage_3; etc)
مثال على استخدام SOMMEPROD
لفهم
كيفية عمل SOMMEPROD بشكل أفضل وما يتوافق مع تعريفه
لـ "مجموع المنتجات" ، إليك مثال بسيط للبدء:
في
هذا الجدول الأول ، يتم الحصول على إجمالي التكاليف في العمود D بضرب القيم الموجودة في العمودين B و C باستخدام الصيغة =B2*C2ويكون
الإجمالي هو ببساطة مجموع هذه المنتجات المختلفة =SOMME(D2:D11).
الهدف
الآن هو حساب مجموع هذه المنتجات المختلفة مباشرةً (بدون عمود "التكلفة
الإجمالية"):
للقيام
بذلك ، أدخل الدالة SOMMEPROD ثم أضف نطاقي الخلايا
التي تحتوي على البيانات المراد ضربها بينهما (صف بصف) والتي تحسب المجموع:
=SOMMEPROD(B2:B11;C2:C11)ترجع الصيغة هنا
نفس الإجمالي كما في المثال الأول:
لاحظ
أنه يمكن الحصول على نفس النتيجة باستخدام الصيغة =SOMMEPROD((B2:B11)*(C2:C11)):
في
هذه الحالة ، (B2:B11)*(C2:C11)يتم
حساب ناتج النطاقين وإعادته في شكل نطاق واحد تقوم دالة SUMPRODUCT الخاصة به بإرجاع المجموع.
SOMMEPROD بشرط
لإجراء
نفس الحساب ولكن فقط للعناصر التي تحتوي على كمية أكبر من 100 ، انسخ الصيغة
الأخيرة للبدء وأضف الشرط إليها >100.
تصبح
الصيغة بعد ذلك =SOMMEPROD((B2:B11>100)*(C2:C11)):
لا تُرجع هذه الصيغة النتيجة المتوقعة لأنها (B2:B11>100)لا تحتوي على أي كمية ، بل على العكس من ذلك ، فهي عبارة عن نطاق يُرجع 1 (TRUE) أو 0 (FALSE) اعتمادًا على الاختبار >100.
في
هذه الحالة ، يجب إذن إضافة الشرط بالإضافة إلى النطاقين الآخرين:
=SOMMEPROD((B2:B11)*(C2:C11)*(B2:B11>100))
هنا
، يتم ضرب الكمية بالتكلفة لكل وحدة ثم ب 0 أو 1 اعتمادًا على الاختبار (المنتجات
التي لا ينبغي أخذها في الاعتبار سيتم ضربها ب 0 وبالتالي لن تعدل المجموع).
هذه
المرة ، أعادت الدالة SOMMEPROD مجموع المنتجات ، مع
مراعاة الحالة:
SOMMEPROD مع عدة شروط
لتبسيط
الصيغة قليلاً (قبل جعلها أكثر تعقيدًا) ، يجب أن تعيد الدالة SOMMEPROD هنا مجموع نقاط اللاعبين مع
النتيجة >100.
الصيغة
إذن هي =SOMMEPROD((C2:C11)*(B2:B11>100)):
الآن
لجمع النقاط التي تكون نتيجتها >100أو <20تصبح الصيغة:
=SOMMEPROD((C2:C11)*((B2:B11>100)+(B2:B11<20)))
لفهم
أفضل ((B2:B11>100)+(B2:B11<20))، تذكر أن الاختبار يُرجع 0 أو 1.
في
هذه الحالة ، تتم إضافة النطاقات معًا للحصول على النطاق ((B2:B11>100)+(B2:B11<20))الذي
ينتج عن إضافة 0 و 1 من النطاقين:
إذا
كنا الآن عكس الظروف لتلخيص النقاط التي هي نتيجة <=100و >20، فإنه لن يكون كافيا لعكس الاختبارات.
=SOMMEPROD((C2:C11)*((B2:B11<=100)+(B2:B11>=20)))لن تقوم
الصيغة بإرجاع النتيجة المتوقعة:
لكي
يعمل هذا ، يجب عليك إضافة شرط إلى النطاق ((B2:B11<=100)+(B2:B11>=20))للاحتفاظ
فقط بأولئك الذين قاموا بالتحقق من صحة الاختبارين (وبالتالي هؤلاء =2).
وبالتالي
تصبح الصيغة =SOMMEPROD((C2:C11)*(((B2:B11<=100)+(B2:B11>=20))=2)):