
آشنایی با فرمول IF در اکسل
ما روزانه در حال انتخاب و تصمیم گیری در خصوص مسائل روزمره هستیم و با منطق انتخاب و تصمیم گیری کاملا آشنا هستیم. مثلا به خودمون میگیم: اگه این اتفاق بیفته این کار و میکنم، اگه نیفته، ی کار دیگه!. یا مثلا میگیم اگه حالم خوب باشه و دوستم موافق باشه، به پارک میرم. در غیر اینصورت میرم خونه و مسائلی از این دست. در اکسل هم این موضوع برقرار هست. مثلا میگیم اگه خروجی این فرمول بزرگتر از صفر شد، خروجی بشه “عالی” در غیر اینصورت سلول رو خالی بذاره. به توابعی که این کار رو در اکسل انجام میدن، توابع منطقی یا Logical گفته میشه. اصلی ترین و پرکاربردترین تابع در این دسته توابع، فرمول if در اکسل است. توابع منطقی اساس و پایه برنامه نویسی در اکسل هست چرا که وجه اشتراک خواسته ما و زبان اکسل است. ما با این توابع و از همه مهمتر تابع If خواسته های منطقی خود را به اکسل می فهمانیم. پس درک این توابع و توانایی تبدیل مسائل مختلف به ساختار If خیلی خیلی مهمه. در ادامه به معرفی تابع If و مثال های کاربردی این تابع می پردازیم. تشریح آرگومان های این تابع:
Logical_Test:
شرط ماست. همونی که میگیم اگه این اتفاق افتاد. مثلا همینکه اگر دوستم باهام بیاد، شرط ماست.
value_if_True: خروجی فرمول در صورتی که شرط برقرار بشه. مثلا اگه دوستم بیاد، میرم پارک. پارک رفتن Value true ماست.
value_if_False: حالا اگه شرط برقرار نشد چی؟. این آرگومان خروجی تابع در صورت برقرار نبودن شرطه. یعنی اگه دوستم نیومد، میرم خونه.
خب تا اینجا یک شرطی بودن رو توضیح دادیم. حالا اگه علاوه بر موافقت دوستم، خوب بودن حال خودم هم بخواد یکی از شرط ها باشه، وارد یک مبحث دیگه میشه که بعدا بررسی می کنیم.
با چند تا مثال این مفهوم رو بیشتر کار کنیم:
مسئله اول تابع IF

در شکل ۱، اطلاعات فروش شعب یک فروشگاه زنجیره ای را داریم. می خواهیم مسئولین شعبه هایی که بیش از ۵۰۰ فروش داشتند را استخراج کنیم.
شکل۱- فرمول if در اکسل ، استخراج نام مسئولین شعبه های با فروش بالای ۵۰۰
تشریح آرگومان ها: آرگومان اول: شرط این است که ایا فروش بالای ۵۰۰ بوده یا نه.
IF(B2>500,C2,””)
آرگومان دوم: اگر شرط برقرار (فروش بالای ۵۰۰) باشد، نام مسئول فروشگاه به عنوان خروجی تابع نمایش داده شود.
IF(B2>500,C2,””)
آرگومان سوم: اگر شرط برقرار (فروش بالای ۵۰۰) نباشد، سل خالی بماند. که خالی بودن را بصورت “” در اکسل نمایش میدهیم.
IF(B2>500,C2,“”)
مسئله دوم تابع IF

در شکل ۲، اطلاعات فروش شعب یک فروشگاه زنجیره ای را داریم. میخواهیم اگر شعبه ای بیش از ۷۰۰ فروش داشته ۶۰% پورسانت و اگر زیر ۷۰۰ فروش داشته ۴۰% پورسانت دریافت کند.
شکل ۲- فرمول if در اکسل ، محاسبه پورسانت با شرط میزان فروش
تشریح آرگومان ها: آرگومان اول: شرط ما اینه که ببینیم آیا فروش هر شعبه بالای ۷۰۰ بوده یا نه:
IF(B2>=700,0.6*B2,0.4*B2)
آرگومان دوم: ۶۰ درصد فروش به عنوان پورسانت برای فروش های بالای ۷۰۰٫ بعبارتی، در بررسی شرط منطقی (فروش بالای ۷۰۰)، اگر برقرار (بزرگتر مساوی ۷۰۰) بود، پورسانت معادل ۶۰ درصد فروش محاسبه می شه.
IF(B2>=700,0.6*B2,0.4*B2)
آرگومان سوم: ۴۰ درصد فروش به عنوان پورسانت برای فروش های زیر ۷۰۰٫ بعبارتی، در بررسی شرط منطقی (فروش بالای ۷۰۰)، اگر برقرار (بزرگتر مساوی ۷۰۰) نبود، پورسانت معادل ۴۰ درصد فروش محاسبه می شه.
IF(B2>=700,0.6*B2,0.4*B2)
مسئله سوم تابع IF
تا اینجا مثال هایی که زدیم فقط روی اعداد بود. سوال اینجاست که آیا میتونیم روی کلمات هم شرط بنویسیم؟ جواب اینه که بله، کافیه که هر شرطی که مینویسیم، در نهایت به true/false ختم بشه. پس کافیه که بنویسیم مثلا A1=”تحویل داده شد” و بعد مابقی فرمول. به فرمول زیر دقت کنید.
=IF(A1=”تحویل داده شد”, “OK”, “Not Ok”)
در این فرمول اگر داخل سلول A1 عبارت تحویل داده شد نوشته شده باشه، عبارت Ok نمایش داده میشه و اگر این عبارت نوشته نشده باشه، Not Ok نمایش داده میشه. توجه داشته باشید که گزاره باید عینا نوشته شده باشه. مثلا اگر فقط “تحویل” نوشته شده باشه، شرط برقرار نیست. چون شرط بصورت کامل مود بررسی قرار میگیره. پس مراقب Space های اضافی هم باشید!
نکته: هر جمله، کلمه و یا عبارتی رو داخل فرمول میخواهیم بنویسیم، باید داخل “” قرار بدیم. در غیر اینصورت با خطا مواجه میشیم.
حالا موضوعی که پیش میاد اینه که اگر بخوایم بخشی از سلول رو مورد جستجو قرار بده چه باید بکنیم؟ مثلا اگر سلولی شامل عبارت تحویل بود، بهمون OK رو بده. حالا هر جمله و کلمه دیگه ای هم قبل یا بعدش بود باز هم خروجی صحیح باشه. برای این کار باید اول با استفاده از توابع دیگه وجود یک عبارت رو در یک سلول بررسی کنیم. برای این کار تابع Search/Find استفاده میکنیم. توضیحات و مثال بیشتر رو میتونید در مقاله مربوط به تابع Find مطالعه کنید.
برای حل این مسئله اول باید ببینیم آیا عبارت “تحویل” در سلول مورد نظر وجود داره یا نه. برای این کار از تابع Search/Find بصورت زیر استفاده میکنیم.
Search(“تحویل”,A1)
خروجی این تابع یا عدده یا خطا. اگه عدد بده، یعنی اون عبارت پیدا شده و وجود داره ،اگر خطای #Value بده، یعنی پیدا نکرده. از طرفی ما گفتیم که فرمولی که در شرط if نوشته میشه باید به true/False ختم بشه. پس این کافی نیست. ما باید با یک فرمول، عدد بودن خروجی تایع Search رو به true تبدیل کنیم. برای این کار از تابع isnumber استفاده میکنیم. این تابع هموطور که از اسمش پیداست، چک میکنه که ورودی مورد نظر عدد هست یا نه. اگر عدد باشه، True میده و اگر عدد نباشه False. پس فرمول رو بصورت زیر می نویسیم.
Isnumber ( Search (“تحویل”,A1))
خروجی این فرمول چیه؟ جلوی هر سلولی که شامل کلمه تحویل باشه، عبارت true نمایش میده و هر سلولی که این کلمه رو نداشته باشه، False نمایش میده. پس کافیه این فرمول به عنوان اولین آرگومان تابع if قرار بگیگره و مابقی آرگومان ها مثل فرمول قبلی، یعنی:
IF ( Isnumber ( Search (“تحویل”,A1)), “OK”, “Not Ok”)
تابع If اهمیت خیلی زیادی داره و هنر کاربران در اینه که بتونن مسائل منطقی خودشون رو به زبان اکسل تبدیل کنن. حالت ساده If (که خودش به تنهایی از اهمیت بسیار زیادی برخوردار هست) رو توضیح دادیم که در اون یک شرط رو بررسی کردیم. حالا برای حالت های مختلف مثلا بررسی بیش از یک شرط و اصطلاحا If های تو در تو یا Nested_If آموزش های بعدی را از دست ندهید. همچنین آموزش عملگرهای منطقی در اکسل رو هم بخون. ویدئو معرفی تابع IF این آموزش رو به صورت ویدئویی ببینید:





سلام
من یک جدول دارم که دارای دو ستون از اطلاعات متفاوت هست، به عنوان مثال:
* سلولهای ستون A شامل: “خانه” و “کار” هستند، (ارزشهای این ستون با محدودیت به همین ۳ ارزش تکرار میشوند)
* سلولهای ستون B شامل: ۵۰،۱۰۰،۲۰۰،۱۵۰،۱۰۰،۱۰۰۰،۲۰۰،۲۰۰۰ (ارزشهای این ستون با محدودیت ارزشهای بیشتر نسبت به ستون A، تکرار میشوند)
حالا در ستون C من میخوام فرمولی بنویسم که بتونم وضعیت هر دو ستون رو بخونه و نتیجهای رو نشون بده، مثلا:
اگر A1=”خانه” و B=100، نتیجه بشه: مهم
و
اگر A1=”کار” و B=100، نتیجه بشه: مهم
آیا برای این فرمول، نیاز به تابع IF یا IFS هست یا از توابع دیگه هم به صورت سادهتر استفاده کرد؟
سلام
تابع IF در ترکیب با توابع And و Or راه حل خوبی برای شما هست. مطلب زیر رو بخونید:
توابع چند شرطی And و Or
سپاسگذارم
سلام
میخام تو اکسل با توجه به عدد ورودی تعداد ردیف ایجاد بشه مثلاً وقتی عدد ۶رو وارد کنیم فقط ۶ردیف ایجاد بشه همینطور برا بقیه اعداد لطفاً راهنمایی کنید
درود بر شما
باید ماکرو ضبط کنید
ضبط ماکرو
سلام
من یه همچین فرمولی نوشتم
= IF( B2اگر در ستون B به طور مثال ۵:۵۰:۰۰ دقیقه رو وارد کنم جواب رو به درستی محاسبه نموده و ۱۰:۰۰ دقیقه میزنه ولی اگر ستون B خالی باشه بعد از محاسبه میزنه ۶:۰۰:۰۰ ساعت
میخوام یه شرط سوم بذارم که اگر ستون B خالی باشه صفر در نظر گرفته بشه و خونه فرمول نویسی شده بعد از محاسبه صفر قرار داده بشه
سلام
با فرض اینکه در سلول A1 نوشته شده ۶:۰۰:۰۰ , B2 هم ساعت مورد نظر نوشته شود
اگر شرط های دیگه هم دارید IF متداخل باید استفاده کنید،
https://excelpedia.net/nested-if-functions/
سلام
به این صورت نمیتونمفرمول رو وارد کنم
این برای ساعت کاری یه فروشگاه هستش
قرار هرکی زودتر از ۶ بیاد یه فرقی بکنه
سلول B2 ساعت ورود هستش و نمیشه جمله شرطی شما وارد بشه
و اگر ۰ قرار داده بشه ۱۲:۰۰:۰۰PM خونده میشه و برای محاسبه زمان ورود و خروج اشتباه میشه
باید یه فرمول دیگه نوشته بشه تا کم و کسری فرمول قبل که به این منوال
IF( B2<TIME(6,0,0),TIME(6,0,0)-B2,TIME(0,0,0))= هست بر طرف بشه
شرطی که شما داده بودید گفتید ستون b خالی باشه
اما الان کوچکتر گذاشتید.
اگ رمیخواید در صورتی که قبل از ۶ وارد شد اختلاف و نشون بده و بعد از ۶ وارد شد سلول رو خالی بذاره، tim(0,0,0) رو حذف کنید و بجاش ” ” بذارید.
اگر حل نشد سوال رو در گروه الگرامی مطرح کنید تا بیشتر بررسی بشه و منظورتون مشخص تر بشه
سلام
من واسه گیم سنترم ی تابع میخام که برام تعیین کنه از تاریخ شروع تا تاریخ پایان و بابت هر ساعت ی قیمت بپردازه
لطفا راهنمایی کنید
سلام
برای اینکه بتونید محاسبات مربوط به زمان رو درست انجام بدید باید اصول اکسل در این مورد رو بدونید. مطالب زیر رو حتما مطالعه کنید:
مفهوم تاریخ در اکسل
تاریخ شمسی در اکسل
از توضیحاتتون تشکر می کنم
ممنون میشم برای این سوال من راه حلی پیدا بشه
سلام وقتتون بخیر
از اطلاعاتی ک گزاشتین ممنون
سوالی داشتم
۶سلول دارم A1;A2;A3;B1;B2;B3
A1وA1 تاریخ شمسی
B1وB2 محمد و علی
C1وC2 * و #
میخواهم
اگر دو سلول B1وB2 یکی بود : اگر A1 بزرگ تر بود C3 و اگر A2 بزرگتر بود C2 نمایش داده شود
اگر محمد بود سلول سوم همان ردیف نمایش داده شود(اگر B2محمد بود سلول C2 نمایش داده شود و بالعکس)
سلام
سوال شما ۲ بعد داره
یکی بحث تاریخ شمسی که اگر میخواید با هم مقایسه کنید باید خاصیت عدددی داشته باشه. اول حتما لینک زیر رو بخونید
https://excelpedia.net/excel-jalali-date/
بعد هم برای سوالتون از if تودر تو بصورت ترکیبی و and / or استفاده کنید.
https://excelpedia.net/nested-if-functions/
https://excelpedia.net/and-or-function/
ممنونم از توضیحات کامل شما…سوالی که منو درگیر کرده و هیچ جا جوابی ندیدم براش اینه که من تابع if رو نوشتم ولی میخوام این شرط رو برقرار کنم که اگر این شرط برقرار نبود این عبارت را بنویس و سلول را قرمز کن و اگر برقرار بود این عبارت رو بنویس و سلول را سبز کن.ممنون میشم پاسخ سوالم رو بدین.
ببینید برای اینکار ۲ تا مرحله دارید
یعنی نوشتن یک عبارت خاص بر اساس یک شرط بوسیله If انجام میگیره.
قرمز و سبز کردن هم توسط Conditional formatting
پس داخل سلول If می نویسید و عبارت مورد نظر رو درمیارید.
بعد روی همون سلول از conditional formatting شرطی م ینویسید که اگه شرط برقرار بود قرمز بشه.
یک شرط هم می نویسید که اگه برقرار نبود سبز باشه…
سلام من تو یک شیت ۲تا فرمول دارم با یک داده چطور میتونم مشخص کنم که اگر داده ورودی کمترا ز۳ بود از فرمول اول استفاده بشه و اگر بیشتر از ۳ بود از فرمول دوم؟
سلام
تو قسمت اول تابع IF شرط بررسی داده ورودی رو بنویسد، در قسمت دوم فرمول اول و در قسمت سوم، فرمول دوم رو بنویسید:
این مطلب به صورت مفصل در این آموزش مطرح شده
متشکرم جناب مهندس
عرض سلام و خسته نباشید .
اگر بخوایم چن متغیره بنویسیم باید چیکار کنیم ؟
مثلا اگه b5 تو اکسل ، حرف l بود ، مثلا c2 بشه a*70
اگه m بود بشه a*100
و اگه d بود بشه a*150
از IFهای تو در تو میتونید استفاده کنید.
مطلب زیر رو ببینید:
توابع IF تو در تو و نکات مهمی که باید بدانید
خیلی ممنون آقای چراغی
با توجه به وقت کمی که داشتم خودم با کمی کنکاش و جستجو در منابع مختلف به جواب سوال رسیدم و موضوع را حل کردم .
از اینکه حضرتعالی هم با حوصله پاسخ بنده را دادید و همچنین لینک آموزش این مبحث را ارائه نمودید ممنون و سپاسگذارم
با عرض سلام و خسته نباشید
من قصد ارزیابی مجموعه ای رو دارم ؛ میخوام بعد از اینکه ارزیابی انجام میشه و شخص یا اون مجموعه نمره یا معدلی که میگیرن با توجه به نمره کسب شده یک عنوان براشون در سلول مقابل زده بشه .
بازه نمرات به این شکل است :
از ۹۰ تا ۱۰۰ براشون زده بشه عالی
از ۷۵ تا ۸۹ زده بشه خوب
از ۵۰ تا ۷۴ زده بشه متوسط
سلام
پیشنهادم استفاده از vlookup بازه ای هست. پست زیر رو به دقت در این مورد بخونید:
https://excelpedia.net/vlookup-interval-search/