سبد خرید
0

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

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

تابع چند شرطی And و Or

تابع چند شرطی در اکسل
۴.۹/۵ - (۳۶ امتیاز)

در هنگام حل مسائل در اکسل، معمولا با شروط زیادی سر و کار داریم. به همین دلیل نیاز هست که بدونیم این شروط رو چطور در حل مسائل در نظر بگیریم. از این رو تابع چند شرطی در اکسل که بتواند این شروط رو برای ما تعریف کنه در حل این مسائل اهمیت زیادی داره.

در پست قبلی به توابع انتخاب و تصمیم گیری در اکسل اشاره کردیم که به آنها توابع منطقی یا Logical گفته میشه. اصلی ترین و پرکاربردترین تابع در این دسته توابع، If است. این تابع حالت های مختلفی داره که حالت ساده اون در واقع بررسی یک شرط و داشتن یک خروجی متناسب با شرط رو بررسی کردیم. حالا در این آموزش میخواهیم به بررسی حالت چند شرطی توابع منطقی بپردازیم. برای بررسی چند شرط بصورت همزمان از توابع AND و OR استفاده میکنیم که در واقع بجای آرگومان اول تابع IF یا همون Logical_Test قرار میگیرن. مثلا در آموزش قبلی مثال زدیم و گفتیم اگه اگه حالم خوب باشه و دوستم موافق باشه، به پارک میرم در غیر اینصورت میرم خونه. همونطور که مشاهده می کنید، خوب بودن حال شخص و موافقت دوست، دو شرطی است که باید حتما برقرار باشه تا عمل پارک رفتن اتفاق بیفته. در غیر اینصورت (حتی اگه یکی از شرط ها برقرار نباشه یعنی یا حال طرف خوب نباشه یا دوست موافق نباشه، شرط برقرار نیست) طرف به خونه میره.

تشریح آرگومان های تابع And و Or:

آرگومان های این دو تابع و نوع کاربرد آنها یکسان است.

Logical1: یکی از شروط است. در مثال بالا، خوب بودن حال شخص.

Logical2: شرط بعدی هست. در مثال بالا موافقت دوست شخص برای رفتن به پارک.

همونطور که می بینید از آرگومان دوم، همگی در [ ] قرار می گیرند. که اجباری نبودن این آرگومان رو نشون میده. در این تابع از ۱ تا ۲۵۵ شرط رو میتونید بررسی کنید.

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

مسئله اول: تعیین مسئولین شعب با استفاده از تابع چند شرطی در اکسل

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

تابع چند شرطی در اکسل - اطلاعات اساسی

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

تشریح آرگومان ها:

آرگومان اول: تابع AND در آرگومان اول قرار گرفته که بتونه هر دو شرط رو بررسی کنه. هر کدوم از شروط ما یعنی فروش بالای ۵۰۰ و فروش بیش از میانگین کل فروش، به عنوان دو آرگومان تابع AND قرار می گیرند و کل تابع AND به عنوان Logical_Test تابع IF در نظر گرفته می شود.

=IF(AND(B2>500,B2>AVERAGE($B$2:$B$10)),C2,””)

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

=IF(AND(B2>500,B2>AVERAGE($B$2:$B$10)),C2,””)

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

=IF(AND(B2>500,B2>AVERAGE($B$2:$B$10)),C2,“”)

نکته:
ساختار و نوع کاربرد توابع AND و OR دقیقا مشابه هم هستند و فقط مفهوم آنها متفاوت است. در تابع OR (به معنی یا)، حداقل یکی از شرایط برقرار باشد، خروجی نهایی تابع، True هست. در تابع AND (به معنی و)، همه شروط باید برقرار باشند تا نتیجه True باشد. یکی از شروط هم برقرار نباشد، خروجی تابع AND ، False خواهد بود.

 

نحوه عملکرد فرمول رو در زیر مشاهده میکنید:

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

همونطور که مشاهده میکنید، هر دو شرط True هستند. پس خروجی نهایی تابع AND نیز به منزله برقرار بودن شرط تلقی می شود.

تابع If اهمیت خیلی زیادی داره و هنر کاربران در اینه که بتونن مسائل منطقی خودشون رو به زبان اکسل تبدیل کنن. حالت ساده If (که خودش به تنهایی از اهمیت بسیار زیادی برخوردار هست) رو توضیح دادیم که در اون یک شرط رو بررسی کردیم. سپس بررسی شروط مختلف رو از طریق توابع AND و OR رو بحث کردیم. در آینده نیز بررسی شروط چند گانه به همراه خروجی های چندگانه، اصطلاحا If های تو در تو یا Nested_If را مورد بحث قرار میدهیم.

 

دانلود فایل تابع چند شرطی در اکسل

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

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

دیدگاه کاربران
  • فرهاد ۷ تیر ۱۴۰۳ / ۴:۱۵ ب٫ظ

    سلام‌
    دنبال فرمولی هستم که مثلا
    اگر مجموع چند عدد بیشتر از ۵۰ باشد همان ۵۰ رو نشان بدهد ولی اگر کمتر از ۵۰ باشد جمع واقعی عدد را، مثلا اگر مجموع ۶۰ باشد عدد ۵۰ را نشان بدهد و اگر مجموع اعداد ۴۰ باشد همان جمع واقعی یعنی ۴۰ را نشان بدهد، ممنون‌میشم راهنمایی بفرمایید

    • آواتار
      حسنا خاکزاد ۸ تیر ۱۴۰۳ / ۸:۱۴ ب٫ظ

      درود
      با if میتونید انجام بدید
      =if(sum(….) >۵۰, ۵۰, sum(….))

  • س ۲۵ مهر ۱۴۰۲ / ۵:۴۰ ب٫ظ

    سلام
    من یه سوال دارم
    می خوام مقدار ۱۰۰۰ تن رو به ۲۵۰ ردیف تقسیم کنم که بین ۴ تا ۶ تن باشه و تکراری هم نباشه جمعش هم ۱۰۰۰ تن باشه
    مثلا ۴.۱
    ۴.۳
    ۴.۶
    ۴.۵
    ۴.۲
    ۴.۴
    ۵
    ۴.۹
    چه جوری می تونم اجرا کنم؟

    • سامان چراغی ۱۲ فروردین ۱۴۰۳ / ۱۰:۵۳ ق٫ظ

      درود
      از فرمول زیر استفاده کنید:
      =MAX(MIN(RAND()*4+2,1000-SUM($A$1:A1)),0)

  • محمد ۳۱ مرداد ۱۴۰۲ / ۳:۰۵ ق٫ظ

    درود
    من فرمولی نیاز دارم که میانگین چند سلول را بگیرد و مثلاً اگر بین ۲ تا۳ شد جواب را در ۵ ضرب کند و اگر بین ۴ تا ۵ شد جواب را ۶ ضرب کند لطفا راهنمایی کنید

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

      درود بر شما
      براحتی با if میتویند انجام بدید
      =if(And(average(…)>۲,average(….)<3),average(....)*5,average(....)*6)
      فرض اینه که جواب یا بین ۲و ۳ اس یا ۴و۵
      اگر نیست باید ایف تو در تو رو با همین منطق ایجاد کنید

  • صادق ۱۶ مرداد ۱۴۰۲ / ۱۰:۲۸ ب٫ظ

    سلام
    یه سوالی داشتم
    من دوتا ستون دارم ستون a و b با اعداد تصادفی (بطور مثال اعداد یک، دو و سه) که در ۵ ردیف کنار هم هستند.
    میخواستم ببینم چند ردیف تکراری با عدد ۲ از ستون a و عدد ۱ از ستون b وجود داره
    ممنون میشم راهنمایی بفرمایید

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

      درود
      دقیقا متوجه نشدم
      ولی فکر کنم با countifs جواب بگیرید
      اگر منظور اینه که ببینید چند بار عدد ۱ و ۲ کنار هم تکرار شدن اینو باید بنونیسید:
      =countifs(A1:A10,2,B1:B10,1)

      • صادق ۱۸ مرداد ۱۴۰۲ / ۹:۵۲ ق٫ظ

        خیلی ممنون از راهنماییتون

      • صادق ۱۸ مرداد ۱۴۰۲ / ۱۱:۱۴ ق٫ظ

        یه سوال دیگه داشتم ممنون میشم اگر میتونید کمک بفرمایید
        یه ستون با اعداد ، ۱، ۲ ، ۳ ،۳، ۳ و ۴ دارم.(چهار عدد در شش ردیف)
        یه فرمول میخوام بدون در نظر گرفتن مورد تکراری که دو یا سه بار تکرار شده تعداداعداد رو مشخص کنه، در مثال بالا شمارش اعداد ستون من ۴ بشه
        ممنون

        • آواتار
          حسنا خاکزاد ۱۸ مرداد ۱۴۰۲ / ۱۱:۲۰ ق٫ظ

          درود
          خدمت شما:
          اگر ۲۰۲۱ دارید:

          =COUNT(UNIQUE(A1:A13))
          

          اگر قبل ۲۰۲۱ دارید:(با ctrl Shift Enter)

          =SUM(1/COUNTIF(A1:A13,A1:A13))
          
  • محمد ۱۲ تیر ۱۴۰۲ / ۶:۲۱ ب٫ظ

    سلام، عرض ادب و احترام
    سوال من در مورد تعیین بازه برای OR (یا AND) هست، فرضا میخوام بگم از A1 تا A100 اگر حتی یک گزینه هم True بود نتیجه رو True کن، منتها چونن بازه بزرگه نمی تونم دونه به دونه بنویسم
    فرمول زیر رو می نویسم ولی فقط اولین سلول از بازه رو ملاک قرار میده
    or(A1:A100,)
    سپاسگزارم از لطفتون

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

      درود
      چه داده ای داخل ستون هست؟
      چون مهمه برای تعیین فرمول
      اگر مثلا متنه، میتونید با countif مثلا بگید اگر تعداد فلان کلمه ۱ بود، یعنی حداقل یکیش برقراره
      یا اگه true/false هست، مثلا میتونید sum اون ستون رو بگیرید
      بستگی به دیتا داره

  • مهدی ۱۷ خرداد ۱۴۰۲ / ۹:۰۹ ب٫ظ

    سلام و عرض ادب
    ببخشید می خواستم یک شرط بین دو عدد بنویسم (مثلا اگر عددی بزرگتر از ۱۰ و کوچکتر از ۱۵ باشد) میشه کمکم کنید
    اگر در a1 عددی باشد از ۱۰ بزرگتر و از ۱۵ کوچکتر بیاد و b1 جمع بشه با c1 در غیر اینصورت باشه ۰ ممنون میشم کمکم کنید

    • آواتار
      حسنا خاکزاد ۲۰ خرداد ۱۴۰۲ / ۸:۴۸ ق٫ظ

      درود بر شما

      =IF(and(a1>10,a1<15),b1+c1,0)
      
  • احمد ۱۴ خرداد ۱۴۰۲ / ۱۲:۳۵ ب٫ظ

    با عرض سلام خدمت اساتید گرامی یه سوال داشتم خدمت شما:
    میخوام به ازا هر روز مثلا ساعت سیستم که به‌ ۱۲ شب رسید به اندازه ۲۰ واحد از کل (مثلا از ۱۰۰۰) کم بشه لطفا راهنمایی کنید

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

      درود
      هر ۲۴ ساعت یک روزه و معادل عدد ۱
      کافیه که ضرب در ۲۰ کنید
      مثلا تاریخ امروز رو منهای دو روز قبل کنید
      میشه ۲
      ۲*۲۰ میشه ۴۰

      شما هم میواید هر ۱۲ شب به ۱۲ شب یعنی (یک روز کامل) کم کنید

  • سجّاد ۲۲ فروردین ۱۴۰۲ / ۱:۱۳ ب٫ظ

    سلام. وقت بخیر.
    دو تا شیت در یک اکسل دارم. میخوام وقتی عددی در یک سلول(مثلاََ A5) از شیت ۱ می نویسم، آن را با تمامی داده های ستون A از شیت ۲ مقایسه کنه و فقط اگر مقدارشون برابر بود، مقدار همون ردیف از شیت ۲ ولی از ستون B رو که عدد هم داره برام نشون بده.

    • آواتار
      حسنا خاکزاد ۲۵ فروردین ۱۴۰۲ / ۶:۱۲ ب٫ظ

      درود
      بنظر میرسه جواب سوال شما vlookup باشه
      میتونه بره کل ستون رو سرچ کنه و پیدا کنه و مقدار متناظر رو برداره بیاره

  • صمد داوری ۱۲ فروردین ۱۴۰۲ / ۱:۲۰ ب٫ظ

    سلام خسته نباشید. سال نو مبارک
    بی زحمت یک سوال داشتم. من میخواستم با دابل کلیک کردن در سلول های ستون یک شیت علامت تیک بیوفته. اینکار را با کد زیر برای یک ستون انجام داده ام ولی نمیدانم برای اینکه اینکار را برای چند ستون همان شیت انجام بدم چه تغییراتی بدم. ممنون میشم اگه راهنماییم کنید.
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Column = 2 Then
    Cancel = True
    Target.Font.Name = “Wingdings”
    If Target.Value = “” Then
    Target.Value = “ü”
    Else
    Target.Value = “”

    End If
    End If
    End Sub
    عدد ۲ شماره ستون هست(B)

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

      درود، سال نو شما هم مبارک
      کافیه شرطتون در ساختار IF اصلاح بشه:
      If Target.Column = 2 And Target.Column = 3 Then

ارسال دیدگاه

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

توسط
تومان