عبارت if یکی از مهمترین دستورات در برنامهنویسی زبانهای مختلف است. در نرمافزار صفحه گسترده اکسل هم این قابلیت وجود دارد که با کمک این عبارت، به صورت شرطی برخی محاسبات یا نمایش اطلاعات را انجام دهیم.
شکل کلی عبارت if در اکسل به صورت زیر است:
1 | if( logical_test, value_if_true, value_if_false ) |
عبارت if چه کاری انجام میدهد ؟
گاهی لازم است تا اگر شرطی برقرار باشد، فعالیت خاصی را انجام دهیم و اگر آن شرط برقرار نباشد، فعالیت دیگری مورد نیاز است. برای مثال فرض کنید در یک لیست حقوق، میخواهیم بررسی کنیم که اگر حقوق یکی از پرسنل بیش از ۱۰۰۰ تومان است، ۱۰ درصد مالیات برای آن محاسبه شود و اگر کمتر از ۱۰۰۰ تومان بود، معاف از مالیات خواهد بود.
همان طور که مشاهده میکنید برای افرادی که حقوق بیشتر از ۱۰۰۰ تومان داشتهاند، ۱۰ درصد مالیات محاسبه شده است. فرمولی که در ستون C نوشته شده به شکل زیر است:
1 | =IF(B5>1000,B5*0.1,0 ) |
فرمول بالا سه پارامتر دارد. در پارامتر اول که شرط است، بررسی میشود که آیا حقوق از ۱۰۰۰ بیشتر است یا نه. اگر بیشتر باشد، پارامتر دوم محاسبه میشود که معادل ۱۰ درصد حقوق است و در غیر این صورت، پارامتر سوم که مقدار آن صفر است برگردانده میشود.
بررسی چند شرط
اگر تعداد شرطهایی که باید بررسی شوند، بیش از یک شرط باشد، برای مثال هنگامی که محاسبه مالیات پلکانی است میتوانیم از چند عبارت IF تو در تو استفاده کنیم. فرض کنید برای حقوق بالای ۱۰۰۰ تومان ۱۰ درصد و برای حقوق بالای ۱۵۰۰ تومان ۱۵ درصد مالیات محاسبه میشود. عبارت IF تو در تو به شکل زیر خواهد بود.
1 | =IF( A1 > 1500, A1 * 0.15, IF( A1 > 1000, A1 * 0.1, 0 ) ) |
نوشتن چندین IF تو در تو، خوانایی کدها را به شدت کاهش میدهد و برای بیش از دو شرط تو در تو این روش توصیه نمیشود. در عوض میتوانید از دستور SWITCH که به تعداد نامحدود شرط و مقدار را میپذیرد، استفاده نمایید.
در نوشتن IFهای تو در تو باید دقت کنید که ترتیب نوشتن شرطها از داخل به بیرون است، یعنی اول بررسی میکنیم که اگر از ۱۵۰۰ بیشتر باشد، چه کاری انجام دهد و سپس بررسی میکنیم که اگر از ۱۰۰۰ بیشتر باشد، چون در غیر این صورت، شرط کلیتر، شرط جزئیتر را هم پوشش میدهد و محاسبات ما اشتباه خواهد بود.
توسعهپذیری در نوشتن عبارتهای IF
اگر نتیجهی IF در چند محل مختلف استفاده میشود یا تصور میکنید که در آینده ممکن است چنین اتفاقی بیفتد، بهتر است مقدار خروجی IF را در یک ستون مجزا در اکسل درج کنید و سپس در فیلدهای دیگر از مقدار این ستون برای محاسبات کمک بگیرید.
نوشتن چندباره یک شرط در سلولهای مختلف، باعث میشود، توسعهپذیری کاهش پیدا کند و چنانچه لازم باشد تا شرط در آینده تغییر کند، چند محل مختلف را تغییر دهید و اگر این کار را فراموش کنید، محاسبات به درستی انجام نخواهند شد.
به طور کلی، تکرار یک محاسبه در چند سلول مختلف، توسعهپذیری و خوانایی و کارایی سیستم را کاهش میدهد.