4.5/5 - (76 امتیاز)
در این مطلب به توضیح تابع sumif در اکسل، کاربردها و مثال ها میپردازیم. مثال هایی از این تابع و در زمینه متن، عدد و کاراکترهای  wildcard ارائه خواهیم کرد.

در صورتی که میخواهید به صورت مشروط در اکسل چند عدد را جمع کنید، می بایست از تابع Sumif استفاده کنید.در این مطلب ترکیب و کاربرد این تابع را توضیح خواهیم داد و سپس با ارائه مثال هایی در این زمینه درک عمیقتری از این مسئله ایجاد خواهیم کرد.

خوشبختانه تابع sumif در تمام ورژن های اکسل از 2003 تا 2016  به صورت یکسانی وجود دارد. خبر خوب دیگر این است که وقتی تابع sumif را آموختید ، برای یادگیری دیگر توابع از این قبیل مثل، sumifs،countif،countifs،avarageif و غیره مشکلی نخواهید داشت.

فهرست مطالب

فیلم آموزشی تابع sumif و جمع شرطی در اکسل

اگر از افرادی هستید که با دیدن فیلم آموزشی مطالب را بهتر درک میکنید، قبل از مطالعه ادامه مطلب، می توانید با دیدن این فیلم آموزشی به صورت کامل با تابع آشنا شوید. پس از مشاهده فیلم در ادامه مطلب با مثال های مختلف دانش و مهارت خود را افزایش دهید.

شما میتوانید با استفاده از ابزارهای اکسل و کمی خلاقیت توابعی را بنویسید که کاربر قادر باشد با انتخاب چند گزینه ساده پارامترهای تابع را تغییر دهد. در واقع شما به این روش یک فرمول پویا ایجاد میکنید که کاربری که هیچ اطلاعی در زمینه فرمول نویسی ندارد بتواند به سادگی فرمول های پیشرفته ای بنوسید.

شرط های داینامیک در تابع Sumif نیز که در این قسمت مطرح کرده ایم یکی از همین فرمول هاست. برای درک کامل این موضوع فیلم آموزشی این قسمت از دوره فرمول نویسی پیشرفته را به دقت مشاهده کنید.

دانلود اکسل ارائه شده در این قسمت:

sumif.xlsx

برای مشاهده مطلب ” ترکیب آرایه ای Sum و if در اکسل ” را مشاهده کنید. 

تابع SUMIF در اکسل، ترکیب و کاربرد تابع

تابع SUMIF که به تابع مجموع شرطی نیز مشهور است، برای جمع زدن مقادیر مختلف که دارای یک شرط یا معیار خاص هستند به کار میرود.

در صورتی که مطلب مربوط به COUNtIF را در این سایت مطالعه کرده باشید، در یادگیری این تابع مشکلی نخواهید داشت زیرا ترکیب و کاربرد این دو تابع مشابه همدیگر هستند. ترکیب تابع SUMIF به شکل زیر است:

=SUMIF(range, criteria, [sum_range])

همانطور که مشاهده میکنید این تابع سه پارامتر دارد، دو پارامتر اول ضروری هستند و سومی اختیاری است.

  1. RANGE: محدوده سلولهایی که می بایست در مورد شرط مورد ارزیابی قرار گیرند. برای مثال A1:A10
  2. CRITERIA: شرطی که می بایست وجود داشته باشد. این شرط میتواند به صورت اعداد، متن، عبارت منطقی، یا دیگر توابع اکسل بیان شود. برای مثال شما ممکن است شرط هایی مثل ، “گیلاس” ، “5”,”10/2/2014″,”<5″ یا غیره را وارد کنید.

نکته:

در نظر داشته باشید که هر شرطی که به صورت TEXT یا عبارت های ریاضی باشد می بایست حتماً در بین “” قرار گیرد. اما در مورد شرط های عددی این مورد ضروری نیست.

  1. SUM RANGE: سلول هایی که در صورت وجود شرط می بایست با هم جمع شوند. این مورد اختیاری است و در صورتی که بخواهید به جز سلول های وارد شده در RANGE سلول های دیگری را نیز بیافزایید میتوانید از این قسمت نیز استفاده کنید.

برای درک بهتر ترکیب تابع SUMIF مثال زیر را در نظر بگیرید. فرض کنید لیست محصولاتی را در ستون A دارید و مقادیر مربوط به آن در ستون C قرار دارد و شما میخواهید مقادیر مربوط به موز را مورد محاسبه قرار دهید.

حال به تعریف پارامترهای مربوط به فرمول خود میپردازیم:

Range- A2:A8

Criteria- “موز”

Sum range- C2:C8

 با کنار هم قرار دادن این پارامترها فرمول به شکل زیر میشود:

=SUMIF(A2:A8,"موز",C2:C8)

این مثال ساده ترین شکل استفاده از تابع SUMIF را به بهمراه شرط  از نوع TEXT نشان میدهد. میتوانید به جای TEXT(متن) از اعداد، تاریخ، آدرس سلول و غیره استفاده کنید. برای مثال میتوانید با جایگزین کردن آدرس محصول به جای اسم آن فرمول خود را به اینگونه بنویسید:

=SUMIF(A2:A8,F1,C2:C8)

توجه: پارامتر SUM RANGE فقط سلول بالا سمت چپ محدوده ای که می بایست جمع شود را، مشخص میکند و مابقی محدوده توسط ابعاد پارامتر RANGE تعریف میشود.

این موضوع در عمل به این معنی است که پارامتر SUM RANGE حتماً نباید به اندازه پارامتر RANGE  باشد، به این معنی که این پارامتر میتواند ردیف و ستون های متفاوتی با پارامتر RANGE داشته باشد. به هر حال، اولین سلول(بالا سمت چپ) SUM RANGE می بایست سلول سمت راست باشد.برای مثال در فرمول SUMIF بالا، میتوانید C2 یا C2:C4 یا حتی C2:C100 را بعنوان محدوده SUM RANGE خود مشخص کنید و نتایج هم هیچ تغییری نخواهد کرد.

نکته اینجاست که اکسل نمیتواند بر توانایی کاربر برای هم اندازه کردن RANGE و SUM RANGE تکیه کند. بنابراین برای به وجود نیامدن خطاهای احتمالی، اکسل محدوده SUM RANGE را خودش به شیوه زیر در نظر میگیرد. سلول سمت چپ و بالا را در Sum range بعنوان اولین سلول در نظر میگیرد(سلول c2 در مثال بالا)، و سپس به اندازه مقدار مشخص شده در range ردیف و ستون در نظر میگیرد.( در مثال بالا، 1 ستون و 7 ردیف، که میشود C2:C8)

نحوه استفاده از تابع SUMIF در اکسل – مثال های فرمولی

امیدواریم که مثال بالا در فهم شیوه کار تابع SUMIF کمک کرده باشد. در زیر نمونه هایی از فرمول SUMIF با شرط های مختلف و محدوده های متفاوت داده ارائه شده است.

  • بدست آوردن مجموع به شرط بزرگتر، کوچکتر، یا مساوی بودن اعداد

در زیر فرمول هایی آمده است که میتوانید با استفاده از آن مقادیر، بزرگتر، کوچکتر با مساوی یک مقدار مشخص را جمع کنید:

توجه: لطفا به یاد داشته باشید که در فرمول های اکسل، عملگر مقایسه ای که قبل از عدد قرار میگیرد می بایست درون (“”) قرار داشته باشد.

شرط عملگر مثال فرمولی توصیف
مجموع به شرط بزرگتر بودن از

>

=SUMIF(A2:A10,">5")
مقادیر بیش از 5 را در سلول های A2:A10 جمع می زند.
مجموع به شرط کوچکتر بودن از

<

=SUMIF(A2:A10,"<10")
مقادیر سلول های B2:B10 جمع می زند به شرطی که مقدار متناظر آن در ستون A کوچکتر از 10 باشد.
مجموع به شرط مساوی بودن با

=(میتواند حذف شود)

=SUMIF(A2:A10,"="&D1)

یا

=SUMIF(A2:A10,D1)
مقادیر مساوی با مقدار سلول D1 را در سلول های A2:A10 جمع می زند.
مجموع به شرط عدم تساوی با

<>

=SUMIF(A2:A10,"<>"&D1,B2:B10)
مقادیر سلول های B1:B10 را به شرطی که مقدار متناظر با آنها در ستون A با سلول D1 برابر نباشد جمه میزند.
مجموع به شرط بزرگتر یا مساوی بودن با

>=

=SUMIF(A2:A10,">=5")
مقادیر بیشتر و مساوی با 5 را در محدوده A2:A10 جمع میزند.
مجموع به شرط کوچکتر یا مساوی بودن با

<=

=SUMIF(A2:A10,"<=10",B2:B10)
مقادیر موجود در محدوده B2:B10 را به شرط اینکه مقدار متناظر آنها در ستون A کوچکتر مساوی 10 باشد با هم جمع میکند.

نحوه استفاده از تابع SUMIF با شرط TEXT(رشته متنی)

علاوه بر عدد، در صورتی که شرط شما به شکل رشته های متنی نیز باشد، میتوانید از تابع SUMIF استفاده کنید.

لطفا توجه داشته باشید همینطور که در جدول زیر توضیح داده شده،  برای مطابقت دقیق(EXACT MATCH) و مطابقت جزئی(PARTIAL MATCH) به فرمول های متفاوتی نیاز خواهید داشت.

شرط مثال فرمولی توصیف
SUMIF EQUAL TO

EXACT MATCH:

=SUMIF(A2:A8,"BANANAS",C2:C8)
مقادیر موجود در سلول های C2:C8 را جمع میکند به شرطی که مقدار متناظر با آنها در ستون A دقیقا شامل کلمه “BANANAS” باشد و نه هیچ کاراکتر یا کلمه دیگری.مقادیری مثل “BANANA YELLOW”، “GREEN BANANAS” یا “BANANAS!” در نظر گرفته نخواهد شد.

PARTIAL MATCH:

=SUMIF(A2:A8,"*BANANAS*",C2:C8)
مقادیر موجود در سلول های C2:C8 را جمع میکند به شرطی که مقدار متناظر با آنها در ستون A  شامل کلمه “BANANAS” باشد خواه به صورت تنها یا به صورت ترکیب با سایر کلمات. سلول های شامل “GREEN BANANAS” یا “BANANAS GREEN” در نظر گرفته میشود.
SUMIF NOT EQUAL TO

EXACT MATCH:

=SUMIF(A2:A8,"<>BANANAS",C2:C8)
مقادیر موجود در سلول های C2تا C8 را جمع میزند به شرط اینکه سلول های ستون A حاوی هر کلمه ای به جز “BANANAS” باشد. در صورتی که سلولی حاوی کلماتی مثل “YELLOW BANANAS” یا “BANANAS YELLOW” باشد نیز در نظر گرفته میشود.

PARTIAL MATCH:

=SUMIF(A2:A8,"<>*BANANAS*",C2:C8)
مقادیر موجود در سلول های C2تا C8 را جمع میزند به شرط اینکه سلول های ستون A حاوی کلمه “BANANAS” نباشد چه به صورت تنها و چه به صورت ترکیب با سایر کلمه ها. سلول های که شامل “BANANAS YELLOW” یا “YELLOW BANANAS” بشوند نیز در نظر گرفته نمی شوند.

برای اطلاعات بیشتر در مورد مطابقت جزئی میتوانید به قسمت “مثال های SUMIF با کاراکترهای WILDCART” در همین مقاله مراجعه کنید.

حال به مثالی در مورد “SUMIF به شرط عدم تساوی” به  صورت عملی میپردازیم؛ همانطور که در تصویر می بینید،این فرمول  مقادیر تمام محصولات انبار شده را به جز “GOLDFINGER BANANAS” با هم جمع میکند.

=SUMIF(A2:A7,"<> گیلاس",C2:C7)

نکته: مثل بسیاری از دیگر توابع در اکسل،SUMIF، نسبت به حروف بزرگ و کوچک حساسیت ندارد. و در نتیجه”BANANAS” ،”bananas” ،”Bananas” ، نتایج یکسانی بدست خواهد داد.

استفاده از عملگرهای مقایسه ای با آدرس سلول

اگر میخواهید قدمی فراتر بردارید و فرمول های خود را به شکل جامع تری بنویسید، میتوانید مقادیر عددی یا متنی موجود در متن را به صورت آدرس بنویسید. برای مثال:

=SUMIF(A2:A8,"<>"&F1,C2:C8)

در اینجا، دیگر به تغییر فرمول برای مطابقت با شرط جدید نیاز نخواهد بود فقط کافیست شرط جدید خود را در آدرسی که در فرمول مشخص کرده اید وارد کنید.

نکته: زمانی که با استفاده از آدرس سلول یک عبارت منطقی(LOGICAL EXPRESSION) را به کار میگیرید، برای استفاده از رشته متنی باید از “” استفاده کنید و در پایان رشته و برای الحاق آن می بایست از & استفاده کنید.برای مثال، “<>”&F1

علامت = میتواند قبل از آدرس سلول حذف شود. در نتیجه هر دو فرمول زیر صحیح و یکسان خواهد بود :

فرمول 1:

=SUMIF(A2:A8,"="&F1,C2:C8)

فرمول 2:

=SUMIF(A2:A8,F1,C2:C8)

 فرمول SUMIF همراه با کاراکترهای WILD CARD

در صورتی که میخواهید با استفاده از یک شرط TEXT عمل جمع را انجام دهید و در نظر دارید که از مطابقت جزئی استفاده کنید، می بایست از کاراکترهای WILD CARD استفاده کنید:

از کاراکترهای Wildcard زیر میتوان استفاده کرد:

  • ستاره(*) – نشان دهنده هر تعدادی از کاراکترهاست.
  • علامت سوال(؟) – نشان دهنده یک کاراکتر در یک قسمت مشخص

مثال 1: افزودن مقادیر بر اساس مطابقت جزئی (partial match)

فرض کنید میخواهید مقادیر مربوط به تمام انواع موز را جمع کنید، فرمول های Sumif زیر این کار را انجام خواهند داد:

=SUMIF(A2:A8,"*موز*",C2:C8)

این شرط شامل متن احاطه شده با * است

=SUMIF(A2:A8,"*"&F1&"*",C2:C8)

این شرط شامل یک آدرس احاطه شده با * میشود. لطفاً به دلیل آوردن & قبل و بعد از آدرس برای الحاق آدرس توجه داشته باشید.

در صورتی که میخواهید سلول هایی را انتخاب کنید که با متنی خاص شروع میشود و یا به پایان میرسد، فقط یک * قبل یا بعد از متن بگذارید:

=SUMIF(A2:A8," موز*",C2:C8)

مقادیر موجود در C2 تا C8 را جمع میزند به شرطی که سلول متناظر در ستون A با موز شروع شود.

=SUMIF(A2:A8,"*موز",C2:C8)

این فرمول مقادیر موجود در C2 تا C8 را جمع میزند به شرطی که سلول متناظر در ستون A با موز پایان یابد.

مثال 2: جمع کردن مقادیری که دارای تعداد مشخصی از کاراکتر هستند.

در صورتی که بخواهید مقادیری را جمع کنید که دقیقا دارای 6 کاراکتر باشد، میبایست از این فرمول استفاده کنید:

=SUMIF(A2:A8,"??????",C2:C8

)

مثال 3: جمع کردن مقادیر متناظر با رشته متنی

در صورتی که کاربرگ شما دارای انواع مختلفی از داده است و میخواهید مقادیر متناظر با رشته های متنی را جمع بزنید، فرمول SUMIF زیر این کار را انجام خواهد داد:

  • =SUMIF(A2:A8,"?*",C2:C8)
  • مقادیر مربوط به سلول های C2:C8 را جمع میزند به شرطی که سلول متناظر با آن در ستون A حداقل یک سیمبل داشته باشد.
  • =SUMIF(A2:A8,"*",C2:C8)
  • شامل سلول هایی میشود که به نظر خالی هستند ولی شامل رشته های با طول صفر می باشند که توسط دیگر فرمول های ایجاد شده است. برای مثال “”

هر دو فرمول بالا مقادیر غیر متنی مثل خطاها، BOOLIANS، اعداد و تاریخ را در نظر نمیگیرند.

مثال 4: * یا ؟ را بعنوان کاراکترهای معمولی به کار ببرید

در صورتی که میخواهید * یا ؟ بعنوان حرف به کار برده شود و نه به عنوان کاراکتر WILDCARD  می بایست از (~) استفاده کنید. برای مثال، این فرمول مقادیر موجود در C2:C8 را به شرط اینکه مقدار متناظر آن در ستون A دارای علامت سؤال باشد با هم جمع میکند:

=SUMIF(A2:A8,"~?",C2:C8)

جمع زدن بزرگترین یا کوچکترین مقادیر در یک محدوده

برای جمع زدن بزرگترین یا کوچکترین اعداد در یک محدوده، از ترکیب تابع SUM و توابع LARGE یا Small استفاده کنید.

مثال 1. اضافه کردن تعدادی از اعداد بزرگتر یا کوچکتر

در صورتی که میخواهید تعداد کمی از اعداد بزرگتر یا کوچکتر، برای مثال 5 عدد را جمع کنید به صورت مستقیم آنها را در تابع وارد کنید:

=sum(large(b1:b10,{1,2,3,4,5})) 5

عدد بزرگتر را جمع خواهد کرد.

=sum(small(b1:b10,{1,2,3,4,5})) 5

عدد کوچکتر را جمع خواهد کرد.

در صورتی که 2 یا چند عدد بعنوان عدد کوچکتر باشد، فقط یکی از آنها در نظر گرفته خواهد شد. برای مثال در تصویر بالا فقط یکبار 9 در نظر گرفته شده است.

مثال 2: اضافه کردن تعداد زیادی از اعداد بزرگتر یا کوچکتر

برای این منظور می بایست به جای وارد کردن دستی در فرمول، از indirect و استفاده از ردیف ها در تابع استفاده کرد .در تابع indirect  از شماره ردیفی استفاده کنید که نشان دهنده تعداد عددی است که میخواهید جمع بزنید. برای مثال، فرمول های زیر 15 عدد بزرگ و کوچک را جمع میکنند:

=sum(large(b1:b50,row(indirect("1:15")))
=sum(small(b1:b50,row(indirect("1:15")))

از آنجایی که این فرمول ها به صورت آرایه ای هستند می بایست با فشردن کلیدهای زیر آنها را به صورت آرایه ای وارد کرد:

Ctrl+shift+enter

مثال 3: جمع کردن تعداد متغیری از اعداد بزرگتر یا کوچکتر

اگر نمیخواهید هر بار که قصد دارید تعداد جدید از اعداد را با هم جمع کنید فرمول خود را تغییر دهید، میتوانید به جای وارد کردن مستقیم در فرمول، آنها را در سلول وارد کنید. سپس میتوانید با استفاده از فرمولrow و indirect و اشاره به سلولی که متغیر در آن قرار داده شده (سلول E1) این کار را انجام دهید:

=sum(large(b1:b50,row(indirect("1:"&E1))))

تعداد متغیری از مقادیر بزرگتر را جمع میزند

=sum(small(b1:b50,row(indirect("1:"&E1))))

تعداد متغیری از مقادیر کوچکتر را جمع میزند.

به یاد داشته باشید که این فرمول ها به صورت آرایه ای هستند و می بایست با فشردن کلیدهای زیر آنها را به صورت آرایه ای وارد کرد:

Ctrl+shift+enter

نحوه جمع کردن سلول های متناظر با سلول خالی

در صورتی که سلول خالی به این معنی باشد که سلول مطلقاً خالی باشد- یعنی هیچ کاراکتر، فرمول، رشته با طول صفر و … وجود نداشته باشد- از = بعنوان شرط استفاده کنید برای مثال:

=sumif(a2:a10,"=",c2:c10)

در صورتی که سلول خالی شامل رشته های با طول صفر میشود، برای مثال سلول های با فرمولی مثل =”” ، آنگاه از “” بعنوان شرط استفاده کنید.

=sumif(a2:a10,"",c2:c10)

هر دو فرمول بالا ، سلول های ستون a را ارزیابی میکنند و در صورتی که سلول خالی یافت شود، مقدار متناظر در ستون c اضافه خواهد شد.

نحوه جمع کردن سلول های متناظر با سلول های غیر خالی

در صورتی که میخواهید مقادیر موجود در ستون C را جمع بزنید به شرطی که مقدار متناظر آن در ستون a خالی نباشد، آنگاه، از “<>” بعنوان شرط در فرمول خود استفاده کنید.

=sumif(a2:a10,"<>",c2:c10)

فرمول بالا مقادیر متناظر با سلول های غیر خالی از جمله سلول های با رشته به طول صفر را با هم جمع میکند.

نحوه استفاده از Sumif همراه با تاریخ

عموماً به همان  شکلی که از Sumif در کنار شرط های متنی، عددی استفاده میکردید، از شرط به شکل تاریخ هم استفاده میشود.

در صورتی که میخواهید مقادیر بزرگتر، کوچکتر یا مساوی  با تاریخی که مشخص میکنید را باهم جمع کنید، آنگاه می بایست از عملگرهای مقایسه ای که قبلاً توضیح داده شد استفاده نمائید. چند نمونه از این مسئله در جدول زیر ارائه شده است:

شرط مثال فرمولی توصیف
اضافه کردن مقادیر بر اساس یک تاریخ مشخص
=sumif(b2:b9,"10/29/2014",c2:c9)
مقادیر موجود در C2:C9 را به شرط اینکه تاریخ متناظر با آنها در ستون b 29 اکتبر 2014 باشد، با هم جمع میکند.
اضافه کردن مقادیری که تاریخ متناظر با آنها، بزرگتر یا مساوی تاریخ مشخص شده باشد.
=sumif(b2:b9,">=10/29/2014",c2:c9)
مقادیر موجود در C2:C9 را به شرط اینکه تاریخ متناظر با آنها در ستون b  بزرگتر یا مساوی 29 اکتوبر 2014 باشد، با هم جمع میکند.
اضافه کردن مقادیری که تاریخ متناظر با آنها، بزرگتر از تاریخ مشخص شده در سلولی دیگر باشد
=sumif(b2:b9,">"&f1,c2:c9)
مقادیر موجود در C2:C9 را به شرط اینکه تاریخ متناظر با آنها در ستون b بزرگتر از تاریخ مشخص شده در سلول F1 باشد.

در صورتی که میخواهید مقادیر متناظر با تاریخ فعلی را جمع کنید می بایست از ترکیب تابع TODAY() و تابع Sumif استفاده نمایید.

شرط مثال فرمولی
اضافه کردن اعداد بر اساس تاریخ فعلی
=Sumif(B2:B9,Today(),C2:C9)
اضافه کردن اعدا متناظر با یک تاریخ گذشته، مثل قبل از امروز
=Sumif(B2:B9,"<"&Today(),C2:C9)
اضافه کردن اعداد متناظر با تاریخی در آینده برای مثال، بعد از امروز
=Sumif(B2:B9,">"&Today(),C2:C9)
اضافه کردن اعداد به شرطی که یک تاریخ در یک هفته آینده قرار گیرد برای مثال، امروز + 7 روز
=Sumif(B2:B9,"="&Today()+7,C2:C9)

در تصویر زیر میتوانید نحوه استفاده از فرمول آخر برای بدست آوردن مجموع کالاهایی که در یک هفته آینده بارگیری میشود را بدست آورید.

نحوه جمع زدن مقادیر داده در یک محدوده تاریخ

چگونه مقادیر بین دو تاریخ را با هم جمع کنم؟ این گونه سوالات مکررا در سایت ها و گروه های اینترنتی پرسیده میشود .

برای این کار می بایست از ترکیب یا به صورت دقیقتر از بدست آوردن اختلاف دو sumif به جواب رسید. در اکسل 2007 و بالاتر میتوان از راه حل بهتری استفاده کرد و آن تابع Sumifs است. اگرجه مقاله بعدی ما در مورد تابع Sumifs است ولی راهکار این مسئله را با استفاده از Sumif در زیر ارائه کرده ایم:

=sumif(b2:b9,”>=10/1/2018″,c2:c9) – sumif(b2:b9,”>11/1/2018″,c2:c9)

این فرمول مقادیر بین تاریخ های 1 اکتبر و 31 اکتبر را با هم جمع میکند.

اگرچه ممکن است این فرمول کمی پیچیده به نظر برسد ولی اگر توجه کنید بسیار فرمول ساده ای است. فرمول اول، مقادیر موجود در c2:c9 را به شرط اینکه تاریخ آنها بزرگتر یا مساوی با تاریخ شروع یعنی 1 اکتبر باشد را با هم جمع میکند. سپس می بایست مقادیری که مربوط به بعد از تاریخ پایان است را از کل کم کرد، که این کار را فرمول دوم انجام میدهد.

نحوه جمع زدن اعداد در ستون های مختلف

برای درک بهتر مسئله، مثال زیر را در نظر بگیرید. فرض کنید جدولی از خلاصه فروش ماهانه دارید. ازآنجایی که این اعداد از مناطق مختلف بدست آمده است، برای یک محصول یکسان، چند عدد وجود دارد:

بر این اساس، چگونه میتوانید مقدار کل سیب فروخته شده را در 3 ماه گذشته بدست آورید؟

اگر به یاد داشته باشید، ابعاد sum_range بوسیله ابعاد range مشخص میشود و به همین دلیل شما نمیتوانید از فرمولهایی نظیر

=SUMIF(A2:A9,"سیب",C2:E9)

استفاده کنید زیرا این فرمول فقط مقادیر موجود در ستون C را در نظر خواهد گرفت و این چیزی نیست که ما به دنبال آن هستیم، درست است؟

ساده ترین شیوه ای که به ذهن می رسد این است که یک ستون کمکی ایجاد کنیم که  زیر مجموع های هر ردیف را محاسبه میکند و سپس میتوان از آدرس آن ستون درsUM_RANGE فرمول خود استفاده کرد:

یک سلول ساده SUM در سلول F2 قرار دهید، سپس

=Sum(c2:e2)

را در ستون f گسترش دهید.

پس از آن، میتوانید یک تابع Sumif معمولی به شکل زیر بنویسید:

=sumif(a2:a9,"سیب",f2:f9)

یا

=sumif(a2:a9,h1,f2:f9)

در فرمول های بالا Sum_range دقیقاً محدوده ای به اندازه range دارد (1 ستون و 8 ردیف) در نتیجه نتایج درستی را ارائه خواهند کرد.

در صورتی که نخواهید از ستون اضافی کمک بگیرید، میتوانید برای هر ستونی که میخواهید جمع کنید یک تابع Sumif بنویسید و سپس همه آنها را با sum با هم جمع کنید.

=SUM(SUMIF(A2:A9,I1,C2:C9),SUMIF(A2:A9,I1,D2:D9), SUMIF(A2:A9,I1,E2:E9))

یک راه دیگر این است که از یک فرمول آرایه پیچیده تر استفاده کنیم (به یاد داشته باشید که ctrl+shift+enter را بزنید):

{=SUM((C2:C9+D2:D9+E2:E9)*(--(A2:A9=I1)))}

FAQ یا ” چرا فرمول Sumif  من به درستی کار نمیکند؟”

دلایل بسیاری وجود دارد که ممکن است sumif به درستی کار نکند، در بعضی مواقع به دلیل اینکه داده های ارائه شده در سلول ها برای فرمول Sumif مناسب نیستند، این تابع جواب درستی را برنمیگرداند. بنابراین لیست مواردی را که می بایست چک کنید در زیر آورده ایم:

1. پارامترهای range و Sum_range می بایست محدوده باشد نه آرایه.

پارامتر اول و سوم، می بایست همیشه به شکل محدوده باشد مثل: A1:A10 . در صورتی که چیز دیگری مثل آرایه به کار برده شود، برای مثال {1,2,3}  آنگاه، اکسل خطا خواهد داد.

فرمول صحیح:

= Sumif(A1:A3,"گل",C1:C3)

فرمول اشتباه:

= Sumif({1,2,3},"گل",C1:C3)

2. نحوه جمع زدن مقادیر در کاربرگ های مختلف

مثل اکثر فرمول های دیگر sumif میتواند مقادیری از کاربرگ های دیگر را نیز بخواند به شرطی که این شیت ها و کاربرگ ها باز باشند.

برای مثال، فرمول زیر مقادیر موجود در سلول های F2:f9  شیت 1 بوک 1را در صورتی که سلول متناظر آن در ستون A شامل “سیب” باشد با هم جمع خواهد کرد.

= SUMIF([BOOK1.XLSX]SHEET1!$A$2:$A$9,"سیب",[BOOK1.XLSX]SHEET1!$F$2:$F$9)

با این حال، این فرمول در صورتی که book1 بسته باشد کار نخواهد کرد. این اتفاق به این دلیل است که محدوده ها در فرمول Sumif در صورت بسته بودن کاربرگ تبدیل به آرایه میشود و از آنجا که فرمول Sumif آرایه ها را در پارامترهای اول و سوم خود قبول نمیکند، با خطای #value! مواجه خواهید شد.

3. برای جلوگیری از بوجود آمدن مشکل مطمئن شوید که range و sum_range از محدوده یکسان برخوردار هستند.

همانطور که در ابتدای مطلب اشاره کردیم در اکسل های جدید نیازی نیست که range و sum_range به یک اندازه باشند، ولی در اکسل های قدیمی 2000 و قبل اندازه نامساوی پارامترهای range و sum_range ایجاد مشکل میکرد. با اینحال حتی در جدیدترین ورژن های اکسل 2010 و 2016 نیز این عامل ممکن است ایجاد مشکل کند و به همین دلیل بهتر است همیشه اندازه و شکل پارامترهای  range و sum_range یکسان باشد.

از اینکه از این مطلب بازدید کردید تشکر میکنیم.

مشترک شدن
Notify of
guest

106 نظرات
نظردهی درون متنی
مشاهده همه نظرات
مهدی

سلام و وقت بخیر
ممنون میشم که بفرمایید فرمول جمع زیر چی هست
B5+$A$1 به شرط اینکه B5 بزرگتر یا کوچکتر از صفر باشه (خود صفر نباشه)

امیر دایی

اگر خود صفر بود باید چی کار کنه؟

مهدی

سلام و وقت بخیر
ممنون از سایت خوبتون
من یک سلول دارم که می خوام توی اون، دو سلول دیگه رو که اولی تغییر می کنه و دومی ثابت هست رو جمع بزنم به شرط اینکه عدد سلول اول صفر نباشه و بیشتر یا کمتر از صفر باشه
ممنون میشم فرمولش رو بفرمایید

امیر دایی

برای اینکه مقدار یک سلول رو بررسی کنید و بعد از برقرار بودن شرط کار مورد نظر رو انجام بدید باید از تابع if در اکسل استفاده کنید. بعد از اینکه مطلب این تابع رو خوندید و مشکل داشتید، دوباره پیام بذارید و قسمتی که مشکل دارید و توضیح بدید تا راهنماییتون کنم.

میلاد

سلام وقت بخیر
مقادیر موجود در سلول های C2:C8 را جمع میکند به شرطی که مقدار متناظر با آنها در ستون A دقیقا مشابه هم باشند یا تکراری باشند.
شرط تکراری بودن رو چطور بنویسم؟
یعنی تو ستون a چند تا شماره سند دارم که تو ستون c مبلغ ریالی دارن و جمع مبالغ رو میخام.
راهنمایی کنید ممنون میشم

امیر دایی

سلام سوالتون گنگ هست. با مثال توضیح بدید. مثلا بگید توی ستون a مقدارهای 1,2,3 رو داریم و توی ستون B ….

میلاد

سیستم من گزارش هزینه ناقص تهیه میکنه . یعنی سرجمع هزینه هر سند رو نمیده و هر سند رو به سرفصل هزینه ها تقسیم میکنه.
دوتا ستون دارم a (شماره سند) و b ( مبلغ).
شماره سند ها تکراری هستند یعنی 6 تا سند356 دارم.
6 تا هم مبلغ تو ستون b دارم.
حالامیخوام جمع مبالغ مربوط به سند 356 رو داشته باشم.

امیر دایی

ابزار مناسب برای انجام این کار در اکسل پیوت تیبل هست. شما خیلی راحت می تونید روی دیتای خودتون یک پیوت تیبل بزنید، شماره سند رو در قسمت row و مبلغ رو در قسمت value پیوت تیبل قرار بدید. اگر با پیوت تیبل آشنا نیستید مطلب زیر رو بخونید:
ساخت پیوت تیبل در اکسل

میلاد

سلام مجدد
دمت گررررم برادر عزیز
حل شد

مهدی

سلام . تعدادی اسم وجود دارد که برخی اجزای آنها یکی هستند و میخواهم مقادیر عددی آنها را با هم جمع کنم . چطور از تابع sumifs استفاده نمایم .بطور مثال :
رادیاتور لیفتراک …….. 5 عدد
پیچ گوشتی معمولی …………. 2عدد
روغن ترمز لیفتراک ………… 10 عدد
تایر چرخ عقب لیفتراک ……….. 4 عدد
بلبرینگ 6302 ………… 5 عدد
رادیاتور شوفاژ ………… 1عدد
سیم ترمز لیفتراک ………… 3 عدد
میخواهم مقادیر عددی مربوط به لیفتراک را با هم جمع نماید . سپاس

امیر دایی

سلام به دلیل اینکه مقدارهای متنی و عددی داخل یک سلول هست شما اجازه محاسبات روی این سیستم رو ندارید. اول باید متن عدد رو با استفاده از ctrl+f یا با استفاده از تابع substitue حذف کنید و بعد می تونید از توابع محاسباتی استفاده کنید.

امیر آریان پور

سلام آیا می‌شود جمع چند سلول بدست آورد به شرطی که اگر عدد یک سلول عوض شود عدد جدید به حاصلجمع قبلی اضافه شود ؟

امیر دایی

سلام فرمول ها در اکسل داینامیک هستن و با تغییر مقدار سلول ها نتیجه مجدد حساب میشه.

ابوالقاسم

سلام
چطوری میشه یه فرمول نوشت که هر وقت در یک شیت مبلغ دریافتی از دانش آموز را وارد کردیم در لیست شهریه به اسم همون دانش آموز ثبت کنه و هر دریافتی را با دریافت های قبلی جمع بزنه

امیر دایی

همه این موارد به نحوه ذخیره سازی داده ها توسط شما بستگی داره. راه درستش این هست که به ازای یک کد یکتا مثل کد ملی یا شماره دانش آموزشی داده ها رو در یک شیت به ازای هر تراکنش داخل یک شیت ذخیره کنید. در نهایت با استفاده از تابع sumifs یا با پیوت تیبل در یک شیت دیگه به ازای هر کد ملی محاسبات مورد نظر رو انجام بدید.

زهرا

سلام وقت بخیر چگونه میشه سلول تکراری رو جمع بزنه؟

امیر دایی

سلام
از فرمول زیر استفاده کنید.

=SUMPRODUCT((COUNTIFS(A1:A13,A1:A13)>1)*A1:A13)
مهیار

سلام خسته نباشید.
من میخام یک عدد را در یک ستون ضرب کنم زمانی که این عدد را تغیر بدم مقدار ستون هم تغیر داده شود از چه روشی استفاده کنم یا فورمولی میشه رهنمایی کنید

امیر دایی

سلام
مقدار رو در یک سلول وارد کنید و در یک ستون جدید، ستون قبلی رو در این سلول ضرب کنید.

علی

سلام خسته نباشید
ببخشید من یه شیت دارم که داخل یک ستون اسم تیم و ستون مقابلش مبلغی هستش که اون تیم وام گرفته. ممکنه یک تیم چند بار وام بگیره ولی نباید در مجموع از یه مقداری بیشتر بشه
خواستم ببینم چجوری میشه این مورد رو با تابع sumif پیاده کرد
ممنون میشم کمکم کنین.

امیر دایی

سلام نتیجه نهایی رو متوجه نشدم دقیقا به چی میخواید برسید. میخواید جمع وام هایی که یک تیم گرفته رو مشخص کنید؟ از ابزار pivot table استفاده کنید. اگر منظورتون این است که توی یک شیت دیگه اسم تیم ها و مبلغ حداکثر وام هست و توی یک شیت دیگه لیست وام های گرفته شده ار تیم هست و میخواید توی شیت اول مبلغ کل وام های دریافتی رو محاسبه کنید، اموزش تابع sumifs ور مطالعه کنید تا بتونید فرمول رو بنویسید. اگر منظورتون این هست که اگر قرار شد یک نفر وام بگیره اول چک کنه که مبلغ وارد… مطالعه بیشتر »

علی

ببخشید بد توضیح دادم
ممنونم متوجه راه حل شدم

روح الله غلامی

سام ایفز، یکی از کریتری رنج ها تاریخ هست، وقتی در سلولی مثلا تاریخ رو دستی وارد میکنم کار میکنه، ولی وقتی در اون سلول از فرمول زمان حال استفاده میکنم(=now()) دیگه نمیتونه جمع بکنه، مشکل کجاست به نظر شما؟

امیر دایی

سلام
احتمالا نوع تاریخی که توی دیتا دارید با تاریخی که تابع now بر می گردونه متفاوت هست. شما باید سعی کنید این دوتا رو یکی کنید. ممکنه هزاران حالت باشه که فرمول شما کار نکنه.
مثلا ممکنه تاریخ شما شمسی باشه ولی تابع now تاریخ میلادی رو بر می گردونه
یا ظاهرا ستون تاریخ هست ولی در باطن متن هست