مثال ساده از تابع IF اکسل
فرض کنیم داده هایی شبیه شکل زیر داریم و اسامی دانش آموزان با معدلهایی که اخذ کرده اند وارد شده است و حالا می خواهم با استفاده از تابع IF در اکسل و ستون وضعیت ، اگر نمره آنها زیر 10 بود نوشته شود “مردود” و اگر عدد 10 یا بالاتر از آن بود نوشته شود “قبول” که این ساده ترین شکل استفاده از تابع IF در اکسل می باشد.
=IF(C3>=10,"قبول","مردود")
تابع IF برای محاسبه تاریخ استخدام
فرض کنیم که جدولی داریم که در آن نام پرسنل به همرا تاریخ استخدام آنها وارد شده است و میخواهیم اگر سابقه کار آنها بالای 10 سال بود در ستون پاداش مبلغ 100 نمایش داده شود و اگر زیر 10 سال بود مبلغ 50 نمایش داده شود .
توجه داشته باشید که تاریخ به صورت یک عدد 8 رقمی شامل 4 رقم سال و 2 رقم ماه و 2 رقم روز وارد شده است.
پس حل این مسئله باید در دو مرحله انجام شود ، یعنی باید ابتدا 4 رقم مربوط به سال را از تاریخ استخدام جدا کنیم و آن را از سال 4 رقمی تاریخ جاری کم کنیم تا میزان سابقه کار به دست بیاید و سپس آن را در تابع IF قرار دهیم .
=IF(1403-(--LEFT(C3,4))>10,100,50)
قسمتی از فرمول بالا که در تصویر هایلایت شده در واقع 4 رقم سال را از تاریخ استخدام جدا می کند تا آن را از سال جاری کم کند تا میزان سابقه کاری محاسبه شو. اما نکته مهم وجود دو خط تیره — قبل از آن می باشد که در واقع به دلیل اینکه خروجی تابع LEFT متنی می باشد ، نتیجه تابع LEFT را عددی می کند . البته می توانستیم به جای — از تابع NUMBERVALUE استفاده کنیم.
تابع IF تو در تو
به تصویر زیر دقت کنید ، نمرات دانش آموزان در ستون D وارد شده و قرار است به ازای نمرات دریافت شده در ستون E ارزشیابی ثبت شود ، و قرا راست اگر نمره 10 یا کوچکتر بود ضعیف و اگر بزرگتر از 10 بود و کوچکتر از 15 متوسط و اگر بین 15 و 18 بود متوسط و بالای 18 عالی نوشته شود .
نکته بسیار مهم:
در هنگام استفاده از تابع IF به صورت تو در تو اگر اولین شرط برقرار باشد ، سراغ بررسی شروط بعدی نخواهد رفت به دلیل همین در مثال بالا ، اول شرط کوچکتر بررسی شد ، چنانچه اول بررسی می کردیم که اگر بزرگتر از 10 بود ، خب هم 11 بزرگتر از 10 است و هم 19 و نتیجه درست نمیشد.
=IF(D3<=10,"ضعیف",IF(D3<=15,"متوسط",IF(D3<=18,"خوب","عالی")))
به تصویر بالا دقت کنید ، قرار است تاریخهای بزرگتر از 1399 جدید و تاریخهای کوچکتر از 1400 قدیمی در نظر گرفته
استفاده از تابع IF به صورت آرایه ای
بهترین روش برای اشراف کامل به این تابع ، انجام دادن تمرین ها و مثالهای مختلف تابع IF است و در این مثال فرض بر این است که جدولی مشابه جدول زیر داریم و میخواهیم هر نام یک بار تکرار شود و مهارتهای هر شخص روبروی نام او نوشته شود .
در این روش تابع IF را با تابع TEXTJOIN ترکیب کرده ایم و باید بدانید به دلیل اینکه در این فرمول محدوده ای از داده مورد مقایسه قرار گرفته فرمول آرایه ای می باشد و اگر آفیس 2021 یا بالاتر ندارید در انتهای فرمول باید کلیدهای Ctrl + Shift + Enter را با هم بزنید.
=TEXTJOIN(" | ",TRUE,IF(E3=$B$3:$B$11,$C$3:$C$11,""))
ترکیب تابع IF با تابع AND
در این مثال می خواهیم برقرار بودن چند شرط به صورت همزمان را بررسی کنیم ، به عنوان مثال لیستی از افراد به همراه مهارتهای آنها و میزان سابقه آنها در آن مهارت را داریم و میخواهیم با آنهایی که مهارت اکسل دارند و بیش از 5 سال سابقه برای آنها نوشته شود ، تماس و در غیر اینصورت چیزی نوشته نشود . در این طور مواقع باید از ترکیب تابع AND با این تابع استفاده کنیم .
پس دو شرط به صورت همزمان بررسی باید شود ، یک مهارت اکسل باید و دو بیش از 5 سال سابقه داشته باشد .
=IF(AND(C3="اکسل",D3>5),"تماس","")
توجه داشته باشید که در همان آرگومان اول تابع IF باید از تابع استفاده کنیم و برای بررسی یک یا چند شرط هم مانند همین مثال بالا ولی با تابع OR می توانیم انجام دهیم.
یک مثال پیچیده و حرفه ای از تابع IF
فرض کنید که در سلولی تاریخ شمسی را به شکل 1402/01/01 وارد کرده اید که طول کاراکتر 10 می باشد و می خواهید بررسی کنید که از لحاظ استاندارهای تاریخ شمسی درست وارد شده است یا خیر .
چند شرط باید بررسی شود :
- طول داده 10 کاراکتر باشد
- اگر ماه بزرگتر از 6 بود امکان اینکه روز بزرگتر 30 باشد وجود ندارد
- امکان اینکه ماه بزرگتر از 13 باشد نیست
- اگر ماه کوچکتر مساوی 6 بود امکان 31 روزه شدن دو کاراکتر آخر وجود دارد.
با در نظر گرفتن شروط بالا می توان فرمول را به شکل زیر نوشت :
=IF(LEN(A1)=10,IF(AND(--MID(A1,6,2)>0,--MID(A1,6,2)<13,--RIGHT(A1,2)>0,OR(AND(--MID(A1,6,2)<=6,--RIGHT(A1,2)<=31),AND(--MID(A1,6,2)>6,--RIGHT(A1,2)<=30))),"صحیح است","تاریخ اشتباه واردشده"),"")
شاید فرمول بالا به نظر پیچیده و سخت باشد اما اگر به چند بخش تقسیم شود کاملا قابل درک است .