فهرست مطالب
این آموزش نحوه استفاده از تابع IF تودرتو در اکسل را برای بررسی شرایط متعدد توضیح می دهد. همچنین چند توابع دیگر را یاد خواهید گرفت که می توانند جایگزین های خوبی برای استفاده از فرمول تو در تو در اکسل باشند.
معمولاً چگونه منطق تصمیم گیری را در کاربرگ های اکسل خود پیاده سازی می کنید؟ در بیشتر موارد، از فرمول IF برای آزمایش شرط خود استفاده میکنید و در صورت برآورده شدن شرط، یک مقدار و اگر شرط برآورده نشده است، مقدار دیگری را برمیگردانید. برای ارزیابی بیش از یک شرط و برگرداندن مقادیر مختلف بسته به نتایج، چندین IF را در داخل یکدیگر قرار می دهید.
اگرچه بسیار محبوب است، دستور IF تودرتو تنها راه برای بررسی شرایط چندگانه در اکسل نیست. در این آموزش، تعداد انگشت شماری از گزینه های جایگزین را پیدا خواهید کرد که قطعا ارزش کاوش را دارند.
Excel nested IF
در اینجا فرمول کلاسیک Excel تو در تو در یک فرم عمومی وجود دارد. :
IF( شرط1، نتیجه1، IF( شرط2، نتیجه2، IF( شرط3، result3, result4)))می توانید ببینید که هر تابع IF بعدی در آرگومان value_if_false تابع قبلی جاسازی شده است. هر تابع IF در مجموعه پرانتزهای خود محصور شده است، اما تمام پرانتزهای بسته در انتهای فرمول قرار دارند.
فرمول IF تودرتوی عمومی ما 3 شرایط را ارزیابی می کند و 4 نتیجه متفاوت را برمی گرداند (نتیجه 4 برگردانده می شود. اگر هیچ یک ازکتاب کار برای دانلود
اکسل تو در تو دستور If - مثالها (فایل xlsx.)
شرایط درست است). این دستور IF تودرتو که به زبان انسانی ترجمه شده است به اکسل میگوید که کارهای زیر را انجام دهد:تست شرط1، اگر درست است - بازگشت نتیجه1، اگر نادرست -تست شرط2 ، اگر درست است - برگردان r نتیجه2 ، اگر نادرست -
تست شرط3 ، اگر درست است - برگردان نتیجه3 ، اگر نادرست -
بازگشت نتیجه4
به عنوان مثال، اجازه دهید کمیسیون تعدادی از فروشندگان را بر اساس میزان فروش آنها دریابیم:
کمیسیون | فروش |
3% | $1 - $50 |
5% | 51$ - 100$ |
7% | 101$ - 150$ |
10% | بیش از $150 |
در ریاضیات، تغییر ترتیب اضافهها، مجموع را تغییر نمیدهد. در اکسل، تغییر ترتیب توابع IF نتیجه را تغییر می دهد. چرا؟ زیرا فرمول IF تو در تو مقداری مطابق با اولین شرط TRUE برمی گرداند. بنابراین، در دستورات IF تودرتو، بسیار مهم است که شرایط را در جهت درست مرتب کنید - بسته به منطق فرمول خود، بالا به پایین یا کم به زیاد. در مورد ما، ابتدا شرط "بالاترین"، سپس "دومین بالاترین" را بررسی می کنیم و به همین ترتیب:
=IF(B2>150, 10%, IF(B2>=101, 7%, IF(B2>=51, 5%, IF(B2>=1, 3%, ""))))
اگر ما را قرار دادیم شرایط به ترتیب معکوس، از پایین به بالا، نتایج همه اشتباه خواهند بود زیرا فرمول ما پس از اولین آزمایش منطقی (B2>=1) برای هر مقدار بزرگتر از 1 متوقف می شود. فرض کنید، ما 100 دلار داریم.در فروش - بزرگتر از 1 است، بنابراین فرمول شرایط دیگر را بررسی نمی کند و به عنوان نتیجه 3٪ برمی گردد.
اگر ترجیح می دهید شرایط را از پایین به بالا مرتب کنید، از "کمتر از" استفاده کنید. " عملگر و ابتدا شرط "کمترین"، سپس "کمترین دوم" و به همین ترتیب را ارزیابی کنید:
=IF($B2<1, 0%, IF($B2<51, 3%, IF($B2<101, 5%, IF($B2<=150, 7%, 10%))))
همانطور که می بینید، برای ساختن منطق نیاز به تفکر زیادی است. یک دستور IF تودرتو به درستی تا انتها. و اگرچه مایکروسافت اکسل اجازه می دهد تا حداکثر 64 تابع IF را در یک فرمول قرار دهید، این چیزی نیست که واقعاً بخواهید در کاربرگ های خود انجام دهید. بنابراین، اگر شما (یا شخص دیگری) به فرمول IF تو در تو در اکسل خود نگاه می کنید و سعی می کنید بفهمید که واقعا چه کاری انجام می دهد، وقت آن است که در استراتژی خود تجدید نظر کنید و احتمالا ابزار دیگری را در زرادخانه خود انتخاب کنید.
برای اطلاعات بیشتر. لطفاً عبارت Excel تودرتوی IF را ببینید.
Nested IF با شرایط OR/AND
در صورت نیاز به ارزیابی چند مجموعه از شرایط مختلف، می توانید آن شرایط را با استفاده از OR و همچنین بیان کنید. تابع AND، توابع را در داخل دستورات IF قرار دهید، و سپس دستورات IF را در یکدیگر قرار دهید.
IF تودرتو در اکسل با دستورات OR
با استفاده از تابع OR می توانید دو یا چند مورد را بررسی کنید. شرایط مختلف در تست منطقی هر تابع IF و اگر هر (حداقل یکی) از آرگومان های OR به TRUE ارزیابی شود، TRUE را برمی گرداند. برای اینکه ببینید واقعاً چگونه کار می کند، لطفاً موارد را در نظر بگیریدبه عنوان مثال زیر.
فرض کنید، شما دو ستون از فروش دارید، مثلاً فروش ژانویه در ستون B و فروش فوریه در ستون C. میخواهید اعداد در هر دو ستون را بررسی کنید و کمیسیون را بر اساس عدد بالاتر محاسبه کنید. به عبارت دیگر، شما یک فرمول با منطق زیر ایجاد می کنید: اگر فروش ژانویه یا فوریه بیشتر از 150 دلار باشد، فروشنده 10٪ کمیسیون دریافت می کند، اگر فروش ژانویه یا فوریه بیشتر یا مساوی 101 دلار باشد، فروشنده 7٪ کمیسیون دریافت می کند. و غیره.
برای انجام این کار، چند عبارت OF مانند OR(B2>150, C2>150) بنویسید و آنها را در تست های منطقی توابع IF که در بالا بحث شد قرار دهید. در نتیجه، فرمول زیر را دریافت می کنید:
=IF(OR(B2>150, C2>150), 10%, IF(OR(B2>=101, C2>=101),7%, IF(OR(B2>=51, C2>=51), 5%, IF(OR(B2>=1, C2>=1), 3%, ""))))
و کمیسیون بر اساس میزان فروش بالاتر تعیین می شود:
برای نمونههای فرمول بیشتر، لطفاً عبارت Excel IF OR را ببینید.
IF تودرتو در اکسل با عبارات AND
اگر تستهای منطقی شما شامل چند شرط هستند و همه این شرایط باید به صورت TRUE ارزیابی شوند، آنها را بیان کنید. با استفاده از تابع AND.
به عنوان مثال، برای تخصیص پورسانت ها بر اساس تعداد کمتری از فروش، فرمول بالا را انتخاب کنید و OR را با عبارت AND جایگزین کنید. به عبارت دیگر، شما به اکسل می گویید که فقط در صورتی که فروش ژانویه و فوریه بیشتر از 150 دلار باشد، 10٪ برگرداند، اگر فروش ژانویه و فوریه بیشتر از 101 دلار یا برابر باشد، 7٪ و غیره.
=IF(AND(B2>150, C2>150), 10%, IF(AND(B2>=101, C2>=101), 7%, IF(AND(B2>=51, C2>=51), 5%, IF(AND(B2>=1, C2>=1), 3%, ""))))
در نتیجه، فرمول IF تودرتو ما کمیسیون را محاسبه می کندبر اساس عدد پایین در ستون های B و C. اگر هر یک از ستون ها خالی باشد، هیچ کمیسیونی وجود ندارد زیرا هیچ یک از شرایط AND برآورده نمی شود:
اگر شما' d مایل به بازگشت 0% به جای سلول های خالی، یک رشته خالی (''") را در آخرین آرگومان با 0% جایگزین کنید:
=IF(AND(B2>150, C2>150), 10%, IF(AND(B2>=101, C2>=101), 7%, IF(AND(B2>=51, C2>=51), 5%, IF(AND(B2>=1, C2>=1), 3%, 0%))))
اطلاعات بیشتر را میتوانید در اینجا بیابید: Excel IF با شرایط AND/OR متعدد.
VLOOKUP به جای IF تودرتو در اکسل
هنگامی که با "مقیاس" سروکار دارید، یعنی محدودههای پیوسته مقادیر عددی که با هم کل محدوده را پوشش می دهند، در بیشتر موارد می توانید از تابع VLOOKUP به جای IF های تودرتو استفاده کنید.
برای شروع، یک جدول مرجع مانند تصویر زیر ایجاد کنید. سپس یک فرمول Vlookup با <بسازید. 16>تطابق تقریبی ، یعنی با آرگومان range_lookup تنظیم شده بر روی TRUE.
با فرض اینکه مقدار جستجو در B2 باشد و جدول مرجع F2:G5 باشد، فرمول به شرح زیر است. :
=VLOOKUP(B2,$F$2:$G$5,2,TRUE)
لطفاً توجه داشته باشید که table_array را با ارجاعات مطلق اصلاح می کنیم ($F$2:$G$5) برای اینکه فرمول به درستی در سلولهای دیگر کپی شود:
با تنظیم آخرین آرگومان فرمول Vlookup خود بر روی TRUE، به اکسل میگویید که نزدیکترین تطابق را جستجو کنید - اگر مطابقت دقیقی یافت نشد، بزرگترین مقدار بعدی را که کوچکتر از مقدار جستجو است، برگردانید. در نتیجه، فرمول شما نه تنها با مقادیر دقیق جدول جستجو، بلکه با مقادیر دقیق مطابقت داردمقادیری که در بین قرار می گیرند.
به عنوان مثال، مقدار جستجو در B3 95 دلار است. این عدد در جدول جستجو وجود ندارد و Vlookup با تطابق دقیق خطای #N/A را در این مورد برمی گرداند. اما Vlookup با تطابق تقریبی به جستجو ادامه میدهد تا نزدیکترین مقدار را پیدا کند که کمتر از مقدار جستجو است (که در مثال ما 50 دلار است) و مقداری را از ستون دوم در همان ردیف (که 5٪ است) برمیگرداند.
اما اگر مقدار جستجو کمتر از کوچکترین عدد در جدول جستجو باشد یا سلول جستجو خالی باشد چه؟ در این حالت، یک فرمول Vlookup خطای #N/A را برمی گرداند. اگر آن چیزی نیست که واقعاً میخواهید، VLOOKUP را در داخل IFERROR قرار دهید و زمانی که مقدار جستجو پیدا نشد، مقدار را در خروجی قرار دهید. به عنوان مثال:
=IFERROR(VLOOKUP(B2, $F$2:$G$5, 2, TRUE), "Outside range")
نکته مهم! برای اینکه فرمول Vlookup با تطابق تقریبی به درستی کار کند، ستون اول در جدول جستجو باید به ترتیب صعودی ، از کوچکترین به بزرگتر مرتب شود.
برای اطلاعات بیشتر، لطفاً مطابقت دقیق را ببینید. VLOOKUP در مقابل تطابق تقریبی VLOOKUP.
عبارت IFS به عنوان جایگزین تابع تودرتوی IF
در اکسل 2016 و نسخه های بعدی، مایکروسافت یک تابع ویژه برای ارزیابی شرایط چندگانه معرفی کرد - تابع IFS.
یک فرمول IFS می تواند تا 127 جفت logical_test / value_if_true را مدیریت کند، و اولین آزمون منطقی که به TRUE "برنده" ارزیابی می شود:
IFS(logical_test1,value_if_true1, [logical_test2, value_if_true2]...)براساس نحو فوق، فرمول IF تودرتو را می توان به این شکل بازسازی کرد:
=IFS(B2>150, 10%, B2>=101, 7%, B2>=51, 5%, B2>0, 3%)
لطفا توجه داشته باشید که اگر هیچ یک از شرایط مشخص شده برآورده نشود، تابع IFS خطای #N/A را برمیگرداند. برای جلوگیری از این امر، میتوانید یک logical_test / value_if_true دیگر به انتهای فرمول خود اضافه کنید که 0 یا رشته خالی ("") یا هر مقداری که میخواهید برمیگرداند اگر هیچ یک از تست های منطقی قبلی درست است:
=IFS(B2>150, 10%, B2>=101, 7%, B2>=51, 5%, B2>0, 3%, TRUE, "")
در نتیجه، فرمول ما یک رشته خالی (سلول خالی) را به جای خطای #N/A برمی گرداند، اگر سلول مربوطه در ستون B باشد. خالی یا حاوی متن یا عدد منفی است.
توجه داشته باشید. مانند IF تو در تو، تابع IFS اکسل یک مقدار مربوط به شرط اول را برمی گرداند که به TRUE ارزیابی می شود، به همین دلیل است که ترتیب تست های منطقی در فرمول IFS اهمیت دارد.
برای اطلاعات بیشتر، لطفاً به جای آن تابع IFS Excel را ببینید. از IF تودرتو.
CHOOSE به جای فرمول IF تو در تو در اکسل
روش دیگری برای آزمایش شرایط چندگانه در یک فرمول واحد در اکسل استفاده از تابع CHOOSE است که برای برگرداندن مقداری از لیست بر اساس موقعیتی از آن مقدار است.
در مجموعه داده نمونه ما، فرمول به شکل زیر است:
=CHOOSE((B2>=1) + (B2>=51) + (B2>=101) + (B2>150), 3%, 5%, 7%, 10%)
در اولین آرگومان ( index_num )، همه شرایط را ارزیابی می کنید و نتایج را جمع می کنید. داده شدهکه TRUE برابر با 1 و FALSE برابر با 0 است، به این ترتیب موقعیت مقدار مورد نظر را محاسبه می کنید.
به عنوان مثال، مقدار در B2 150 دلار است. برای این مقدار، 3 شرط اول TRUE و آخرین (B2 > 150) FALSE است. بنابراین، index_num برابر است با 3، به این معنی که مقدار 3 برگردانده می شود، که 7٪ است.
نکته. اگر هیچ یک از تست های منطقی TRUE نباشد، index_num برابر با 0 است و فرمول #VALUE را برمی گرداند! خطا یک راه حل آسان این است که CHOOSE را در تابع IFERROR به این صورت بپیچید:
=IFERROR(CHOOSE((B2>=1) + (B2>=51) + (B2>=101) + (B2>150), 3%, 5%, 7%, 10%), "")
برای اطلاعات بیشتر، لطفاً تابع CHOOSE اکسل را با مثال های فرمول ببینید.
عملکرد SWITCH به عنوان شکل مختصر IF تو در تو در اکسل
در شرایطی که با مجموعه ای ثابت از مقادیر از پیش تعریف شده سر و کار دارید، نه مقیاس ها، تابع SWITCH می تواند جایگزین فشرده ای برای پیچیده باشد. عبارات IF تو در تو:
SWITCH(expression, value1, result1, value2, result2, …, [پیشفرض])عملکرد SWITCH عبارت را در برابر فهرستی از مقادیر ارزیابی میکند. و نتیجه مربوط به اولین بازی یافت شده را برمی گرداند.
در صورتی که بخواهید کمیسیون را بر اساس درجات زیر محاسبه کنید، به جای مبالغ فروش، می توانید از این فشرده استفاده کنید. نسخه فرمول IF تو در تو در اکسل:
=SWITCH(C2, "A", 10%, "B", 7%, "C", 5%, "D", 3%, "")
یا، می توانید یک جدول مرجع مانند تصویر زیر ایجاد کنید و به جای مقادیر کدگذاری شده از مراجع سلولی استفاده کنید:
=SWITCH(C2, $F$2, $G$2, $F$3, $G$3, $F$4, $G$4, $F$5, $G$5, "")
لطفاتوجه داشته باشید که همه مراجع به جز اولین مرجع را با علامت $ قفل می کنیم تا از تغییر آنها هنگام کپی فرمول در سلول های دیگر جلوگیری کنیم:
توجه داشته باشید. تابع SWITCH فقط در اکسل 2016 و بالاتر موجود است.
برای اطلاعات بیشتر، لطفاً تابع SWITCH - شکل فشرده دستور IF تودرتو را ببینید.
به هم پیوستن چندین تابع IF در اکسل
همانطور که در مثال قبلی ذکر شد، تابع SWITCH فقط در اکسل 2016 معرفی شد. برای انجام کارهای مشابه در نسخه های قدیمی اکسل، می توانید دو یا چند عبارت IF را با استفاده از عملگر Concatenate (&) یا تابع CONCATENATE ترکیب کنید. .
به عنوان مثال:
=(IF(C2="a", 10%, "") & IF(C2="b", 7%, "") & IF(C2="c", 5%, "") & IF(C2="d", 3%, ""))*1
یا
=CONCATENATE(IF(C2="a", 10%, ""), IF(C2="b", 7%, ""), IF(C2="c", 5%, "") & IF(C2="d", 3%, ""))*1
همانطور که ممکن است داشته باشید متوجه شدیم، در هر دو فرمول، نتیجه را در 1 ضرب می کنیم. برای تبدیل رشته ای که توسط فرمول Concatenate برگردانده شده است به عدد انجام می شود. اگر خروجی مورد انتظار شما متن است، عملیات ضرب مورد نیاز نیست.
برای اطلاعات بیشتر، لطفاً تابع CONCATENATE را در اکسل ببینید.
می توانید ببینید که مایکروسافت اکسل تعدادی جایگزین خوب ارائه می دهد. به فرمولهای IF تو در تو، و امیدواریم که این آموزش سرنخهایی در مورد نحوه استفاده از آنها در کاربرگهایتان به شما داده باشد. برای مشاهده دقیقتر نمونههای مورد بحث در این آموزش، میتوانید نمونه کار ما را در زیر دانلود کنید. از خواندن شما سپاسگزارم و امیدوارم هفته آینده شما را در وبلاگ خود ببینم!