تابع sumproduct در اکسل
تابع SUMPRODUCT یکی از توابع قدرتمند و در عین حال کماستفاده در اکسل است که برای ضرب عنصربهعنصر دو یا چند آرایه و سپس جمع نتایج به کار میرود. این تابع بهویژه در محاسبات شرطی، وزندهی مقادیر، جایگزینی توابع پیچیدهٔ آرایهای و حل مسائلی که SUMIFS یا COUNTIFS بهراحتی پوشش نمیدهند، بسیار مفید است.
سینتکس و ساختار پایه
| سینتکس | توضیح |
|---|---|
| =SUMPRODUCT(array1, [array2], …) | array1، array2 و … آرایهها یا محدودههای همطول هستند. مقدار خروجی، مجموع حاصلضرب عناصر متناظر است. |
مثال ساده — ضرب و جمع دو ستون
=SUMPRODUCT(A2:A10, B2:B10)در این فرمول، هر سلول متناظر در ستون A در ستون B ضرب شده و سپس تمام نتایج جمع میشوند. کاربرد رایج: محاسبهٔ جمع کل مبلغ برای تعداد و قیمت واحد.
محاسبهٔ میانگین وزنی
=SUMPRODUCT(ValuesRange, WeightsRange) / SUM(WeightsRange)مثال: اگر مقادیر در A2:A10 و اوزان در B2:B10 باشند، فرمول بالا میانگین وزنی را محاسبه میکند. این روش دقیقتر و کوتاهتر از محاسبات دستی است.
استفاده از شروط—جایگزین COUNTIFS/SUMIFS در شرایط پیچیده
یکی از نقاط قوت SUMPRODUCT، توانایی اعمال شرطهای منطقی با عملگرهای ضرب و تبدیل بولیها به اعداد است. برای نمونه:
=SUMPRODUCT((RegionRange="West")*(StatusRange="Shipped")*(AmountRange))اینجا هر شرط یک آرایهٔ TRUE/FALSE ایجاد میکند. ضرب آرایهها مانند عمل AND عمل میکند (تنها ردیفهایی که همه شرطها TRUE باشند، در نظر گرفته میشوند). SUMPRODUCT سپس مقدار Amount را تنها برای ردیفهای مورد نظر جمع میکند.
تبدیل TRUE/FALSE به 1/0 — روشهای رایج
- ضرب مستقیم شروط: (cond1)*(cond2)
- دوبار علامت منفی: –(cond)
- تابع N: N(cond)
مثالهایی که بالا دیدیم معمولاً به صورت multiplication (ضرب) نوشته میشوند که خود باعث تبدیل TRUE/FALSE به 1/0 میشود. برخی کاربران از — برای خوانایی بهتر استفاده میکنند.
مثال عملی — محاسبهٔ فروش محصول خاص در یک منطقه
=SUMPRODUCT(--(A2:A100="ProductX"), --(B2:B100="East"), C2:C100)این فرمول مجموع ستون C را تنها برای ردیفهایی که محصول در ستون A برابر “ProductX” و منطقه در ستون B برابر “East” است، محاسبه میکند. دو علامت منفی (– ) بولیها را به 1/0 تبدیل میکنند.
کاربردهای پیشرفته و نکات تخصصی
- OR شرطها: برای اعمال OR بین شروط میتوان از جمع بولیها استفاده کرد و سپس نتیجه را با >0 مقایسه کرد. مثال: ( (A=”x”) + (B=”y”) )>0.
- جستجو با wildcard: میتوان از ISNUMBER و SEARCH یا FIND استفاده کرد: –(ISNUMBER(SEARCH(“apple”,A2:A100))).
- مقابله با سلولهای خالی یا متنی: اگر آرایهها شامل متن یا خالی باشند، SUMPRODUCT آنها را به صفر تبدیل میکند؛ اما اگر آرایههای مورد ضرب شامل اروری باشد، خروجی #VALUE! خواهد بود.
- عدم نیاز به Ctrl+Shift+Enter: برخلاف برخی فرمولهای آرایهای قدیمی، SUMPRODUCT معمولاً نیازی به وارد کردن بهصورت CSE ندارد و به طور پیشفرض آرایهها را پردازش میکند.
جایگزینها و مقایسه با SUMIFS / COUNTIFS
SUMIFS و COUNTIFS برای شرایط ساده و سرعت بالاتر در محدودههای بزرگ مناسباند، اما در موارد زیر SUMPRODUCT ارجح است:
- شرطهای OR بین ستونهای مختلف
- ترکیب شرطها با عملیات پیچیده (مثل استفاده از SEARCH یا تبدیل شرطها به ضرایب)
- محاسبهٔ میانگین وزنی یا محاسباتی که نیاز به ضرب مقادیر از دو ستون دارند
نمونهٔ کاربرد: محاسبهٔ شاخصهای سفارشی
فرض کنید بخواهید میانگین وزندهی شدهٔ نمرات را محاسبه کنید اما تنها برای درسهایی که استاد خاصی تدریس کرده و نمره بالای 50 دارند:
=SUMPRODUCT((TeacherRange="Dr. A")*(ScoreRange>50)*(ScoreRange)*(WeightRange)) / SUMPRODUCT((TeacherRange="Dr. A")*(ScoreRange>50)*(WeightRange))در این فرمول ابتدا مجموع حاصلضرب نمره و وزن برای ردیفهای مورد نظر محاسبه میشود و سپس بر مجموع اوزان همان ردیفها تقسیم میگردد تا میانگین وزنی شرطی بهدست آید.
مشکلات رایج و راهحلها
- خطای #VALUE!: اگر یکی از آرایهها شامل متن غیرمرتبط یا طول نابرابر باشد. همیشه مطمئن شوید آرایهها طول یکسان دارند.
- مشکل عملکرد در جداول بزرگ: استفاده از SUMPRODUCT روی صدها هزار ردیف میتواند کند باشد. در دادههای بزرگ، بهتر است از ستونهای کمکی یا SUMIFS (در صورت امکان) استفاده کنید.
- نیاز به تبدیل: برای رشتههایی که نیاز به جستجو دارند، از ISNUMBER+SEARCH استفاده کنید تا بهدرستی بولی تولید شود.
نمونهٔ کاربرد در گزارشدهی و داشبورد
SUMPRODUCT برای ساخت KPIهای سفارشی در داشبوردها بسیار مناسب است؛ بهخصوص وقتی محاسبات نیاز به شرطهای متعدد و ترکیبی دارد. چون نتیجه عددی مستقیم برمیگرداند، میتوان آن را در نمودارها یا سلولهای خلاصه گزارش استفاده کرد.
خلاصه و توصیههای عملی
- SUMPRODUCT ترکیبپذیری بالا و انعطاف برای شروط پیچیده دارد.
- همیشه آرایهها را همطول نگه دارید و مطمئن شوید دادههای متنی یا خطاها باعث مشکل نمیشوند.
- برای افزایش سرعت در مجموعه دادههای بزرگ، از ستونهای کمکی یا توابع تخصصیتر استفاده کنید.
- برای خوانایی، از نامگذاری محدودهها (Named Ranges) یا رفرنسهای مطلق/نسبی مناسب بهره ببرید.
با تسلط بر SUMPRODUCT میتوانید بسیاری از محاسباتی را انجام دهید که قبلاً با فرمولهای پیچیدهٔ آرایهای یا چند مرحلهای قابل پیادهسازی بودند. این تابع یک ابزار کارآمد برای تحلیل داده، گزارشسازی و حل مسائل شرطی پیشرفته در اکسل است.
آیا این مطلب برای شما مفید بود ؟




