درباره نویسنده
فرمولنویسی ترکیبی توسط تابع If (مقایسه چندگانه)
تابع If امکان ایجاد مقایسه منطقی بین یک مقدار و خواسته کاربر را فراهم میسازد. اما اگر بخواهیم شرطهای مختلف را در این تابع بررسی کنیم باید از If های تو در تو یا متداخل استفاده کنیم. با این روش، میتوانیم چندین حالت را مقایسه کرده و به ازای هر حالت یک خروجی متفاوت داشته باشیم.
مفهوم فرمولنویسی ترکیبی
فرمولنویسی ترکیبی به این معنی است که یک فرمول در فرمول دیگر بکار گرفته شود. بنابراین نتیجه و خروجی فرمول آرگومانی از فرمول دیگر میباشد. مثلا در فرمول زیر تابع Today درون تابع Month قرار دارد که ماه جاری سیستم را به عنوان نتیجه برمیگرداند.
=MONTH(TODAY())
توابع If متداخل
فرض کنید میخواهیم مالیات حقوق کارمندان یک سازمان را محاسبه کنیم.
- اگر حقوق بزرگتر یا مساوی 12,000,000 ریال بود 5% مالیات محاسبه شود.
- اگر حقوق بزرگتر یا مساوی 10,000,000 ریال و کوچکتر از 12,000,000 ریال بود 2% مالیات محاسبه شود.
- اگر حقوق کوچکتر از 10,000,000 ریال بود مالیاتی در نظر گرفته نشود.
بیشتر بخوانید: نامگذاری محدودهها
برای تعیین شرط اول، تابع If را در سلول B2 به صورت زیر تعریف میکنیم. میخواهیم ببینیم آیا حقوق بزرگتر یا مساوی 12,000,000 ریال است یا خیر. اگر این شرط برقرار بود، حقوق در 5% ضرب شده و حاصل آن به عنوان نتیجه برگردانده میشود.
=IF(A2>=12000000,A2*5%)
برای تعیین شرط دوم، بهجای آرگومان value_if_false یک If دیگر را به صورت زیر تعریف میکنیم. میخواهیم ببینیم آیا حقوق بزرگتر یا مساوی 10,000,000 ریال و کوچکتر از 12,000,000 ریال است یا خیر. اگر این شرط برقرار بود، حقوق در 2% ضرب شده و حاصل آن به عنوان نتیجه برگردانده میشود.
=IF(A2>=12000000,A2*5%,IF(A2>=10000000,A2*2%))
برای تعیین شرط سوم، برای آرگومان value_if_false در If دوم مقدار صفر را در نظر میگیریم. اگر این شرط برقرار بود، عدد صفر به عنوان نتیجه برگردانده میشود.
=IF(A2>=12000000,A2*5%,IF(A2>=10000000,A2*2%,0))
فرمولنویسی ترکیبی با توابع If متداخل
بیشتر بخوانید: بکارگیری تاریخ شمسی
در این تابع از داخلیترین فرمول محاسبه شروع شده و تا خارجیترین فرمول ادامه پیدا میکند. چون مقدار سلول A2 بزرگتر از 10,000,000 ریال و کوچکتر از 12,000,000 ریال است، حقوق در 2% ضرب شده و مقدار 210,000 ریال به عنوان نتیجه برگردانده میشود.
میتوانیم تا حداکثر 64 مقایسه را در تابع If بکار بگیریم و در صورتیکه شرط اول صحیح باشد، شرطهای بعدی مورد بررسی قرار نمیگیرند.
در مثال بالا نحوه استفاده از تابع If به صورت متداخل را بررسی کردیم. استفاده زیاد از If های متداخل دیباگ کردن فرمول را دشوار میکند. پس به جای استفاده از If های متداخل بیش از حد میتوانیم از راه حلهای بهتری مثل جستجو بازهای استفاده کنیم.