Menu
flag Ar iconالعربيةdown icon

دالة SUMPRODUCT في الاكسل: الضرب والجمع والعد بشروط

تضرب =SUMPRODUCT(B2:B6,C2:C6) كل كمية في سعرها وتجمع النتائج. ومع شروط مثل (A2:A7="North")*C2:C7 تجمع وتعدّ حيث لا تستطيع SUMIFS: حسب الشهر، وعمود مقابل عمود، ومع OR.

كل ورقة في هذه الصفحة تفاعلية: غيّر رقمًا أو صيغة وسيُعاد الحساب.

تضرب =SUMPRODUCT(B2:B6,C2:C6) كل كمية في العمود B في السعر المجاور لها في العمود C، ثم تجمع النتائج. وتعطي إجمالي الطلب في خلية واحدة، دون عمود لإجماليات البنود.

إجمالي الطلب
F2
ABCDEF
1ItemQtyPriceLine totalTotal
2Pen4$1.50$6.00$30.70
3Notebook2$3.25$6.50$30.70
4Folder5$0.80$4.00
5Stapler1$7.90$7.90
6Marker3$2.10$6.30
انقر على خلية لترى صيغتها. غيّر رقمًا أو صيغة وستعيد الورقة الحساب.

تعرض F2 وF3 القيمة نفسها $30.70. وإجماليات البنود في العمود D موجودة فقط لتوضيح ما تفعله SUMPRODUCT: 4 × 1.50، و2 × 3.25، وهكذا، ثم SUM. غيّر كمية فيتبعها الإجماليان.

صيغة دالة SUMPRODUCT

=SUMPRODUCT(array1, [array2], [array3], ...)
  • كل مصفوفة نطاق أو عملية حسابية تنتج نطاقًا، ويجب أن تكون كلها بالحجم نفسه، وإلا تعيد SUMPRODUCT الخطأ #VALUE!.
  • مع مصفوفتين أو أكثر، تُضرب القيم الموجودة في الموضع نفسه، ثم تُجمع حواصل الضرب.
  • ومع مصفوفة واحدة فإنها تجمعها فقط، وهذا ما يجعل صيغ الشروط أدناه تعمل: في =SUMPRODUCT((A2:A7="North")*C2:C7) مصفوفة واحدة، مضروبة مسبقًا.
  • النص الممرر وسيطًا مستقلًا يُحتسب 0. أما النص داخل عملية حسابية بالرمز * فيسبب #VALUE!.

تعمل SUMPRODUCT مع المصفوفات في كل إصدارات الاكسل دون Ctrl+Shift+Enter (Cmd+Shift+Enter على Mac)، ولهذا كانت الأداة المعتادة للجمع الشرطي قبل وجود SUMIFS، وما زالت كذلك للحالات التي لا تستطيع SUMIFS التعامل معها.

SUMPRODUCT مع الشروط

المقارنة على نطاق، A2:A7="North"، تعيد TRUE أو FALSE واحدة لكل صف. والضرب فيها يُبقي الصفوف التي تكون فيها TRUE (×1) ويصفّر الأخرى (×0). اضرب مقارنتين معًا لمنطق AND.

الجمع والعد بشروط
F2
ABCDEF
1RegionProductSalesFormulaResult
2NorthApple120North sales230
3SouthPear45North Apple sales150
4NorthPear80Count North3
5EastApple55Count over 504
6SouthApple200Without --0
7NorthApple30
انقر على خلية لترى صيغتها. غيّر رقمًا أو صيغة وستعيد الورقة الحساب.

تجمع F2 صفوف North الثلاثة: 230. وتضرب F3 شرطين، لذا لا يُحتسب الصف إلا عندما يتحقق الاثنان: 150. وللعد بدلًا من الجمع، احذف القيم وحوّل TRUE/FALSE إلى أرقام بالرمز -- (علامتا طرح): تعدّ F4 ثلاثة صفوف North. وتوضح F6 أهمية --: لا تجمع SUMPRODUCT قيم TRUE، لذا تعيد الصيغة دونها 0.

تعطي الصيغ الأربع الأولى النتائج نفسها التي تعطيها SUMIF وSUMIFS وCOUNTIF. والقسم التالي هو حيث تثبت SUMPRODUCT جدارتها.

شروط لا تستطيع SUMIFS التعبير عنها

تقارن SUMIFS عمودًا بشرط ثابت. ولا تستطيع أخذ شهر التاريخ، ولا مقارنة عمودين أحدهما بالآخر، ولا ضرب الكمية في السعر قبل الجمع. أما SUMPRODUCT فتستطيع، لأن كل شرط فيها عملية حسابية عادية.

ما بعد SUMIFS
G2
ABCDEFG
1RegionDateTargetActualFormulaResult
2North2026-01-05100120February sales135
3South2026-01-126045Rows over target3
4North2026-02-039080North or East sales285
5East2026-02-185055Above target by75
6South2026-03-02150200
7North2026-03-204030
انقر على خلية لترى صيغتها. غيّر رقمًا أو صيغة وستعيد الورقة الحساب.
  • تأخذ G2 الشهر (MONTH) من كل تاريخ وتُبقي صفوف فبراير: 80 + 55 = 135. وهذا يجمع فبراير من أي سنة؛ أضف *(YEAR(B2:B7)=2026) لسنة واحدة فقط.
  • تقارن G3 عمودين صفًا بصف وتعدّ الصفوف التي يتفوق فيها Actual على Target.
  • G4 منطق OR: جمع شرطين يعطي 1 عندما يتحقق أحدهما (و2 عندما يتحققان معًا، ولهذا وُضع >0). North أو East: 285.
  • تجمع G5 مقدار تجاوز كل صف لهدفه، للصفوف التي تجاوزته فقط.

SUMPRODUCT للإجماليات والمتوسطات المرجحة

الكمية مضروبة في السعر إجمالي مرجّح، ويمكن إضافة شروط إليه. والفكرة نفسها مقسومة على مجموع الأوزان تعطي متوسطًا مرجحًا: الصيغة =SUMPRODUCT(B2:B6,C2:C6)/SUM(B2:B6) هي متوسط سعر القطعة المباعة.

الإيرادات حسب المنطقة
G2
ABCDEFG
1RegionProductQtyPriceFormulaResult
2NorthApple10$1.20North revenue$31.00
3SouthPear4$1.50All revenue$61.00
4NorthPear6$1.50Average price per item$1.36
5EastApple8$1.20
6SouthApple12$1.20
7NorthPlum5$2.00
انقر على خلية لترى صيغتها. غيّر رقمًا أو صيغة وستعيد الورقة الحساب.

باعت North عشر تفاحات بسعر 1.20،وستحباتكمثرىبسعر1.20، وست حبات كمثرى بسعر 1.50، وخمس حبات برقوق بسعر 2.00،لذاتعرضG2القيمة2.00، لذا تعرض G2 القيمة 31.00. والمتوسط البسيط للأسعار سيعامل البرقوق كأنه يُباع بقدر ما يُباع التفاح؛ أما G4 فترجّح كل سعر بكميته.

تمرين: الإيرادات بشرط

دورك: إيرادات South
G2
ABCDEFG
1RegionProductQtyPriceFormulaResult
2NorthApple10$1.20South revenue
3SouthPear4$1.50
4NorthPear6$1.50
5EastApple8$1.20
6SouthApple12$1.20
7NorthPlum5$2.00
انقر على خلية لترى صيغتها. غيّر رقمًا أو صيغة وستعيد الورقة الحساب.

دورك: احسب إيرادات South: الكمية مضروبة في السعر، لصفوف South فقط. اكتب الصيغة في G2.

SUMPRODUCT مقابل SUMIFS، وخطآها

الشرطSUMIFSSUMPRODUCT
العمود يساوي قيمة=SUMIFS(C2:C7,A2:A7,"North")=SUMPRODUCT((A2:A7="North")*C2:C7)
يحتوي على نص=SUMIFS(C2:C7,B2:B7,"*app*")=SUMPRODUCT(ISNUMBER(SEARCH("app",B2:B7))*C2:C7)
شهر التاريخغير ممكن مباشرة=SUMPRODUCT((MONTH(B2:B7)=2)*D2:D7)
عمود مقابل عمودغير ممكن=SUMPRODUCT(--(D2:D7>C2:C7))
الكمية × السعرغير ممكن=SUMPRODUCT(C2:C7,D2:D7)

فضّل SUMIFS كلما استطاعت أداء المهمة. فهي أوضح قراءة، وأسرع على عشرات الآلاف من الصفوف، وتقبل الأعمدة الكاملة. أما =SUMPRODUCT((A:A="North")*C:C) فتضرب أكثر من مليون صف وتعيد #VALUE! بمجرد وصولها إلى نص العنوان في C1، لذا أعطِ SUMPRODUCT نطاقات محددة مثل A2:A500.

الخطآن اللذان ستصادفهما:

  • #VALUE! بسبب نطاقات بأحجام مختلفة. تفشل =SUMPRODUCT(B2:B6,C2:C7). يجب أن يغطي كل نطاق الصفوف نفسها.
  • #VALUE! بسبب نص في نطاق مضروب. عنوان أو "n/a" داخل C2:C7 يعطّل (A2:A7="North")*C2:C7، لأن النص لا يُضرب. ابدأ النطاق تحت العنوان، أو مرّر القيم وسيطًا منفصلًا: تعامل =SUMPRODUCT(--(A2:A7="North"),C2:C7) النص في C على أنه 0.

الأسئلة الشائعة

ماذا تفعل SUMPRODUCT في الاكسل؟

تضرب النطاقات صفًا بصف وتجمع حواصل الضرب. فالصيغة =SUMPRODUCT(B2:B6,C2:C6) تساوي B2C2 + B3C3 + ... + B6*C6، مثل الكمية مضروبة في السعر ومجموعة في إجمالي طلب.

كيف أستخدم SUMPRODUCT مع شرط؟

اضرب في مقارنة: تجمع =SUMPRODUCT((A2:A7="North")*C2:C7) النطاق C2:C7 لصفوف North. تعطي المقارنة TRUE أو FALSE، وتصبحان 1 أو 0 عند الضرب.

ماذا تعني -- في SUMPRODUCT؟

هي علامتا طرح، تحوّلان TRUE وFALSE إلى 1 و0. تعدّ =SUMPRODUCT(--(C2:C7>50)) القيم الأكبر من 50. ودونهما، تعامل SUMPRODUCT القيمتين TRUE/FALSE على أنهما 0 وتعيد 0.

هل أستخدم SUMPRODUCT أم SUMIFS؟

استخدم SUMIFS عندما تستطيع شروطها التعبير عن الشرط: فهي أسهل قراءة وأسرع على النطاقات الكبيرة. واستخدم SUMPRODUCT عندما يحتاج الشرط إلى عملية حسابية، مثل شهر التاريخ، أو مقارنة عمود بآخر، أو الكمية مضروبة في السعر.

لماذا تعيد SUMPRODUCT الخطأ #VALUE!؟

لأن النطاقات بأحجام مختلفة (B2:B6 مع C2:C7)، أو لأن نطاقًا مضروبًا بالرمز * يحتوي على نص. اجعل كل النطاقات بالحجم نفسه، ومرّر النطاقات التي فيها نص وسائط منفصلة، فهذا يعامل النص على أنه 0.

رسم توضيحي للغات البرمجة في Coddy

تعلّم البرمجة مع Coddy

ابدأ الآن