فهرست مطالب
در این آموزش، نحوه استفاده از توابع IFERROR و VLOOKUP برای به دام انداختن و مدیریت خطاهای مختلف را بررسی خواهیم کرد. علاوه بر این، میخواهید نحوه انجام vlookupهای متوالی در اکسل را با قرار دادن چندین تابع IFERROR روی یکدیگر بیاموزید.
Excel VLOOKUP و IFERROR - درک این دو عملکرد به طور جداگانه ممکن است بسیار سخت باشد، چه رسد به زمانی که آنها با هم ترکیب شوند. در این مقاله، چند مثال ساده برای دنبال کردن پیدا خواهید کرد که به کاربردهای رایج می پردازد و به وضوح منطق فرمول ها را نشان می دهد.
اگر تجربه زیادی با توابع IFERROR و VLOOKUP ندارید، ممکن است ایده خوبی است که ابتدا با دنبال کردن پیوندهای بالا، اصول اولیه آنها را اصلاح کنید.
فرمول IFERROR VLOOKUP برای رسیدگی به #N/A و سایر خطاها
وقتی Excel Vlookup نمی تواند پیدا کند یک مقدار جستجو، یک خطای #N/A ایجاد می کند، مانند این:
بسته به نیازهای کسب و کار شما، ممکن است بخواهید خطا را با متن خود، صفر پنهان کنید. ، یا یک سلول خالی.
مثال 1. IFERROR با فرمول VLOOKUP برای جایگزینی خطاها با متن خودتان
اگر می خواهید نماد خطای استاندارد را با متن سفارشی خود جایگزین کنید، فرمول VLOOKUP در IFERROR، و هر متنی را که میخواهید در آرگومان دوم ( value_if_error ) تایپ کنید، به عنوان مثال "یافت نشد":
IFERROR(VLOOKUP( …)،"نه پیدا شد")با مقدار جستجو در B2 در جدول اصلی و محدوده جستجو A2:B4 در جستجوجدول، فرمول به شکل زیر است:
=IFERROR(VLOOKUP(B2,'Lookup table'!$A$2:$B$5, 2, FALSE), "Not found")
تصویر صفحه زیر فرمول Excel IFERROR VLOOKUP ما را در عمل نشان می دهد:
نتیجه بسیار قابل درک تر و بسیار کمتر ترسناک به نظر می رسد، اینطور نیست؟
به روشی مشابه، می توانید از INDEX MATCH همراه با IFERROR استفاده کنید:
=IFERROR(INDEX('Lookup table'!$B$2:$B$5,MATCH(B2,'Lookup table'!$A$2:$A$5,0)), "Not found")
The IFERROR فرمول INDEX MATCH مخصوصاً زمانی مفید است که میخواهید مقادیر را از ستونی که در سمت چپ ستون جستجو قرار دارد (جستجوی چپ) بکشید و وقتی چیزی پیدا نشد، متن خود را برگردانید.
مثال 2. IFERROR با VLOOKUP برای برگرداندن خالی یا 0 اگر چیزی یافت نشد
اگر نمی خواهید چیزی نشان دهید وقتی مقدار جستجو پیدا نشد، از IFERROR یک رشته خالی ("") نمایش دهید:
IFERROR(VLOOKUP( …),"")در مثال ما، فرمول به شرح زیر است:
=IFERROR(VLOOKUP(B2,'Lookup table'!$A$2:$B$5, 2, FALSE), "")
همانطور که می بینید، هنگامی که مقدار جستجو در لیست جستجو نیست، چیزی را بر نمی گرداند.
اگر می خواهید خطا را با مقدار صفر جایگزین کنید، آن را قرار دهید. 0 در الف آخر rgument:
=IFERROR(VLOOKUP(B2,'Lookup table'!$A$2:$B$5, 2, FALSE), 0)
احتیاط! تابع Excel IFERROR انواع خطاها را می گیرد، نه تنها #N/A. این خوب است یا بد؟ همه چیز به هدف شما بستگی دارد. اگر میخواهید تمام خطاهای احتمالی را پنهان کنید، IFERROR Vlookup راهی برای رفتن است. اما ممکن است در بسیاری از موقعیتها این یک تکنیک غیرعاقلانه باشد.
به عنوان مثال، اگر یک محدوده نامگذاری شده برای دادههای جدول خود ایجاد کردهاید، و آن نام را اشتباه املایی کردهاید.فرمول Vlookup، IFERROR یک #NAME را میگیرد؟ خطا داده و آن را با «یافت نشد» یا هر متن دیگری که ارائه می کنید جایگزین کنید. در نتیجه، ممکن است هرگز متوجه نشوید که فرمول شما نتایج اشتباهی را ارائه می دهد، مگر اینکه خودتان اشتباه تایپی را تشخیص دهید. در چنین حالتی، یک رویکرد معقولتر تنها به دام انداختن خطاهای #N/A خواهد بود. برای این کار، از فرمول IFNA Vlookup در اکسل 2013 و بالاتر، IF ISNA VLOOKUP در تمام نسخههای اکسل استفاده کنید.
نکته آخر این است: در انتخاب یک همراه برای فرمول VLOOKUP خود بسیار مراقب باشید :)
IFERROR را درون VLOOKUP قرار دهید تا همیشه چیزی را پیدا کنید
وضعیت زیر را تصور کنید: یک مقدار خاص را در یک لیست جستجو می کنید و آن را پیدا نمی کنید. چه انتخاب هایی دارید؟ یا خطای N/A دریافت کنید یا پیام خود را نشان دهید. در واقع، گزینه سومی وجود دارد - اگر vlookup اولیه شما دچار مشکل شد، پس چیز دیگری را جستجو کنید که قطعاً وجود دارد!
با مثال بیشتر، اجازه دهید نوعی داشبورد برای کاربران خود ایجاد کنیم که به آنها یک برنامه افزودنی نشان دهد. شماره یک دفتر خاص چیزی شبیه به این:
بنابراین، چگونه میتوانید پسوند را از ستون B بر اساس شماره دفتر در D2 بکشید؟ با این فرمول Vlookup معمولی:
=VLOOKUP($D$2,$A$2:$B$7,2,FALSE)
و تا زمانی که کاربران شما یک عدد معتبر را در D2 وارد کنند، به خوبی کار خواهد کرد. اما اگر کاربر عددی را وارد کند که وجود ندارد، چه؟ در این صورت به دفتر مرکزی زنگ بزنند! برای این کار فرمول فوق را در قسمت قرار می دهیدآرگومان value IFERROR، و Vlookup دیگری را در آرگومان value_if_error قرار دهید.
فرمول کامل کمی طولانی است، اما کاملاً کار می کند:
=IFERROR(VLOOKUP("office "&$D$2,$A$2:$B$7,2,FALSE),VLOOKUP("central office",$A$2:$B$7,2,FALSE))
اگر شماره دفتر پیدا شد، کاربر شماره داخلی مربوطه را دریافت می کند:
اگر شماره دفتر پیدا نشد، پسوند دفتر مرکزی نمایش داده می شود:
برای اینکه فرمول کمی فشرده تر شود، می توانید از روش دیگری استفاده کنید:
ابتدا بررسی کنید که آیا عدد در D2 وجود دارد یا خیر در ستون جستجو (لطفاً توجه داشته باشید که ما col_index_num را برای فرمول برای جستجو و برگرداندن مقدار از ستون A روی 1 تنظیم کردیم): VLOOKUP(D2,$A$2:$B$7,1,FALSE)
اگر شماره دفتر مشخص شده یافت نشد، رشته "دفتر مرکزی" را جستجو می کنیم که قطعا در لیست جستجو وجود دارد. برای این کار، اولین VLOOKUP را در IFERROR بپیچید و کل این ترکیب را در یک تابع VLOOKUP دیگر قرار دهید:
=VLOOKUP(IFERROR(VLOOKUP(D2,$A$2:$B$7,1,FALSE),"central office"),$A$2:$B$7,2)
خب، یک فرمول کمی متفاوت، نتیجه یکسان:
اما دلیل جستجوی "دفتر مرکزی" چیست، ممکن است از من بپرسید. چرا شماره داخلی را مستقیماً در IFERROR ارائه نمی کنید؟ زیرا ممکن است در آینده این تمدید تغییر کند. اگر این اتفاق بیفتد، باید داده های خود را فقط یک بار در جدول منبع به روز کنید، بدون اینکه نگران به روز رسانی هر یک از فرمول های VLOOKUP خود باشید.
نحوه انجام VLOOKUP های متوالی در اکسل
در شرایطی که شما نیاز داریدبسته به اینکه جستجوی قبلی موفقیت آمیز بوده یا ناموفق بوده است، Vlookup های متوالی یا زنجیره ای را در اکسل انجام دهید، دو یا چند تابع IFERROR را برای اجرای یک به یک Vlookups خود قرار دهید:
IFERROR(VLOOKUP( …)، IFERROR(VLOOKUP( …)، IFERROR(VLOOKUP( …)،"یافت نشد")))فرمول با منطق زیر کار می کند:
اگر اولین VLOOKUP چیزی پیدا نکرد، IFERROR اول یک خطا را به دام می اندازد و VLOOKUP دیگری را اجرا می کند. اگر VLOOKUP دوم ناموفق باشد، IFERROR دوم یک خطا می گیرد و VLOOKUP سوم را اجرا می کند و به همین ترتیب. اگر همه Vlookupها دچار مشکل شوند، آخرین IFERROR پیام شما را برمی گرداند.
این فرمول IFERROR تودرتو به ویژه زمانی مفید است که شما مجبور به Vlookup در چند صفحه همانطور که در مثال زیر نشان داده شده است.
0> فرض کنید، شما سه لیست از داده های همگن در سه کاربرگ مختلف دارید (شماره های دفتر در این مثال)، و می خواهید یک پسوند برای یک عدد خاص دریافت کنید.
با فرض اینکه مقدار جستجو در سلول A2 باشد. در برگه فعلی، و محدوده جستجو A2:B5 در 3 کاربرگ مختلف (شمال، جنوب و غرب) است، فرمول زیر به خوبی کار می کند:
=IFERROR(VLOOKUP(A2,North!$A$2:$B$5,2,FALSE), IFERROR(VLOOKUP(A2,South!$A$2:$B$5,2,FALSE), IFERROR(VLOOKUP(A2,West!$A$2:$B$5,2,FALSE),"Not found")))
بنابراین، "زنجیره شده" ما فرمول Vlookups در سه صفحه مختلف به ترتیبی که آنها را در فرمول تودرتو کرده ایم جستجو می کند و اولین مطابقتی را که پیدا می کند به ارمغان می آورد:
به این ترتیب از IFERROR با VLOOKUP در استفاده می کنید. برتری داشتن. از خواندن شما سپاسگزارم و امیدوارم شما را ببینمهفته آینده در وبلاگ ما!
بارگیری های موجود
نمونه های فرمول Excel IFERROR VLOOKUP