تضرب =SUMPRODUCT(B2:B6,C2:C6) كل كمية في العمود B في السعر المجاور لها في العمود C، ثم تجمع النتائج. وتعطي إجمالي الطلب في خلية واحدة، دون عمود لإجماليات البنود.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Item | Qty | Price | Line total | Total | |
| 2 | Pen | 4 | $1.50 | $6.00 | $30.70 | |
| 3 | Notebook | 2 | $3.25 | $6.50 | $30.70 | |
| 4 | Folder | 5 | $0.80 | $4.00 | ||
| 5 | Stapler | 1 | $7.90 | $7.90 | ||
| 6 | Marker | 3 | $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.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Region | Product | Sales | Formula | Result | |
| 2 | North | Apple | 120 | North sales | 230 | |
| 3 | South | Pear | 45 | North Apple sales | 150 | |
| 4 | North | Pear | 80 | Count North | 3 | |
| 5 | East | Apple | 55 | Count over 50 | 4 | |
| 6 | South | Apple | 200 | Without -- | 0 | |
| 7 | North | Apple | 30 |
تجمع F2 صفوف North الثلاثة: 230. وتضرب F3 شرطين، لذا لا يُحتسب الصف إلا عندما يتحقق الاثنان: 150. وللعد بدلًا من الجمع، احذف القيم وحوّل TRUE/FALSE إلى أرقام بالرمز -- (علامتا طرح): تعدّ F4 ثلاثة صفوف North. وتوضح F6 أهمية --: لا تجمع SUMPRODUCT قيم TRUE، لذا تعيد الصيغة دونها 0.
تعطي الصيغ الأربع الأولى النتائج نفسها التي تعطيها SUMIF وSUMIFS وCOUNTIF. والقسم التالي هو حيث تثبت SUMPRODUCT جدارتها.
شروط لا تستطيع SUMIFS التعبير عنها
تقارن SUMIFS عمودًا بشرط ثابت. ولا تستطيع أخذ شهر التاريخ، ولا مقارنة عمودين أحدهما بالآخر، ولا ضرب الكمية في السعر قبل الجمع. أما SUMPRODUCT فتستطيع، لأن كل شرط فيها عملية حسابية عادية.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Region | Date | Target | Actual | Formula | Result | |
| 2 | North | 2026-01-05 | 100 | 120 | February sales | 135 | |
| 3 | South | 2026-01-12 | 60 | 45 | Rows over target | 3 | |
| 4 | North | 2026-02-03 | 90 | 80 | North or East sales | 285 | |
| 5 | East | 2026-02-18 | 50 | 55 | Above target by | 75 | |
| 6 | South | 2026-03-02 | 150 | 200 | |||
| 7 | North | 2026-03-20 | 40 | 30 |
- تأخذ 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) هي متوسط سعر القطعة المباعة.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Region | Product | Qty | Price | Formula | Result | |
| 2 | North | Apple | 10 | $1.20 | North revenue | $31.00 | |
| 3 | South | Pear | 4 | $1.50 | All revenue | $61.00 | |
| 4 | North | Pear | 6 | $1.50 | Average price per item | $1.36 | |
| 5 | East | Apple | 8 | $1.20 | |||
| 6 | South | Apple | 12 | $1.20 | |||
| 7 | North | Plum | 5 | $2.00 |
باعت North عشر تفاحات بسعر 1.50، وخمس حبات برقوق بسعر 31.00. والمتوسط البسيط للأسعار سيعامل البرقوق كأنه يُباع بقدر ما يُباع التفاح؛ أما G4 فترجّح كل سعر بكميته.
تمرين: الإيرادات بشرط
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Region | Product | Qty | Price | Formula | Result | |
| 2 | North | Apple | 10 | $1.20 | South revenue | ||
| 3 | South | Pear | 4 | $1.50 | |||
| 4 | North | Pear | 6 | $1.50 | |||
| 5 | East | Apple | 8 | $1.20 | |||
| 6 | South | Apple | 12 | $1.20 | |||
| 7 | North | Plum | 5 | $2.00 |
دورك: احسب إيرادات South: الكمية مضروبة في السعر، لصفوف South فقط. اكتب الصيغة في G2.
SUMPRODUCT مقابل SUMIFS، وخطآها
| الشرط | SUMIFS | SUMPRODUCT |
|---|---|---|
| العمود يساوي قيمة | =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.