
کاربردی جالب از تابع Vlookup برای جستجوی حدودی
آیا تاکنون در اکسل به این مسئله برخورد کرده اید که بازه های عددی زیادی داشته باشید و بخواهید اعداد مختلفی را در آن ها جستجو کنید؟ (شکل ۱) مثلا میخواهیم بدانیم که عدد ۳۲۰ در کدام گروه قرار می گیرد؟ در واقع قصد داشته باشید جستجوی بازه ای یا جستجو حدودی انجام بدید. حل این مسئله روش های مختلفی دارد که در این آموزش قصد داریم کاربردی جالب از فرمول Vlookup در اکسل را برای حل این موضوع شرح بدیم.

شکل ۱- دیتابیس بازه ای
شاید راه حلی که در نگاه اول به ذهن برسد استفاده از if متداخل یا nested if باشد. به این صورت که برای هر بازه، یک if در نظر گرفته شود. اما همانطور که مشخص است، علاوه بر اینکه کار سخت و زمانبری به نظر می رسد، ویرایش آن بسیار دشوار خواهد بود. مثلا اگر ابتدا و انتهای بازه، تغییر کند، کل فرمول را باید اصلاح کرد.
در اینجا راه حلی را با استفاده از فرمول Vlookup در اکسل ارائه خواهیم کرد که بسیار سریع، راحت و انعطاف پذیر در صورت تغییر خواهد بود.
همانطور که قبلا در آموزش تابع Vlookup توضیح داده ایم، آرگومان چهارم این تابع می تواند دو مقدار ۰ یا ۱ را بگیرد. در این آموزش توضیح داده شد که این آرگومان اصولا ۰ قرار داده می شود که بتواند جستجوی دقیق یا Exact Match را انجام دهد. اما چه مواقعی این آرگومان رو ۱ یعنی Approximate Match میگذاریم؟ یکی از کاربردهای این حالت، همین جستجوی بازه ای (تخمینی) هست. با یک مثال بیشتر توضیح میدیم:
مثلا می خواهیم ببینیم عدد ۴۹۹ در کدام گروه قرار میگیرد؟ با توجه به اینکه عدد ۴۹۹ در هیچ یک از این سلول ها وجود ندارد، پس نمیتوانیم به صورت دقیق جستجو انجام بدیم و میخواهیم کاری کنیم که جستجوی بازه ای صورت گیرد.
برای این کار اول باید جدولی رو آماده کنیم که به عنوان Table Array مورد استفاده قرار گیرد. پس بازه های مورد نظر را تایپ کرده و جدول را ایجاد میکنیم. در شکل ۲ ستون A ابتدای بازه و ستون B انتهای بازه و ستون C گروه بندی وارد شده. دقت داشته باشید که این داده ها باید مرتب و از کوچک به بزرگ در جدول چیده شوند که جستجوی تخمینی بتواند صورت گیرد.
مطابق شکل ۲، در سلول F6 تابع Vlookup را می نویسیم و آرگومان آخر را ۱ قرار می دهیم. مقدار Lookup Value یا چیزی که مورد جستجو قرار گرفته، همان عدد ۴۹۹ هست. جدول جستجو هم محدوده A1:C8 هست. میخواهیم بصورت تخمینی جستجو کند و عدد ۴۹۹ را در ستون اول پیدا کند و داده مرتبط با آن را در ستون سوم نمایش دهد. پس آرگومان Col_index عدد ۳ خواهد بود. آرگومان آخر هم طبق توضیحاتی که ارائه شد، عدد ۱ یا مقدار True قرار داده می شود.
توجه داشته باشید که می توانیم ستون B را حذف کنیم (برای درک بهتر مفهوم بازه، جدول را به این صورت نمایش دادیم). در واقع تابع Vlookup جستجو را در ستون اول انجام می دهد و ملاک فقط ستون اول هست.
به این ترتیب این تابع با جستجوی تخمینی، اعداد بین بازه ها را تشخیص خواهد داد و داده مرتبط با ستون سوم را به عنوان خروجی نمایش می دهد. عدد ۴۹۹ در بازه ۳۵۰-۵۰۰ قرار میگیرد و گروه بندی D به عنوان خروجی نمایش داده خواهد شد.

شکل ۲- فراخوانی عدد مورد نظر در بازه های موجود
در این آموزش در مورد یک کاربرد خاص تابع Vlookup صحبت کردیم و یاد گرفتی چطور با استفاده از این تابع میشه جستجوی بازه ای یا حدودی در اکسل انجام بدی.
اگر در کار با تابع Vlookup به مشکل جستجوی موارد تکراری بر خوردید، حتما پیشنهاد میکنم مقاله جستجو موارد تکراری رو بخونی.
نکته خیلی مهم: باز و بسته بودن بازه ها به صورت (A B] خواهد بود. برای مثال، عدد ۵۰۰ در گروه بندی E قرار خواهد گرفت. پس انتخاب ابتدا و انتهای بازه ها (با توجه به مفهوم و خروجی مورد انتظار) از اهمیت بسیار بالایی برخوردار است.





سوالی داشتم خدمتتون
در شیت اولی من اطلاعات مشتری رو دارم
در شیت بعدی باچه فرمولی من میتونم از اطلاعات شیت ۱ با سزچ کردن عدد یا نام بصورت فاکتوراز یک مشتری مشخص اطلاعات گرفته و پرینت بگیرم
درود بر شما
از تابع vlookup استفاده کنید
بسیار عالی بود . دمتون گرم
سلام وقت بخیر من یه سوال داشتم، من برای اکسل میخواستم یه جستجوگر بسازم با شرایط زیر
شرکت ما محصولاتش رو با شماره سریال برای مشتری ارسال میکنه و ما شماره سریال هارو در اکسل ثبت میکنم تا در صورت نیاز قابل رهگیری باشد ولی در مواقعی محموله های ارسالی بزرگ هستن بطوریکه شامل هزار جنس میشه و ما نمیتونیم دونه دونه شماره سریال هارو ثبت کنیم ولی اونا رو بصورت بازه ای مثلا از شماره یک تا هزار برای فلان مشتری ثبت میکنیم، ما چطوری میتونیم یه جستجوگر براش بسازیم که مثلا یه مشتری فلان جنس رو برگردوند با سرچ شماره سریالش از داخل بازه ها بگه مال کدوم محمولس؟
درود بر شما
دقیقا در مقاله مرتبط پیام گذاشتید مطابق با همین اموزش عمل کنید
سلام خانم خاکزاد
همین رو اجرا کردم ولی در اکثر ستون ها ارور #N/A رو میده
ممنون میشم راهنمایی کنید
درود بر شما
$ ها رو چک کنید
سلام
ی فایل اکسل دارام که در ردیف ها و ستون ها بیستر از ۱۰عدد مباشد چگونه می توانیم ار تابع dget ,و غیره استفاده کرد سپاسگزارم
درود بر شما
dget وقتی جواب میده که نتیجه جستجو یونیک باشه
سلام و روز بخیر
من مجموعه فعالیتهایی رو دارم که ستون های تاریخ شروع و پایانشون مشخص شده و جمع کل مدت فعالیتها رو هم دارم . چطور میتونم مدت هم پوشانی بین تاریخها رو توی اکسل مشخص کنم
درود
برای همچین محاسباتی باید تاریخ محاسباتی باشه یعنی جنس عدد باشه
اگر همچین شرایطی داره، کافیه با if و مقایسه بزرگتر و کوچکتر اشتراکات رو پیدا کنید
سلام. سپاس ،عالی هستید،زنده باشید.
در یک ستون ساعت تماس مشتری ودرستون بعدی تاریخ که البته هرفایل مربوط به یک ماه است و در ستون بعدی نشون میده کدوم روز هفته است ،الان برای اینکه بخواهیم جدولی داشته باشیم که نشون بده مثلاً در شنبه های فلان ماه مابین ساعت هفت تا هشت چه تعداد تماس داشتیم چه باید کرد.ببخشید طولانی شد.
درود بر شما
از countifs استفاده کنید
اصلا معلوم نیست چی گفتیید
سلام
اول باید تابع vlookup رو مطالعه کنید و اونو خوب متوجه بشید بعد این مقاله که حالت خاصی از تابع vlookup هست رو مطالعه بفرمایید
هرجا سوالی هست هم میتونید مطرح کنید
سلام و خداقوت
من ستون اکسلی دارم که اطلاعات آن به شرح زیر می باشد
نام کد
علی ۱۱
علی ۱۲۳
علی ۱۱۴
حانیه ۱۵۹
حانیه ۲۰۰
حانیه ۱۰
حانیه ۱۰۲
حانیه ۵
و می خواهم در یک شیت دیگر فقط اطلاعات حانیه و کد مربوط به هر یک نمایش داده شود.ممنون راهنماییم کنید
درود
هم با پیوت تیبل میشه
هم فمرول نویسی. میتونید اسم ها رو از اعداد تفکیک کنید و بعد با استفاده از روش جستجوی موارد تکررای، فرمول نویسی انجام بدید که در مقاله زیر توضیح داده شده است
https://excelpedia.net/search-duplicates/
با سلام
یک فایل اکسل دارای دو ستون اعداد غیر تکراری و یک ستون دارای نام های تکراری که مربوط به عدد مقابل خود هست. حال چطور میشه در فایلی مجزا همون اعداد داشته باشیم و بخواهیم نام ها رو از فایل اولی بیاره و روبروی عدد مربوطه بنویسه. با تشکر
درود
با تابع vlookup میتونید اعداد رو جستجو کنید و ستون دومش رو فراخوانی کنید