جست جوی چند شرطی با اکسل
شما حتماً با توابع جستوجوی اکسل آشنا هستید، تابع VLOOKUP یکی از معروفترین آنها است که تنها یک شرط را از ردیف افقی برای برگرداندن سلول متناظر با ستون اول برمیگرداند. این تابع بسیار کاربردی است اما همانطور که اشاره شد محدودیت تنها یک شرط را دارد. امروز به شما ترفندی را امورش خواهیم داد که میتوانید جست جوی چند شرطی با اکسل ایجاد کنید تا دقیقتر ایتم خود را از یک دیتابیس بلندبالا بیابید.
این مسئله را با یک مثال کاربردی که بچههای عمران زیاد با آن سر و کار دارند میزنم تا مطلب بهتر جا بیفتد. فرض کنید نتایج طراحی آرماتورهای تیرهای بتنی را استخراج کرده و میخواهید آن را کنترل کنید یا مساحت آن ها را تبدیل به تعداد میلگرد برای رسم در نقشههای اجرایی کنید (توجه داشته باشید که از این فن برای پیدا کردن لنگرها و نیروها و غیره … هم میتوانید استفاده کنید)
شرح مسئله
هدف ما این است که مساحت آرماتور فوقانی انتهایی تیر را در دیتابیس استخراجکنیم. اما کار به این سادگی نیست برای مثال تیر شماره b7 در طبقات مختلف به همین نام تکرار میشود، ضمنان که همین تیر میتواند ابعاد متفاوتی داشته باشد. درنتیجه تابع ما برای استخراج ایتم صحیح مورد نظر باید ۴ شرط داشته باشد:
شرط اول: کدام طبقه
بازه E5:E1000 ستونی است که طبقات ما در ان مشخص است و i5 سلولی است که شرط ما به آن حساس است (در اینجا STORY5 شرط موردنظر ماست)
شرط دوم: نام تیر
بازه B5:B1000 ستونی است که نام تیر ما در ان مشخص است و j6 سلولی است که شرط ما به آن حساس است (در اینجا b7 شرط موردنظر ماست)
شرط سوم : ابعاد تیر
بازه C5:C1000 ستونی است که ابعاد تیرهای ما در ان مشخص است و k6 سلولی است که شرط ما به آن حساس است (در اینجا B45xB45 شرط مورد نظر ماست)
شرط چهارم : محل قرارگیری آرماتور
بازه D5:D1000 ستونی است که محل قرارگیری ارماتور در ان مشخص است ( چپ – میانه – راست ) و m5 سلولی است که شرط ما به ان حساس است (در اینجا End-i شرط مورد نظر ماست)
توجه: ممکن است بگویید تابع SUMIFS مقدار را جمع میکند ولی برنمیگرداند جواب من این است که با توجه به تعداد شروطی که برای آن گذاشتهایم امکان ندارد دو مقدار باشد که هر چهار شرط بالا را باهم ارضا کند البته روش دیگری است که با استفاده از ترکیب دو تابع Match و index میتوانید چندین شرط ایجاد کنید که انشا الله در آینده آموزش استفاده از آن را هم قرار خواهم داد.
گفت و گو