تابع SWITCH اکسل می تواند جایگزین مناسبی برای تابع IF و یا حتی تابع IFS باشد زمانی که بخواهید شروط را به صورت تو در تو استفاده کنید ، البته برخی کابران اکسل هم عملکرد این تابع را با تابع CHOOSE اشتباه میگیرند که در ادامه با توضیحاتی که داده می شود متوجه تفاوتهای این توابع خواهید شد .
مثال ساده از تابع SWITCH
فرض کنیم که در محدوده B3:B9 اعداد 1 تا 7 وارد شده و در ستون مقابل یعنی C3:C9 روزهای هفته از شنبه تا جمعه نوشته شده است و می خواهیم اگر مقدار وارد شده در سلول E3 برابر هر کدام که بود روز مربوط به آن را نمایش دهد .
=SWITCH(E3,B3,C3,B4,C4,B5,C5,B6,C6,B7,C7,B8,C8,B9,C9,"Not OK")
مثال دوم – پاداش بر اساس امتیاز
فرض کینم که داده های مشابه تصویر زیر داریم و در آن نام پرسنل ثبت شده و برای هرکس امتیازی در نظر گرفته شده است و می خواهیم بر اساس شروط مختلف مشخص کنیم که وضعیت آن کارمند به چه شکل است ، به عنوان مثال اگر امتیاز او از 0 تا 10 بود ” Very Bad ” و اگر از 10 تا 30 بود “Not Bad” و اگر از 30 تا 60 بود “Good” و بزرگتر از 60 هم “Perfect” درج شود و اگر در بازه عددی هم نبود مقدار ” معتبر نمی باشد نمایش داده شود .
=SWITCH(TRUE,E23>=60,"Perfect",E23>=30,"Good",E23>=10,"Not Bad",E23>=0,"Very Bad","معتبر نمی باشد")
البته این مورد را هم می شود با تابع CHOOSE نوشت و هم با تابع IF که البته انتخاب با شماست و تفاوتی در نتیجه وجود ندارد.
=CHOOSE(MATCH(E23, {0, 10, 30, 60}), "Very Bad", "Not Bad", "Good", "Perfect")
حل مسئله با استفاده از تابع IF تو در تو
=IF(D3<10,"Very Bad",IF(D3<30,"Not Bad",IF(D3<60,"Good","Perfect")))
مثال سوم – ترکیب SWITCH با VLOOKUP
برای درک بهتر تابع SWITCH در این مثال می خواهم این تابع را با تابع VLOOKUP ترکیب کنم تا به نتیجه برسیم . و صورت مسئله این است که ما دو محدوده جداگانه با داده های یکسان داریم و وقتی کاربر گروه و کد پرسنلی را انتخاب کرد باید میزان فروش او نمایش داده شود .
=VLOOKUP(K3,SWITCH(J3,B1,B2:D8,F1,F2:H8),3,0)
در سلول j3 لیست کشویی ایجاد شده و گروه 1 و گروه 2 انتخبی است و بر اساس انتخاب هر کدام محدوده متفاوتی در آرگومان دوم VLOOKUP قرار میگیرد.
مثال چهارم – ساختار پیچیده تر با SWITCH
از این تابع برای حل مسائل پیچیده تر هم می توانید استفاده کنید ، مثلا در جایی که باید دو شرط جداگانه بررسی شود .
به عنوان مثال فرض کنید که محدوده داده داریم که در آن کد پرسنلی و جایگاه شغلی وارد شده است و بر اساس جایگاه شغلی و امتیاز کسب شده قرار است پاداش دریافت کنند .
=SWITCH(B3,"مدیر",IF(C3 > 10, 5000, 3000),"معاون",IF(C3 > 5, 3500, 2000),"کارمند", IF(C3>3,2000, 1000),"اطلاعات نامعتبر")
البته این یک فرمول پیشنهادی می باشد و می تواند برابر با مقادری دیگری باشد مثلا در این مورد مدیر و معاون با توجه به امتیاز یکسان پاداشهای متفاوتی دریافت کرده اند و تمام پارامترها قابل تغییر است و مهم درک نحوه استفاده صحیح از تابع SWITCH می باشد.