معرفی تابع IFS
تابع IFS یکی از توابع منطقی اکسل است که برای بررسی چند شرط مختلف به کار میرود. اگر قبلاً برای چندین حالت از تابع IF تو در تو استفاده میکردید، تابع IFS میتواند فرمول شما را سادهتر، خواناتر و قابلمدیریتتر کند.
با تابع IFS میتوانید چند شرط را به ترتیب بررسی کنید و به محض اینکه اولین شرط درست باشد، نتیجه مربوط به همان شرط نمایش داده میشود. این تابع مخصوصاً برای امتیازدهی، سطحبندی، تعیین وضعیت فروش، دستهبندی مشتریان، محاسبه پاداش و تحلیل دادهها بسیار کاربردی است.
فرض کنید نمره دانشآموز در سلول A2 قرار دارد و میخواهید بر اساس نمره، وضعیت او را مشخص کنید. اگر نمره 18 یا بیشتر بود «عالی»، اگر 14 یا بیشتر بود «خوب»، اگر 10 یا بیشتر بود «قبول» و در غیر این صورت «مردود» نمایش داده شود.
=IFS(A2>=18,"عالی",A2>=14,"خوب",A2>=10,"قبول",TRUE,"مردود")
در این فرمول، اکسل شرطها را از چپ به راست بررسی میکند. اگر A2 برابر 16 باشد، شرط اول درست نیست اما شرط دوم درست است؛ بنابراین نتیجه «خوب» نمایش داده میشود.
کاربردهای اصلی تابع IFS
- جایگزین سادهتر برای IFهای تو در تو
- دستهبندی دادهها بر اساس چند شرط
- تعیین وضعیت دانشآموزان، کارمندان، مشتریان یا محصولات
- محاسبه سطح تخفیف، کمیسیون یا پاداش
- تبدیل عدد به متن توصیفی مانند «ضعیف»، «متوسط»، «عالی»
- ساخت گزارشهای مدیریتی و داشبوردهای اکسل
- بررسی چند حالت مختلف بدون پیچیده شدن فرمول
- ترکیب با توابعی مانند SUM، AND، OR، COUNTIF و XLOOKUP برای تحلیلهای پیشرفتهتر
ساختار (Syntax)
ساختار انگلیسی تابع IFS به شکل زیر است:
=IFS(logical_test1, value_if_true1, [logical_test2, value_if_true2], ...)
اگر تنظیمات جداکننده آرگومانها در اکسل شما فارسی یا منطقهای باشد، معمولاً به جای کاما از نقطهویرگول استفاده میشود:
=IFS(شرط۱; نتیجه اگر شرط۱ درست بود; شرط۲; نتیجه اگر شرط۲ درست بود; ...)
نکته مهم این است که آرگومانهای تابع IFS همیشه به صورت جفت وارد میشوند: ابتدا شرط، سپس نتیجهای که در صورت درست بودن آن شرط باید نمایش داده شود.
آرگومانها
logical_test1 / شرط اول
اولین شرطی است که اکسل بررسی میکند. این شرط باید نتیجه منطقی TRUE یا FALSE داشته باشد. برای مثال، بررسی اینکه مقدار سلول A2 بزرگتر یا مساوی 18 باشد.
=IFS(A2>=18,"عالی")
value_if_true1 / نتیجه در صورت درست بودن شرط اول
مقداری است که اگر شرط اول درست باشد نمایش داده میشود. این مقدار میتواند متن، عدد، تاریخ، نتیجه یک فرمول دیگر یا حتی مقدار یک سلول باشد.
=IFS(A2>=18,"قبول با رتبه عالی")
logical_test2 / شرط دوم
شرط دوم زمانی بررسی میشود که شرط اول نادرست باشد. اکسل شرطها را به ترتیب بررسی میکند و به محض رسیدن به اولین شرط درست، همان نتیجه را برمیگرداند.
=IFS(A2>=18,"عالی",A2>=14,"خوب")
value_if_true2 / نتیجه در صورت درست بودن شرط دوم
نتیجهای است که اگر شرط دوم درست باشد نمایش داده میشود. این الگو میتواند برای شرطهای بیشتر هم ادامه پیدا کند.
=IFS(A2>=18,"عالی",A2>=14,"خوب",A2>=10,"قبول")
TRUE / شرط پیشفرض اختیاری
تابع IFS مثل تابع IF بخش جداگانهای به نام «در غیر این صورت» ندارد. برای ایجاد حالت پیشفرض، معمولاً در انتهای فرمول از TRUE استفاده میکنیم. این کار باعث میشود اگر هیچکدام از شرطهای قبلی درست نبودند، نتیجه نهایی مشخص شود و خطا نگیریم.
=IFS(A2>=18,"عالی",A2>=14,"خوب",A2>=10,"قبول",TRUE,"مردود")
مثالهای ساده و پایه
مثال ۱: تعیین وضعیت نمره
فرض کنید نمره در سلول A2 وارد شده است. میخواهیم وضعیت دانشآموز را بر اساس نمره مشخص کنیم.
=IFS(A2>=18,"عالی",A2>=14,"خوب",A2>=10,"قبول",TRUE,"مردود")
اگر مقدار A2 برابر 19 باشد، نتیجه «عالی» خواهد بود. اگر مقدار A2 برابر 12 باشد، نتیجه «قبول» نمایش داده میشود.
مثال ۲: سطح فروش فروشنده
فرض کنید مبلغ فروش هر فروشنده در سلول B2 قرار دارد. میخواهیم سطح عملکرد او را مشخص کنیم.
=IFS(B2>=100000000,"فروش عالی",B2>=50000000,"فروش خوب",B2>=20000000,"فروش متوسط",TRUE,"نیاز به پیگیری")
در این مثال اگر فروش 120 میلیون باشد، نتیجه «فروش عالی» نمایش داده میشود. اگر فروش 35 میلیون باشد، نتیجه «فروش متوسط» خواهد بود.
مثال ۳: تعیین گروه سنی
اگر سن افراد در سلول C2 قرار داشته باشد، میتوانیم گروه سنی را با تابع IFS مشخص کنیم.
=IFS(C2>=60,"سالمند",C2>=30,"بزرگسال",C2>=18,"جوان",TRUE,"نوجوان یا کودک")
ترتیب شرطها در این مثال مهم است. چون ابتدا سنهای بالاتر بررسی میشوند و سپس به سنهای پایینتر میرسیم.
مثال ۴: تعیین وضعیت موجودی کالا
فرض کنید تعداد موجودی کالا در سلول D2 قرار دارد.
=IFS(D2>=100,"موجودی کافی",D2>=20,"موجودی کم",D2>=1,"رو به اتمام",TRUE,"ناموجود")
این فرمول برای گزارش انبار بسیار کاربردی است و به سرعت وضعیت موجودی کالا را مشخص میکند.
مثالهای کاربردی و واقعی
ترکیب IFS با AND برای بررسی چند شرط همزمان
فرض کنید مبلغ خرید مشتری در سلول B2 و تعداد سفارشهای او در سلول C2 قرار دارد. میخواهیم مشتریانی که خرید بالا و تعداد سفارش زیاد دارند را «مشتری ویژه» بنامیم.
=IFS(AND(B2>=5000000,C2>=5),"مشتری ویژه",B2>=5000000,"خرید بالا",C2>=5,"سفارش زیاد",TRUE,"مشتری عادی")
در این مثال تابع AND بررسی میکند که هر دو شرط همزمان درست باشند. اگر مبلغ خرید حداقل 5 میلیون و تعداد سفارش حداقل 5 باشد، نتیجه «مشتری ویژه» خواهد بود.
ترکیب IFS با OR برای بررسی یکی از چند شرط
فرض کنید وضعیت پرداخت در سلول D2 و وضعیت ارسال در سلول E2 قرار دارد. اگر یکی از این دو وضعیت نیاز به پیگیری داشته باشد، میخواهیم هشدار نمایش دهیم.
=IFS(OR(D2="پرداخت نشده",E2="ارسال نشده"),"نیاز به پیگیری",AND(D2="پرداخت شده",E2="ارسال شده"),"تکمیل شده",TRUE,"در حال بررسی")
تابع OR زمانی نتیجه درست میدهد که حداقل یکی از شرطها درست باشد. این روش برای کنترل وضعیت سفارشها بسیار مفید است.
ترکیب IFS با SUM برای سطحبندی مجموع فروش
فرض کنید فروش سه ماهه در سلولهای B2 تا D2 قرار دارد و میخواهیم بر اساس مجموع فروش، سطح عملکرد را مشخص کنیم.
=IFS(SUM(B2:D2)>=300000000,"عملکرد عالی",SUM(B2:D2)>=150000000,"عملکرد خوب",SUM(B2:D2)>=50000000,"عملکرد متوسط",TRUE,"عملکرد ضعیف")
در این فرمول ابتدا مجموع فروش سه ماه محاسبه میشود و سپس با استفاده از IFS سطح عملکرد تعیین میگردد.
ترکیب IFS با COUNTIF برای ارزیابی تعداد رخدادها
فرض کنید در محدوده A2:A20 وضعیت حضور کارمندان ثبت شده و میخواهیم بر اساس تعداد غیبتها، وضعیت انضباطی را مشخص کنیم.
=IFS(COUNTIF(A2:A20,"غیبت")>=5,"اخطار جدی",COUNTIF(A2:A20,"غیبت")>=3,"اخطار",COUNTIF(A2:A20,"غیبت")>=1,"قابل پیگیری",TRUE,"بدون مشکل")
تابع COUNTIF تعداد سلولهایی را میشمارد که مقدار آنها «غیبت» است و سپس IFS بر اساس تعداد غیبتها نتیجه مناسب را نمایش میدهد.
ترکیب IFS با XLOOKUP برای تعیین پیام بر اساس اطلاعات پیدا شده
فرض کنید کد مشتری در سلول A2 قرار دارد و در جدول F2:H100 اطلاعات مشتریان ذخیره شده است. ستون F کد مشتری، ستون G نوع مشتری و ستون H مبلغ بدهی است. ابتدا با XLOOKUP مقدار بدهی را پیدا میکنیم و سپس با IFS پیام مناسب میسازیم.
=IFS(XLOOKUP(A2,F2:F100,H2:H100)>=10000000,"بدهی بالا",XLOOKUP(A2,F2:F100,H2:H100)>=1000000,"بدهی قابل پیگیری",TRUE,"وضعیت عادی")
این مدل فرمول برای سیستمهای فروش، حسابداری و مدیریت مشتریان بسیار کاربردی است.
ترکیب تابع IFS با فرمولهای دیگر
- ترکیب با AND برای زمانی که چند شرط باید همزمان برقرار باشند.
=IFS(AND(A2>=10,B2="پرداخت شده"),"مجاز",TRUE,"غیرمجاز")
- ترکیب با OR برای زمانی که درست بودن یکی از چند شرط کافی است.
=IFS(OR(A2="VIP",B2>=10000000),"تخفیف ویژه",TRUE,"تخفیف عادی")
- ترکیب با SUM برای تصمیمگیری بر اساس جمع چند سلول.
=IFS(SUM(B2:D2)>=100000000,"هدف محقق شد",TRUE,"نیاز به تلاش بیشتر")
- ترکیب با COUNTIF برای تصمیمگیری بر اساس تعداد تکرار یک مقدار خاص.
=IFS(COUNTIF(A2:A50,"تاخیر")>=3,"نیاز به تذکر",TRUE,"عادی")
- ترکیب با AVERAGE برای ارزیابی میانگین نمره یا عملکرد.
=IFS(AVERAGE(B2:F2)>=18,"عالی",AVERAGE(B2:F2)>=14,"خوب",AVERAGE(B2:F2)>=10,"قبول",TRUE,"مردود")
- ترکیب با XLOOKUP برای تصمیمگیری بر اساس مقدار بازیابیشده از یک جدول.
=IFS(XLOOKUP(A2,F2:F100,G2:G100)="طلایی","خدمات ویژه",TRUE,"خدمات عادی")
- ترکیب با TODAY برای دستهبندی تاریخها و مهلتها.
=IFS(A2<TODAY(),"سررسید گذشته",A2=TODAY(),"امروز",TRUE,"آینده")
خطاهای رایج و روش رفع آنها
۱. خطای #N/A به دلیل نبودن شرط درست
اگر هیچکدام از شرطهای تابع IFS درست نباشند و شما حالت پیشفرض تعریف نکرده باشید، اکسل خطای #N/A نمایش میدهد.
روش رفع: در انتهای فرمول یک شرط TRUE اضافه کنید تا اگر هیچ شرطی برقرار نبود، نتیجه پیشفرض نمایش داده شود.
=IFS(A2>=18,"عالی",A2>=14,"خوب",TRUE,"سایر موارد")
۲. اشتباه در ترتیب شرطها
تابع IFS شرطها را به ترتیب بررسی میکند. اگر شرطهای عمومیتر را قبل از شرطهای خاصتر بنویسید، ممکن است نتیجه اشتباه بگیرید.
مثلاً اگر ابتدا شرط نمره بزرگتر یا مساوی 10 را بنویسید، نمره 19 هم همانجا متوقف میشود و دیگر به شرط «عالی» نمیرسد.
=IFS(A2>=10,"قبول",A2>=18,"عالی",TRUE,"مردود")
روش رفع: شرطها را از خاصتر به عمومیتر یا از بزرگتر به کوچکتر مرتب کنید.
=IFS(A2>=18,"عالی",A2>=10,"قبول",TRUE,"مردود")
۳. فراموش کردن جفت شرط و نتیجه
در تابع IFS هر شرط باید یک نتیجه داشته باشد. اگر تعداد آرگومانها ناقص باشد، فرمول خطا میدهد.
روش رفع: مطمئن شوید بعد از هر شرط، نتیجه مربوط به آن نوشته شده است.
=IFS(A2>=18,"عالی",A2>=10,"قبول",TRUE,"مردود")
۴. استفاده اشتباه از جداکننده آرگومانها
در بعضی نسخهها و تنظیمات منطقهای اکسل، جداکننده آرگومانها کاما است و در بعضی دیگر نقطهویرگول. اگر جداکننده اشتباه باشد، اکسل فرمول را نمیپذیرد.
نمونه با کاما:
=IFS(A2>=18,"عالی",A2>=10,"قبول",TRUE,"مردود")
نمونه با نقطهویرگول:
=IFS(A2>=18;"عالی";A2>=10;"قبول";TRUE;"مردود")
۵. استفاده از متن بدون علامت نقلقول
اگر نتیجه یا شرط متنی را بدون علامت نقلقول وارد کنید، اکسل آن را به عنوان نام محدوده یا عبارت نامعتبر تشخیص میدهد.
روش رفع: متنها را داخل علامت نقلقول قرار دهید.
=IFS(A2>=18,"عالی",TRUE,"نیاز به بررسی")
۶. تکرار محاسبات سنگین در چند شرط
گاهی در هر شرط یک محاسبه سنگین مثل XLOOKUP یا SUM تکرار میشود. این کار میتواند فایل را کندتر کند.
روش رفع: اگر مقدار محاسبهشده زیاد تکرار میشود، آن را در یک سلول کمکی محاسبه کنید و سپس در IFS از همان سلول استفاده کنید.
=IFS(E2>=10000000,"بدهی بالا",E2>=1000000,"قابل پیگیری",TRUE,"عادی")
نکات حرفهای و ترفندهای مهم
- همیشه برای جلوگیری از خطای #N/A، در انتهای فرمول از TRUE به عنوان حالت پیشفرض استفاده کنید.
- شرطها را با دقت مرتب کنید؛ در امتیازدهی معمولاً از بالاترین مقدار به پایینترین مقدار بروید.
- برای خوانایی بهتر، اگر فرمول خیلی طولانی شد از سلولهای کمکی یا جدولهای مرجع استفاده کنید.
- اگر دستهبندی شما بر اساس جدول ثابت است، گاهی XLOOKUP یا VLOOKUP انتخاب بهتری از IFS است.
- اگر فقط یک شرط ساده دارید، استفاده از IF کافی است و نیازی به IFS نیست.
- برای شرطهای ترکیبی، از AND و OR داخل IFS استفاده کنید.
- در فایلهای تیمی، بهتر است منطق شرطها را با توضیح کوتاه در کنار جدول مستند کنید.
- اگر از نسخههای قدیمی اکسل استفاده میکنید، قبل از ارسال فایل مطمئن شوید گیرنده فایل تابع IFS را پشتیبانی میکند.
- در فرمولهای طولانی، بهتر است شرایط را از نظر همپوشانی بررسی کنید تا یک مقدار در دسته اشتباه قرار نگیرد.
- برای تحلیلهای بزرگ و چندسطحی، استفاده از جدول مرجع همراه با XLOOKUP میتواند نگهداری فرمول را سادهتر کند.
تفاوت تابع IFS با توابع مشابه
تفاوت IFS با IF
تابع IF برای بررسی یک شرط اصلی مناسب است. اگر چند حالت داشته باشید، باید IF را داخل IF دیگر بنویسید که به آن IF تو در تو میگویند. در مقابل، IFS چند شرط را پشت سر هم بررسی میکند و فرمول را خواناتر میسازد.
نمونه با IF تو در تو:
=IF(A2>=18,"عالی",IF(A2>=14,"خوب",IF(A2>=10,"قبول","مردود")))
نمونه سادهتر با IFS:
=IFS(A2>=18,"عالی",A2>=14,"خوب",A2>=10,"قبول",TRUE,"مردود")
تفاوت IFS با SWITCH
تابع SWITCH زمانی مناسب است که یک مقدار مشخص را با چند مقدار ثابت مقایسه میکنید. اما IFS برای شرطهای متنوعتر و مقایسههایی مثل بزرگتر، مساوی، ترکیب با AND و OR مناسبتر است.
=SWITCH(A2,"تهران","منطقه ۱","اصفهان","منطقه ۲","سایر")
اگر شرطهای شما عددی و بازهای باشد، IFS معمولاً انتخاب بهتری است.
تفاوت IFS با XLOOKUP
تابع XLOOKUP برای جستجو در جدولها عالی است، اما IFS برای تصمیمگیری شرطی مستقیم استفاده میشود. اگر دستهبندی شما در یک جدول جداگانه ذخیره شده باشد، XLOOKUP ممکن است ساختار تمیزتری ایجاد کند. اما اگر چند شرط منطقی دارید، IFS مناسبتر است.
=XLOOKUP(A2,F2:F100,G2:G100)
تفاوت IFS با CHOOSE
تابع CHOOSE بر اساس شماره موقعیت، یک مقدار را انتخاب میکند. اما IFS بر اساس شرطهای منطقی کار میکند. بنابراین برای سناریوهای شرطی و تحلیلی، IFS انعطاف بیشتری دارد.
=CHOOSE(A2,"ضعیف","متوسط","خوب","عالی")
سازگاری با نسخههای مختلف اکسل
تابع IFS در نسخههای جدید اکسل پشتیبانی میشود و در نسخههای قدیمیتر ممکن است در دسترس نباشد.
- Microsoft 365: پشتیبانی میشود
- Excel 2024: پشتیبانی میشود
- Excel 2021: پشتیبانی میشود
- Excel 2019: پشتیبانی میشود
- Excel for the web: پشتیبانی میشود
- Excel Mobile: در نسخههای جدید پشتیبانی میشود
- Excel 2016 و نسخههای قدیمیتر: معمولاً پشتیبانی نمیشود
اگر فایل شما قرار است در نسخههای قدیمی اکسل باز شود، بهتر است به جای IFS از IF تو در تو استفاده کنید تا سازگاری بیشتری داشته باشد.
=IF(A2>=18,"عالی",IF(A2>=14,"خوب",IF(A2>=10,"قبول","مردود")))
سؤالات پرتکرار درباره تابع IFS
آیا تابع IFS همان IF تو در تو است؟
از نظر کاربرد میتواند جایگزین IF تو در تو شود، اما ساختار آن سادهتر و خواناتر است. در IFS شرطها به صورت جفتهای شرط و نتیجه پشت سر هم نوشته میشوند.
آیا در تابع IFS میتوان حالت «در غیر این صورت» تعریف کرد؟
بله. برای این کار معمولاً در انتهای فرمول از TRUE استفاده میکنیم و نتیجه پیشفرض را بعد از آن مینویسیم.
=IFS(A2>=10,"قبول",TRUE,"مردود")
چرا تابع IFS خطای #N/A میدهد؟
معمولاً به این دلیل است که هیچکدام از شرطها درست نبودهاند و حالت پیشفرض هم تعریف نشده است. اضافه کردن TRUE در انتهای فرمول مشکل را حل میکند.
آیا میتوان داخل IFS از AND و OR استفاده کرد؟
بله. این یکی از کاربردیترین روشهای استفاده از IFS است، چون میتوانید شرطهای چندگانه و ترکیبی بسازید.
=IFS(AND(A2>=10,B2="تکمیل"),"قبول",TRUE,"رد")
آیا تابع IFS در اکسل 2016 کار میکند؟
در بیشتر نسخههای Excel 2016 و قدیمیتر تابع IFS پشتیبانی نمیشود. برای سازگاری با این نسخهها بهتر است از IF تو در تو استفاده کنید.
آیا ترتیب شرطها در IFS مهم است؟
بله، بسیار مهم است. اکسل اولین شرط درست را انتخاب میکند و دیگر شرطهای بعدی را بررسی نمیکند. بنابراین باید شرطها را با دقت و بر اساس اولویت مرتب کنید.
آیا نتیجه تابع IFS فقط متن است؟
خیر. نتیجه میتواند متن، عدد، تاریخ، مقدار یک سلول یا خروجی یک فرمول دیگر باشد.
=IFS(A2>=100,10,A2>=50,5,TRUE,0)
جمعبندی و پیشنهاد یادگیری بعدی
تابع IFS یکی از بهترین ابزارهای اکسل برای بررسی چند شرط و نمایش نتیجه مناسب است. این تابع باعث میشود به جای نوشتن IFهای تو در تو و پیچیده، فرمولهایی سادهتر، خواناتر و قابلمدیریتتر داشته باشید.
مهمترین نکته در استفاده از IFS این است که شرطها را به ترتیب درست بنویسید و برای جلوگیری از خطا، در انتهای فرمول یک حالت پیشفرض با TRUE قرار دهید.
برای یادگیری بهتر، پیشنهاد میشود بعد از تابع IFS، توابع IF، AND، OR، SWITCH، XLOOKUP و COUNTIF را نیز یاد بگیرید. ترکیب این توابع با هم میتواند شما را در ساخت گزارشهای حرفهای، داشبوردهای مدیریتی و تحلیلهای دقیقتر در اکسل بسیار توانمندتر کند.
