تابع جمع قدرت‌مند اکسل Sumproduct

تابع SUMPRODUCT مجموع حاصل‌ضرب‌های محدوده‌ها یا آرایه‌های متناظر را برمی‌گرداند. عملیات پیش‌فرض این تابع، ضرب است، اما امکان انجام عملیات‌های جمع، تفریق و تقسیم نیز وجود دارد.(تعریف از سایت ماکروسافت). وقتی برای نخستین بار این تعریف را می‌شنوید، ممکن است SUMPRODUCT به نظرتان یک فرمول بی‌فایده بیاید که فقط یک جمع ساده از حاصل‌ضرب‌ها را انجام می‌دهد. اما این تعریف حتی بخش کوچکی از قابلیت‌های واقعی تابع SUMPRODUCT در اکسل را نشان نمی‌دهد. در واقع، SUMPRODUCT یک تابع فوق‌العاده همه‌کاره با کاربردهای بسیار است. به دلیل توانایی منحصر به فرد آن، این تابع بسیار مفید و حتی ضروری است، به‌ویژه زمانی که قرار است داده‌ها را در دو یا چند محدوده مقایسه کنید یا محاسباتی با معیارهای چندگانه انجام دهید. مثال‌های زیر قدرت واقعی SUMPRODUCT را آشکار می‌کنند. در این آموزش با چندین مثال فرمولی مواجه خواهید شد که به مقایسه‌ی آرایه‌ها، جمع‌بندی و شمارش شرطی سلول‌ها با معیارهای چندگانه، محاسبه‌ی میانگین وزنی، جدول مالیاتی و محاسبه مالیات حقوق و موارد بیشتر می‌پردازند.


=SUMPRODUCT((B1:B10 > 100000) * A1:A10)

نخست ساختار فرمول:

SUMPRODUCT(array1, [array2], [array3], ...)
  • array1: اولین آرایه یا محدوده‌ای که می‌خواهید در محاسبات شرکت داده شود.
  • array2 و array3 و ... : آرایه‌ها یا محدوده‌های اضافی که می‌خواهید در محاسبات شرکت داده شوند(اختیاری).

کار اصلی تابع SUMPRODUCT ضرب عناصر متناظر در آرایه‌ها و سپس بازگرداندن مجموع آن‌هاست. به عنوان مثال، اگر دو آرایه A1:A3 و B1:B3 داشته باشید، تابع به این صورت عمل می‌کند:

SUMPRODUCT(A1:A3, B1:B3) = (A1 * B1) + (A2 * B2) + (A3 * B3)

پیش از ادامه فرض کنید داده‌ها بصورت عکس زیر می‌باشد ک9 در ستون A تعداد و در ستون B قیمت محصول قرار دارد.

مثال 1: فرض کنید در ستون A تعداد و در ستون B قیمت محصول قرار دارد آنگاه:

=SUMPRODUCT(A1:A3, B1:B3)

محموع کل فروش 3 قلم از محصولات را نشان می‌دهد. یعنی:

SUMPRODUCT(A1:A3, B1:B3)=27500000

مثال 2: شما می‌توانید از SUMPRODUCT برای اعمال شرط نیز استفاده کنید. برای نمونه، اگر بخواهید تعداد فروش محصولاتی که قیمت آن‌ها بیشتر از 100000تومان است را محاسبه کنید:

=SUMPRODUCT((B1:B3 > 100000) * A1:A3)

نخست باید گفت که (B1:B3 > 100000) به چه معناست، نتیجه آن، یک آرایه می‌باشد که هر سلول آن true یا false است، که true=1 و false=0 می‌باشد. در واقع خروجی آن بصورت زیر است.

(B1:B3 > 100000) = { (B1>100000)=true, (B2>100000)=false , (B3>100000)=true } = { true,false,true } = { 1, 0, 1 }
SUMPRODUCT({1,0,1}*A1:A3)=1*A1+ 0*A2+ 1*A3 = 250

مثال 3: یکی از کاربردهای این تابع در محاسبه میانگین وزنی می‌باشد.

=SUMPRODUCT(A1:A3, B1:B3) / SUM(B1:B3)

مثال 4: یکی دیگر از کاربردهای این تابع شمارش شرطی می‌باشد، فرض کنید میخواهید بدانید جند محصول با فروش بیش از 100 عدد داشته‌اید.

=SUMPRODUCT(--(A1:A3 > 100))

چون تنها یک محصول 150 تا فروش داشته که این عدد بیش از 100 میباشد لذا نتیجه تابع بالا 1 خواهد بود.

مثال 5: محاسبه مالیاتی حقوق، یکی از کاربردهای خیلی جالب و زیبای این تابع محاسبه مالیات حقوق می‌باشد، برای این منظور نخست باید جدول مالیاتی را وارد اکسل نماییم، جدول مالیاتی سال 1403 به صورت زیر می‌باشد:

مالیات ثابتنرخ مالیاتیحداکثرحداقل
00120,000,0000
010165,000,000120,000,001
4,500,00015270,000,000165,000,001
20,250,00020400,000,000270,000,001
46,250,00030999,999,999,999400,000,001
 
مطابق این جدول کسی که کمتر یا مساوی با 12 میلیون تومان می‌گیرد معاف از مالیات است و کسی که مثلا 15 میلیون تومان می‌گیرد تا 12میلیون آن معاف از مالیات بوده و مازاد بر آن که می‌شود 3 میلیون تومان 10 درصد مالیات دارد، که می‌شود 300هزار تومان، پس مالیات برای فردی با حقوق 15 میلیون تومان می‌شود 300هزارتومان. این بحث فقط برای آشنایی شما با این جدول بود(با دانلود فایل پیوست می‌توانید ببینید ستون مالیات ثابت چگونه محاسبه شده‌است)
جدول مالیاتی و محاسبه حقوق در فایل پیوست به صورت عکس زیر است.(مبالغ همه به ریال و نرخ مالیاتی به درصد می‌باشد)
در سطر M2(سبز رنگ) مبلغ ماهیانه درآمد نوشته می‌شود در سلول M6 فرمول زیر قرار داده شده:
=SUMPRODUCT((K2:K6<M2)*(J2:J6>M2)*(M2-K2:K6)*(I2:I6/100))+SUMPRODUCT((K2:K6<M2)*(J2:J6>M2)*(H2:H6))

حال به تفسیر هر بخش می‌پردازم:

(K2:K6<M2)={1,1,1,0,0}

در اینجا مبلغ حقوق(20میلیون تومان) با ستون حداقل مقایسه شده و حقوق ماهانه از سه سلول این ستون بزرگتر بوده(سه سلول مقدار 1) و از دو سلول بعدی کوچکتر می‌باشد(دو سلول مقدار 0).

(J2:J6>M2)={1,1,0,0,0}

در اینجا مبلغ حقوق(20میلیون تومان) با ستون حداکثر مقایسه شده و مبلغ حقوق از دو سلول این ستون بزرگتر بوده و از سه سلول بعدی کوچکتر می‌باشد.

(M2-K2:K6)={200000000-0;20000000-12000001;20000000-16500001;20000000-27000001;20000000-40000001}=
{200,000,000;
  79,999,999;
  34,999,999;
 -70,000,000;
 200,000,001}

در اینجا مبلغ حقوق را از تک تک مقادیر ستون حداقل کم می‌کند(لذا برخی اعداد مثبت و برخی منفی شده‌اند، من برای فهم بیشتر مبالغ را زیر هم نوشتم و سه رقم سه رقم هم جدا کردم و برای جلوگیری از خطا در برخی جاها از ; بجای , استفاده کرده‌ام تا با جدا کننده سه رقم سه رقم تداخل نکند)

(I2:I6/100)={0/100,10/100,15/100,20/100,30/100}=(0,0.1,0.15,0,2,0.3}

حال همه را در هم ضرب می‌کنیم(برای فهم بهتر مطلب من دو به دو در هم ضرب کرده و نتیجه را در سطر بعدی در عنصر بعدی ضرب کرده‌ام تا به آخر):

{1,1,1,0,0}*{1,1,0,0,0}={1,1,0,0,0}

{1,1,0,0,0}*{200000000,79999999,34999999,-70000001,200000001}={200000000,79999999,0,0,0}

{200000000,79999999,0,0,0}*{0,0.1,0.15,0,2,0.3}={0,79,999,999*0.1,0,0,0}={0,7,999,999,0,0,0}

پس نتیجه نهایی مجموعه {0;7,999,999;0;0;0} می‌باشد(برای جلوگیری از اشتباه در اینجا به جای , از ; استفاده کرده ام تا با جدا کننده سه رقم سه رقم تداخل نکند).

حال 

SUMPRODUCT((K2:K6<M2)*(J2:J6>M2)*(H2:H6))={0;4,500,000;0;0;0}

محاسبه آن با شما، در نهایت داریم:

{0,7,999,999,0,0,0}+{0;4,500,000;0;0;0}=7,999,999+4,500,000=9,749,999≈9,750,000

 


فایلهای مطلب

کپی
لینک اشتراک گذاری

  • 171
  • 0