سبد خرید
0

محصولی در سبد خرید نیست.

بازگشت به فروشگاه

تابع IF | پایه فرمول نویسی منطقی اکسل

۳.۱/۵ - (۱۵۳ امتیاز)

آشنایی با فرمول IF در اکسل

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

Logical_Test:

شرط ماست. همونی که میگیم اگه این اتفاق افتاد. مثلا همینکه اگر دوستم باهام بیاد، شرط ماست.

value_if_True: خروجی فرمول در صورتی که شرط برقرار بشه. مثلا اگه دوستم بیاد، میرم پارک. پارک رفتن Value true ماست.

value_if_False: حالا اگه شرط برقرار نشد چی؟. این آرگومان خروجی تابع در صورت برقرار نبودن شرطه. یعنی اگه دوستم نیومد، میرم خونه.

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

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

با چند تا مثال این مفهوم رو بیشتر کار کنیم:

مسئله اول تابع IF

تابع IF اکسل - مثال اول

در شکل ۱، اطلاعات فروش شعب یک فروشگاه زنجیره ای را داریم. می خواهیم مسئولین شعبه هایی که بیش از ۵۰۰ فروش داشتند را استخراج کنیم.

شکل۱- فرمول if در اکسل ، استخراج نام مسئولین شعبه های با فروش بالای ۵۰۰

تشریح آرگومان ها: آرگومان اول: شرط این است که ایا فروش بالای ۵۰۰ بوده یا نه.

IF(B2>500,C2,””)

آرگومان دوم: اگر شرط برقرار (فروش بالای ۵۰۰) باشد، نام مسئول فروشگاه به عنوان خروجی تابع نمایش داده شود.

IF(B2>500,C2,””)

آرگومان سوم: اگر شرط برقرار (فروش بالای ۵۰۰) نباشد، سل خالی بماند. که خالی بودن را بصورت “” در اکسل نمایش میدهیم.

IF(B2>500,C2,“”)

نکته: آرگومان ها در توابع منطقی می توانند خود ترکیب توابع و فرمول های زیادی باشند. مهم این است که شرطی که داخل فرمول می نویسیم، به گزاره true/false ختم شود.

مسئله دوم تابع IF

تابع 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)

نکته: دقت کنیم که فرمول رو برای یک داده ثبت میکنیم و بعد Drag میکنیم.
 

مسئله سوم تابع 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 این آموزش رو به صورت ویدئویی ببینید:

 

کلیدواژه : مقدماتی
134

من سامان چراغی هستم. دانش آموخته مقطع فوق لیسانس دانشگاه تربیت مدرس در رشته مهندسی صنایع. از سال 1388 اکسل و برنامه نویسی VBA رو به صورت حرفه ای شروع کردم.

دیدگاه کاربران
  • سامان چراغی ۲۹ آذر ۱۳۹۶ / ۷:۵۱ ب٫ظ

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

    IF((K3-L3)<10000,0,K3-L3)
    

    فرمول دیگه هم میتونه این باشه:

    (K3-L3<10000)*(K3-L3)
    
  • mNm ۲۹ آذر ۱۳۹۶ / ۶:۳۷ ب٫ظ

    سلام
    من میخوام یه فرمول داخل سلول m3 بنویسم که اگر حاصل منهی K3 و L3 کوچیکتراز ۱۰۰۰۰ بود داخل سلول m3 نوشته شه ۰ و اگر بزرگتر بود هر عددی که از حاصل اون منهی به دست اومده نوشته شه
    میشه لطف کنید و این فرمول رو واسم بنویسید
    ممنون میشم زود جواب بدید

    • آواتار
      حسنا خاکزاد ۲۹ آذر ۱۳۹۶ / ۷:۵۳ ب٫ظ

      سلام

      =if(K3-L3<10000,0,K3-L3)
      
  • بابک ۲۸ آذر ۱۳۹۶ / ۱:۴۴ ب٫ظ

    باسلام و خسته نباشید میخواستم در مورد یه فرمول راهنماییم کنید
    اگر ما دو شیت مثل هم داشته باشیم اما بعضی سطزهاش با هم فرق داشته باشند
    بعنوان مثال بخواهیم بگیم که اگر مبلغ ستون a شیت ۱ با مبلغ ستون a شیت ۲ باهم برابر باشند مبلغ ستون b شیت ۱ رو در ستون c شیت ۲ بگذار در غیر اینصورت ۰ بگذار چه تابعی مینویسیم
    با تشکر از راهنماییتون

    • آواتار
      حسنا خاکزاد ۲۸ آذر ۱۳۹۶ / ۳:۴۷ ب٫ظ

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

      https://excelpedia.net/compare-lists/

  • صفرزاده ۱۵ آذر ۱۳۹۶ / ۴:۴۱ ب٫ظ

    سلام . این فرمول رو نوشتم ( البته با کمک آموزشی ) لذا یه چیزی دیگه میخوام اضافه کنم که راه حلش رو بلد نیستم . لطفا کمکم کنید .
    ((“IF(M47>=160;”100″;IF(AND(M47=155);”95”;”90
    در حال حاضر مسئله به این شکل است
    اگر مقدار سلول M47 مساوی یا بیشتر از ۱۶۰ شد نتیجه می شود ۱۰۰ .
    اگر مقدار سلول M47 کمتر از ۱۶۰ و بیشتر ۱۵۵ شد نتیجه می شود ۹۵ و در غیر اینصورت ( کمتر از ۱۵۵ ) می شود ۹۰ .

    لذا سوال اینجاست که ؟؟؟ : چطور می شود کاری کنیم که
    اگر مقدار سلول M47 مساوی یا بیشتر از ۱۶۰ شد نتیجه بشود ۱۰۰ .
    اگر مقدار سلول M47 کمتر از ۱۶۰ و بیشتر یا مساوی ۱۵۵ شد نتیجه بشود ۹۵ .
    اگر مقدار سلول M47 کمتر از ۱۵۵ و بیشتر یا مساوی ۱۵۰ شد نتیجه بشود ۹۰ .
    اگر مقدار سلول M47 کمتر از ۱۵۰ و بیشتر یا مساوی ۱۴۵ شد نتیجه بشود ۸۵ .

  • رمضان نامدار ۳ آذر ۱۳۹۶ / ۳:۵۶ ب٫ظ

    با سلام و خسته نباشید
    چهار ستون b , c , d , e داریم
    الف ) اگر b>c باشد آنگاه
    d>b آنگاه e=0 هست و
    اگر d<c باشد آنگاه e=100 هست و
    اگر c<d<b باشد آنگاه e=[(b-c)/(d-c)]*100

    ب ) اگر b<c باشد آنگاه
    dc باشد آنگاه e=100 هست و
    اگر b<d=b آنگاه e=0 هست و
    اگر d<b باشد آنگاه e=(d/b)*100

    چگونه می توان این شرط را در اکسل برقرار کرد ؟
    با تشکر

    • آواتار
      حسنا خاکزاد ۳ آذر ۱۳۹۶ / ۸:۵۱ ب٫ظ

      سلام
      ی مقدار شرط ها درست نوشته نشده. برای قسمت الف، بعد از آناه دوباره شرط آوردید. اگر منظور اینه که b>c و d>b انگاه e=0 باشه. یعنی در واقع d>b>c
      با فرض اینکه C1=c, B1=b,D1=d باشه این میشه:

      =IF(AND(B1>C1,D1>B1),0,IF(D1C1,B1>D1),((B1-C1)/(D1-C1))*100,"")))
      

      اگر به هدف نرسیدید. سوالتون و در سوپر گروه اکسل پدیا مطرح کنید. تا امکان توضیح دادن بیشتر وجود داشته باشه.
      لینک گروه در پایین صفحه اصلی وجود داره

  • قاصدک ۲۷ آبان ۱۳۹۶ / ۱:۲۷ ب٫ظ

    سلام
    توی اکسل این قابلیت وجود داره که بگیم از این دوتا سلول، فقط یکیش میتونه پر باشه؟یعنی اگر مثلا A1 مقدار گرفت، دیگه A2 مقدار قبول نکنه؟؟؟؟؟؟؟؟؟)
    اگر میشه، لطفا راهنمایی کنید.

    • آواتار
      حسنا خاکزاد ۲۷ آبان ۱۳۹۶ / ۳:۴۰ ب٫ظ

      سلام
      بله
      محدوده A1:B1 رو انتخاب کنید و از دیتا ولیدیشن قسمت Custom این فرمول رو بنویسید:

      COUNTA($A1:$B1)=1=
      بعد انتقال بدید به ردیف های پایین تر

      برای اشنایی بیشتر با دیتا ولیدیشن لینک زیر رو بخونید:
      https://excelpedia.net/excel-data-validation/

  • پویا ۲۱ آبان ۱۳۹۶ / ۱۲:۵۶ ب٫ظ

    سپاس بابت مطالب مفید

  • طیبه ۱۸ مهر ۱۳۹۶ / ۵:۴۸ ب٫ظ

    با سلام اگر بخواهیم تعداد مختلف افراد یک منطقه رو تو فرمول محاسبه کنیم چجوریه؟مثلا بگیم اگر توی ستون f کلمه بوستان رو پیدا کردی تعداد افرادی که توی ستون aمقابل بوستان هستن رو بدون تکرار نمایش بده

    • سامان چراغی ۳۰ مهر ۱۳۹۶ / ۱۱:۰۵ ق٫ظ

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

      =SUMPRODUCT(($A$1:$A$13="Boostan")*1,1/COUNTIFS($F$1:$F$13,$F$1:$F$13,$A$1:$A$13,"Boostan"))
      
  • زهرا ۱۴ مهر ۱۳۹۶ / ۲:۳۹ ب٫ظ

    سلام میشه برنامه ی شرط تبدیل حروف به اعدادوبالعکس راتوضیح دهید

    • آواتار
      حسنا خاکزاد ۱۵ مهر ۱۳۹۶ / ۱۰:۳۳ ق٫ظ

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

      موفق و پیروز باشید

  • TT ۳ مهر ۱۳۹۶ / ۱۲:۲۳ ب٫ظ

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

    • سامان چراغی ۳ مهر ۱۳۹۶ / ۱۲:۴۰ ب٫ظ

      سلام
      فرقی نمیکنه که شرط شما یک عدد هست یا عبارت.
      در اینجا از مثال عددی استفاده شده، شما میتونید در قسمت شرط تابع If به جای عدد، عبارت متنی خودتون رو بذارید.
      فقط فراموش نکنید که این عبارت باید بین دو تا ” قرار بگیره:

      =IF(B2=”Ali”,0.6*B1,”OK”)

      • TT ۳ مهر ۱۳۹۶ / ۵:۳۳ ب٫ظ

        باسپاس فراوان

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

توسط
تومان