هر دو تابع مد نظر برای جستجو و فرخوانی یک یا بخشی از جدول های داده استفاده می شود با این تفاوت که تابع ویلوکاپ برای جستجو و فرخوانی به صورت عمودی استفاده می شود و تابع هلوکاپ برای جستجو و بازگردانی از جدول های به صورت افقی استفاده می شود.
HLOOKUP مخفف “Horizontal lookup” است و همانطور که از نامش پیداست جستجو را به صورت افقی انجام می دهد.و یکی از توابع پرکاربرد اکسل برای جستجو می باشد که در همین پست فیلم آموزشی نحوه کاربرد آن را برای شما قرار میدهیم اما ابتدا بهتر هست با آرگومان های آن به صورت کامل آشنا شویم.ساختار و شکل ظاهری این تابع هم، مانند تابع vlookup از 4 آرگومان تشکیل شده است
برای اینکه به شما نشان دهیم HLOOKUP چگونه کار می کند، به یک مثال نگاه می کنیم:
در اینجا ما یک دفتر اصلی فروش داریم که به صورت افقی مرتب شده است. این برگه شناسه تراکنش، تاریخ تراکنش، مبلغ تراکنش و شناسه مشتری منحصر به فرد را نشان می دهد.
در زیر سوابق، یک ورودی برای شناسه تراکنش داریم. هنگامی که یک شناسه تراکنش معتبر را تایپ می کنید، مبلغ تراکنش و شناسه مشتری از جدول بالا کشیده می شود.
در سلول B7 می توانید از تابع زیر برای دریافت مبلغ تراکنش استفاده کنید:
=HLOOKUP(B6, B1:H4, 3, FALSE)
در سلول B8 می توانید از تابع زیر برای دریافت شناسه مشتری استفاده کنید:
=HLOOKUP(B6, B1:H4, 4, FALSE)
در تابع اول، row_index_num را روی 3 قرار دادیم. این به این معنی است که ردیف سوم در ستون را که با مقدار وارد شده به عنوان اولین آرگومان مطابقت دارد، می کشد که به B6 اشاره می کند. در تابع دوم، آرگومان سوم با 4 عوض میشود، که به آن اجازه میدهد ردیف چهارم را به جای آن بکشد.
در هر دو مورد، استدلال نهایی، FALSE، گنجانده شده است. این بدان معنی است که تابع HLOOKUP فقط یک تطابق دقیق را می پذیرد. اگر شماره تراکنش وارد شده در جدول نباشد، هر دو تابع با خطا مواجه خواهند شد.
ساده ترین راه برای جلوگیری از این مشکل این است که هر دو تابع را در یک تابع IF قرار دهید و از تابع ISERROR برای تعیین معتبر بودن تابع استفاده کنید. بسته بندی تابع به شما امکان می دهد یک مقدار پیش فرض را وارد کنید که اگر شناسه تراکنش در جدول قرار نداشته باشد نشان داده می شود.
حال دو تابع در B7 و B8 به شرح زیر است:
=IF(ISERROR(HLOOKUP(B6, B1:H4, 3, FALSE)), "Transaction Not Found", HLOOKUP(B6, B1:H4, 3, FALSE)
=IF(ISERROR(HLOOKUP(B6, B1:H4, 4, FALSE)), "Transaction Not Found", HLOOKUP(B6, B1:H4, 4, FALSE))
استفاده از IF و ISERROR به صفحهگسترده اجازه میدهد تا اگر شناسه تراکنش مشخصشده پیدا نشد، پیام مفیدی ارائه دهد. این دو تابع یکی از سادهترین راهحلهایی هستند که میتوانید در اکسل استفاده کنید، زمانی که فرمولهای شما ممکن است منجر به خطا شود.
اگر آرگومان نهایی را از هر دو عبارت در این مورد حذف کنید، میتوانید ببینید وقتی جستجو را به تطابقات دقیق محدود نکنید چه اتفاقی میافتد:
در مثال بالا، حتی اگر شناسه تراکنش 445880 وجود نداشته باشد، یک مبلغ و شناسه مشتری همچنان برگردانده می شود. بدون اینکه آخرین آرگومان روی false تنظیم شده باشد، جستجوی مورد استفاده در عوض نزدیکترین تطابق بعدی را که از مقدار وارد شده تجاوز نمی کند، برمی گرداند.
در این مورد، توابع مقدار و شناسه تراکنش 445879 را از آنجایی که نزدیکترین تطابق بود، استخراج کردند.
وقتی از جستجوی غیردقیق استفاده می شود، نزدیکترین تطابق نمی تواند از مقدار جستجو شده بیشتر باشد. به این معنی که اگر شناسه تراکنش وارد شده کمتر از تراکنش های موجود در جدول باشد، هیچ تراکنشی پیدا نمی شود.
از آنجایی که اختیاری است، خالی ماندن آرگومان نهایی خطای بسیاری از کاربران است. به این ترتیب، آخرین استدلال همیشه باید به عنوان نادرست فهرست شود، مگر اینکه مطمئن باشید که وضعیت شما منطبقهای غیردقیق را میطلبد.
پاسخ ها