در اپلیکیشن تحت وب Google Sheets و Excel مجموعهی آفیس مایکروسافت است میتوان از دستورات شرطی مثل IF و AND و OR استفاده کرد و فرمولهای پیچیدهای نوشت.
به عنوان مثال اگر مقدار دو سلول، عدد خاصی بود، در سلول دیگری محاسبات خاصی انجام شود که این کار با تابع AND صورت میگیرد. مثال دیگر این است که اگر مقداری یک سلول عدد خاصی بود یا مقدار سلول دیگری عدد دلخواهی بود، در سلول سوم، محاسبهای انجام شود و این کار با استفاده از تابع OR انجام میشود.
در ادامهی مطلب به معرفی مهمترین توابع شرطی در اکسل و گوگل شیتس یعنی IF و AND و OR میپردازیم. با ما باشید.
آشنایی با دستور شرطی IF در برنامهنویسی اکسل و گوگل شیتس
استفاده از دستورات شرطی بسیار ساده است و کاربرد فراوانی در اکسل مایکروسافت و Sheets گوگل دارد. توابع شرطی مفهوم ساده و روشنی دارند و حتی سینتکس سادهای دارند که البته قابل توسعه است و میتوان در فرمولهای پیچیدهای از آنها استفاده کرد.
از یک مثال بسیار ساده شروع میکنیم: فرض کنید که قرار است در سلولهای ستون B، عبارت فروش صفر است و فروش صفر نیست را بسته به مجموع فروش در روزهای مختلف که در ستون A ذکر شده، چاپ کنید. برای این کار میتوانید از دستور IF استفاده کنید که سینتکس آن در حالت کلی به صورت زیر است:
IF(logical_test,[value_if_true],[value_if_false])
داخل پرانتز ۳ عبارت که با ویرگول جدا شدهاند، لازم است. عبارت اول همان تست منطقی است، عبارت دوم زمانی محاسبه و چاپ میشود که عبارت تست منطقی صحیح باشد و عبارت بعدی هم در حالت نادرست بودن عبارت تست منطقی محاسبه و چاپ میشود.
خوشبختانه حین تایپ کردن فرمولها و توابع در سلولهای اکسل، توضیحات و راهنمای خلاصه به صورت کادر کوچک نمایش داده میشود:
بنابراین برای این سوال و نیاز خاص، یک رابطهی بسیار ساده خواهیم داشت. در ستون B و اولین سلول، این رابطه را قرار میدهیم:
=IF(A1=0,"sum:فروش صفر است","sum:فروش صفر نیست")
اکنون میتوانید روی اولین سلول ستون B کلیک کنید تا انتخاب شود و سپس مربع کوچک گوشهی پایین را با کلیک و حرکت موس به سمت پایین، درگ کنید تا فرمول در سلولهای بعدی کپی شود.
حال اگر در سلولهای ستون A عددی به جز صفر تایپ کنید، عبارت Sum:فروش صفر نیست را در سلول مجاور از ستون B مشاهده میکنید.
فرمول مشابه این است که اگر مقدار سلول A1 بیش از عددی مثل ۱۰۰ بود، در سلول B1 عبارت Pass درج شود و در غیر این صورت عبارت Failed یا ردشده درج شود:
=IF(A1>100,"Pass", "Failed")
این مثالهای بسیار ساده، برای نمایش کاربری IF است ولیکن کاربران حرفهای اکسل، با تابع IF فرمولها و روابط پیچیدهای مینویسند که امور پیچیده که باید به صورت دستی انجام شود را به صورت خودکار، دقیق و سریع انجام میدهد. به عنوان مثال فرض کنید که میخواهید در صورت بزرگتر از ۱۰۰ بودن مقدار سلول A1، در سلول B1 عبارت ۲۰ ضربدر A1 درج شود و در غیر این صورت عبارت ۵۰ در C1 محاسبه و چاپ شود. در واقع محاسبه با دادههای محدود به سلولهای ستون A نیست. از این دستور ساده استفاده کنید:
=IF(A1>50,A1*20, D1*10)
در فرمول فوق از سلولهای یک ردیف استفاده شده اما محدود به سلولهای مجاور یا در یک ردیف نیستید بلکه میتوانید سلولی از ردیفهای بالاتر یا پایینتر را هم استفاده کنید.
توجه: اگر فرمولهایی مثل A1*10 را داخل دابلکوتیشن یا " " قرار دهید، دقیقاً همان عبارت چاپ میشود و محاسبهای صورت نمیگیرد.
دقت کنید که نباید از دستور IF برای مقایسه کردن مقدار یک سلول با دو عدد در Excel مجموعهی آفیس مایکروسافت یا Google Sheets استفاده کنید. به عنوان مثال اگر بخواهید بررسی کنید که مقدار سلول E5 کمتر از D5 و بیشتر از F5 است یا خیر، و در صورت صحیح بودن این دو شرط، عبارت Pass چاپ شود، میتوانید فرمول زیر را استفاده کنید:
=IF(D5>E5>F5,"Pass","Failed")
اما همانطور که در مثال زیر مشاهده میکنید، نتیجهی این دستور شرطی به صورت اشتباه محاسبه و چاپ میشود:
برای مقایسه کردن دو مقدار از دو سلول مختلف و محاسبات شرطی، میتوانید از توابع AND یا OR استفاده کنید.
آموزش استفاده از تابع شرطی AND
سینتکس کلی استفاده از تابع "و" یا همان AND انگلیسی بسیار ساده است و تنها دو شرط یا عبارت که با ویرگول شده در آن قرار میگیرد. تابع AND در صورتی که هر دو شرط داخل پرانتز برقرار و صحیح باشد، مقدار TRUE یا درست را برمیگرداند و اگر حتی یکی از شرطها اشتباه و نادرست باشد، مقدار FALSE را برمیگرداند.
با توجه به اینکه عدد ۱ معادل TRUE است، مقدار خروجی هر سه دستور زیر، عبارت TRUE خواهد بود:
=AND(TRUE, TRUE)
=AND(1, TRUE)
=AND(TRUE, 1)
و خروجی سه دستور زیر عبارت FALSE است:
=AND(FALSE, TRUE)
=AND(0, TRUE)
=AND(TRUE, 0)
البته میتوانید True را با حروف کوچک هم تایپ کنید. به علاوه تابع AND میتواند سه عبارت و بیشتر را نیز بررسی کند و در صورت صحیح بودن تمام عبارتهای شرطی، مقدار TRUE را برمیگرداند. لذا خروجی فرمول زیر، TRUE است:
=AND(TRUE, 1, True,true)
به مثال قبلی که با تابع IF به پاسخ اشتباه رسیدیم، برمیگردیم. اگر بخواهید بررسی کنید که مقدار یک سلول، بین دو مقدار دیگر در دو سلول مجاور است، میتوانید از تابع AND استفاده کنید و دو مقایسه انجام بدهید:
=AND(E5>F5, D5>E5)
همانطور که در تصویر زیر مشاهده میکنید، این بار اگر مقدار سلول ستون E بین دو مقدار موجود در ستون F و D باشد، نتیجه TRUE است و در غیر این صورت FALSE است.
آموزش استفاده از تابع شرطی OR
تابع پرکاربرد دیگر در مقایسههای شرطی، تابع OR است که معادل "یا" بوده و زمانی که حداقل یکی از عبارتهای شرطی صحیح باشد، خروجی TRUE را برمیگرداند و در صورتی که تمام موارد غلط باشد، مقدار خروجی آن، FALSE خواهد بود.
بنابراین خروجی فرمول زیر، TRUE است:
=OR(TRUE,FALSE,TRUE)
استفادهی ترکیبی از IF و AND و OR
همانطور که در توضیح عملکرد OR و AND بررسی کردیم، خروجی این توابع فقط TRUE و FALSE است و نمیتوان در صورت صحیح بودن یا نادرست بودن مجموعهای از عبارتهای منطقی، محاسبهای را انجام داد و خروجی را چاپ کرد. اما اگر در کنار IF از این توابع استفاده شود، این کار بسیار ساده خواهد بود.
به عنوان مثال فرض کنید که میخواهید اگر مقدار سلولی از ستون B بین مقدار سلولهای ستون A و C بود، ۱۰۰ برابر عدد موجود در سلول ستون B محاسبه و استفاده کنید. در این صورت میتوانید از رابطهی زیر در سلولهای ستون D استفاده کنید:
=IF(AND(B1>A1, C1>B1),10*B1,Failed)
همانطور که میبینید در فرمول فوق، مقدار سلول B باید بیشتر از سلول A و کمتر از سلول ستون C باشد. اگر بخواهید حالت برعکس هم صحیح محسوب شده و محاسبه انجام شود، میتوانید دو تابع AND را درون یک تابع OR استفاده کنید:
=IF(OR(AND(B1>A1, C1>B1),AND(B1<A1, C1<B1)),10*B1,Failed)
به همین صورت میتوانید مقدار چندین سلول دیگر را با سایر سلولها مقایسه کرده و دستور شرطی طولانی و پیچیدهای برای انجام محاسبات بنویسید.
سیارهی آیتی
جناب مهندس عباسی سلام. با سپاس از مطالب بسیار آموزنده حضرتعالی ؛ برای تنظیم نوبت آبیاری ساعتی بین قریب 40 کشاورز که سهم آب متفاوتی بر حسب ساعت دارند میخواهم فرمولی در اکسل بنویسم که با درج روز شروع و ساعت شروع بصورت 24 ساعته جدول طوری تنظیم شود که هر کس بداند( با احتساب ماه 31 روزه) در چه تاریخی و چه ساعتی در شبانه روز نوبت آبیاری اوست فرمولهائی که نوشته ام معمولا با تغییر روز یا ساعت یک جائی دقیق محاسبه نمی کند . قبلا از راهنمائی که میفرمائید بسیار سپاسگزارم .