فهرست مطالب
آیا VLOOKUP شما داده های اشتباهی را استخراج می کند یا اصلاً نمی توانید آن را به کار بیاندازید؟ این آموزش نشان می دهد که چگونه می توانید به سرعت خطاهای رایج VLOOKUP را برطرف کنید و بر محدودیت های اصلی آن غلبه کنید.
در چند مقاله قبلی، جنبه های مختلف تابع Excel VLOOKUP را بررسی کردیم. اگر ما را از نزدیک دنبال کرده اید، تا به حال باید در این زمینه متخصص باشید :)
با این حال، بی دلیل نیست که بسیاری از متخصصان اکسل VLOOKUP را یکی از پیچیده ترین توابع اکسل می دانند. محدودیت های زیادی دارد که منشا مشکلات و خطاهای مختلف است.
در این مقاله توضیحات ساده ای در مورد دلایل اصلی خطاهای VLOOKUP مانند #N/A، #NAME و #VALUE، و همچنین راه حل ها و رفع آنها. ما با واضح ترین دلایل کار نکردن VLOOKUP شروع می کنیم، بنابراین ممکن است ایده خوبی باشد که مراحل عیب یابی زیر را به ترتیب بررسی کنید.
رفع خطای #N/A در VLOOKUP
در فرمول های VLOOKUP، پیام خطای #N/A (به معنی "در دسترس نیست") زمانی نمایش داده می شود که اکسل نتواند مقدار جستجو را پیدا کند. دلایل مختلفی می تواند وجود داشته باشد که ممکن است این اتفاق بیفتد.
1. مقدار جستجو غلط املایی است
همیشه ایده خوبی است که ابتدا واضح ترین چیز را بررسی کنید: ) هنگامی که با مجموعه داده های بسیار بزرگی متشکل از هزاران ردیف کار می کنید، یا زمانی که یک مقدار جستجو تایپ می شود، چاپ اشتباه اغلب رخ می دهد. مستقیماً در فرمول.
2.VLOOKUP نمی تواند یک آرایه جدول را در کاربرگ دیگری انتخاب کند (یعنی وقتی محدوده ای را در صفحه جستجو برجسته می کنید، چیزی در آرگومان table_array در فرمول یا در کادر مربوطه فرمول ظاهر نمی شود. wizard)، به احتمال زیاد این دو برگه در نمونه های جداگانه اکسل باز هستند و نمی توانند با یکدیگر ارتباط برقرار کنند. برای اطلاعات بیشتر، لطفاً ببینید چگونه میتوان فایلهای اکسل را در کدام نمونه قرار داد. برای رفع این مشکل، کافی است تمام پنجرههای اکسل را ببندید، و سپس برگهها/کتابهای کاری را در همان نمونه (رفتار پیشفرض) دوباره باز کنید. چگونه در اکسل بدون خطا Vlookup کنیم
اگر شما نمی خواهید کاربران خود را با نمادهای خطای استاندارد اکسل بترسانید، می توانید متن کاربر پسند خود را به جای آن نمایش دهید یا اگر چیزی پیدا نشد، یک سلول خالی برگردانید. این کار را می توان با استفاده از VLOOKUP با تابع IFERROR یا IFNA انجام داد.
Catch all errors
در Excel 2007 و نسخه های جدیدتر، می توانید از تابع IFERROR برای بررسی یک فرمول VLOOKUP برای خطاها و برگرداندن فرمول خود استفاده کنید. اگر هرگونه خطایی شناسایی شود، متن خود (یا یک رشته خالی).
به عنوان مثال:
=IFERROR(VLOOKUP(E1, A2:B10, 2, FALSE), "Oops, something went wrong")
در اکسل 2003 و نسخه های قبلی، می توانید از فرمول IF ISERROR برای همین منظور استفاده کنید:
=IF(ISERROR(VLOOKUP(E1, A2:B10, 2, FALSE)), "Oops, something went wrong", VLOOKUP(E1, A2:B10, 2, FALSE))
برای جزئیات بیشتر، لطفاً به استفاده از IFERROR با VLOOKUP در اکسل مراجعه کنید.
بررسی خطاهای #N/A
برای به دام انداختن فقط خطاهای #N/A که همه انواع خطاهای دیگر را نادیده می گیرند، از تابع IFNA استفاده کنید (در Excel 2013 وبالاتر) یا فرمول IF ISNA (در همه نسخه ها).
به عنوان مثال:
=IFNA(VLOOKUP(E1, A2:B10, 2, FALSE), "Oops, no match is found. Please try again!")
=IF(ISNA(VLOOKUP(E1, A2:B10, 2, FALSE)), "Oops, no match is found. Please try again!", VLOOKUP(E1, A2:B10, 2, FALSE))
برای امروز کافی است. امیدواریم این آموزش به شما کمک کند تا از شر خطاهای VLOOKUP خلاص شوید و فرمول های شما به روشی که می خواهید کار کنند.
نحوه VLOOKUP در اکسل - آموزش تصویری
#N/A در تطابق تقریبی VLOOKUPاگر فرمول شما نزدیکترین تطابق را پیدا کند ( range_lookup آرگومان روی TRUE تنظیم شده یا حذف شده است)، خطای #N/A می تواند در دو حالت ظاهر شود. :
- مقدار جستجو کوچکتر از کوچکترین مقدار در آرایه جستجو است.
- ستون جستجو به ترتیب صعودی مرتب نشده است.
3 . #N/A در تطابق دقیق VLOOKUP
اگر به دنبال تطابق دقیق هستید ( range_lookup آرگومان تنظیم شده روی FALSE)، خطای #N/A زمانی رخ می دهد که مقداری دقیقاً برابر با جستجو باشد. مقدار یافت نشد برای اطلاعات بیشتر، مطابقت دقیق در مقابل تطابق تقریبی VLOOKUP را ببینید.
4. ستون جستجو، سمت چپ ترین ستون آرایه جدول نیست
یکی از مهم ترین محدودیت های Excel VLOOKUP این است که نمی تواند به سمت چپ خود نگاه کند. در نتیجه، یک ستون جستجو باید همیشه سمت چپ ترین ستون در آرایه جدول باشد. در عمل، ما اغلب این موضوع را فراموش می کنیم و در نهایت با خطاهای #N/A مواجه می شویم.
راه حل : اگر امکان تغییر ساختار داده های شما وجود ندارد. به طوری که ستون جستجو در سمت چپ ترین ستون باشد، می توانید از توابع INDEX و MATCH به عنوان جایگزینی برای VLOOKUP استفاده کنید. در اینجا یک مثال فرمول وجود دارد: فرمول INDEX MATCH برای جستجوی مقادیر به سمت چپ.
5. اعداد به صورت متن قالببندی میشوند
یکی دیگر از منابع رایج خطاهای #N/A در فرمولهای VLOOKUP، اعدادی است که به صورت متن قالببندی میشوند، چه در جدول اصلی یا جستجو.
این معمولاًزمانی اتفاق میافتد که دادهها را از یک پایگاه داده خارجی وارد میکنید یا اگر یک آپستروف قبل از یک عدد برای نشان دادن صفرهای ابتدایی تایپ کرده باشید، رخ میدهد.
در اینجا واضحترین شاخصهای اعداد قالببندی شده به صورت متن هستند:
راه حل: همه اعداد مشکل ساز را انتخاب کنید، روی نماد خطا کلیک کنید و تبدیل به شماره را از منوی زمینه انتخاب کنید. برای اطلاعات بیشتر، لطفاً به نحوه تبدیل متن به عدد در اکسل مراجعه کنید.
6. فضاهای پیشرو یا انتهایی
این کمترین دلیل خطای VLOOKUP #N/A است زیرا چشم انسان به سختی میتواند این فضاهای اضافی را تشخیص دهد، به خصوص زمانی که با مجموعه دادههای بزرگی کار میکند که بیشتر ورودیها در زیر اسکرول هستند. .
راه حل 1: فضاهای اضافی در مقدار جستجو
برای اطمینان از صحت کار فرمول VLOOKUP خود، مقدار جستجو را در تابع TRIM قرار دهید:
=VLOOKUP(TRIM(E1), A2:C10, 2, FALSE)
راه حل 2: فضاهای اضافی در ستون جستجو
اگر فضاهای اضافی در ستون جستجو وجود داشته باشد، راه آسانی برای جلوگیری از خطاهای #N/A در VLOOKUP نیست. در عوض، میتوانید از ترکیبی از توابع INDEX، MATCH و TRIM به عنوان فرمول آرایه استفاده کنید:
=INDEX(B2:B10, MATCH(TRUE, TRIM(A$2:A$10)=TRIM(E1), 0))
از آنجایی که این یک فرمول آرایه است، فراموش نکنید که Ctrl + Shift + Enter را فشار دهید. برای تکمیل صحیح آن (در اکسل 365 و اکسل 2021 که آرایه ها بومی هستند، این نیز به عنوان یک فرمول معمولی کار می کند).
نکته. یک جایگزین سریع، اجرای ابزار Trim Spaces است که حذف خواهد شدفضاهای اضافی هم در جداول جستجو و هم در جداول اصلی در چند ثانیه، فرمول های VLOOKUP شما را بدون خطا می کند.
#VALUE! خطا در فرمول های VLOOKUP
به طور کلی، مایکروسافت اکسل #VALUE را نمایش می دهد! اگر مقدار استفاده شده در فرمول از نوع داده اشتباه باشد، خطا دارد. در رابطه با VLOOKUP، دو منبع رایج VALUE وجود دارد! خطا.
1. مقدار جستجو از 255 کاراکتر تجاوز می کند
لطفاً توجه داشته باشید که VLOOKUP نمی تواند مقادیر حاوی بیش از 255 کاراکتر را جستجو کند. اگر مقادیر جستجوی شما از این حد فراتر رود، یک #VALUE! خطا نمایش داده می شود:
راه حل : به جای آن از فرمول INDEX MATCH استفاده کنید. در مورد ما، این فرمول کاملاً کار می کند:
=INDEX(B2:B7, MATCH(TRUE, INDEX(A2:A7= E1, 0), 0))
2. مسیر کامل به کتاب کار جستجو ارائه نشده است
اگر دادهها را از کتاب کار دیگری میکشید، باید مسیر کامل آن را وارد کنید. بهطور دقیقتر، باید نام کتاب کار از جمله پسوند را در [پرانتز مربع] قرار دهید و نام برگه و به دنبال آن علامت تعجب را مشخص کنید. اگر نام کتاب کار یا نام برگ یا هر دو حاوی فاصله یا هر کاراکتر غیر الفبایی باشد، مسیر باید در یک علامت نقل قول محصور شود.
در اینجا ساختار آرگومان table_array برای Vlookup از یک کتاب کار دیگر:
'[workbook name]sheet name'!range
یک فرمول واقعی ممکن است شبیه به این باشد:
=VLOOKUP($A$2,'[New Prices.xls]Sheet1'!$B:$D, 3, FALSE)
فرمول بالا مقدار A2 را جستجو می کند در ستون B Sheet1 در Newکتاب کار را قیمتها ، و یک مقدار منطبق را از ستون D برمیگرداند.
اگر عنصری از مسیر گم شده باشد، فرمول VLOOKUP شما کار نمیکند و خطای #VALUE را برمیگرداند (مگر اینکه کتاب کار جستجو در حال حاضر باشد. باز کنید).
برای اطلاعات بیشتر، لطفاً ببینید:
- نحوه مراجعه به برگه یا کتاب کار دیگری در اکسل
- نحوه انجام Vlookup از یک کتاب کار متفاوت
3. آرگومان col_index_num کمتر از 1 است
تصور شرایطی که کسی عمداً عددی کمتر از 1 را وارد میکند تا ستونی را برای بازگرداندن مقادیر مشخص کند، دشوار است. اما ممکن است اگر این آرگومان توسط تابع دیگری که در فرمول VLOOKUP شما قرار دارد برگردانده شود.
بنابراین، اگر آرگومان col_index_num بیشتر از 1 باشد، فرمول شما #VALUE را برمیگرداند! خطا نیز وجود دارد.
اگر col_index_num بیشتر از تعداد ستون های آرایه جدول باشد، VLOOKUP #REF را تولید می کند! خطا.
حل خطای VLOOKUP #NAME
این ساده ترین حالت است - #NAME؟ اگر اشتباهاً نام تابع را اشتباه نوشتید، خطا ظاهر می شود.
راه حل واضح است - املای آن را بررسی کنید :)
علل اصلی خطاها در Excel VLOOKUP
به غیر از VLOOKUP با داشتن یک نحو نسبتاً پیچیده، مسلماً محدودیتهای بیشتری نسبت به هر تابع اکسل دیگر دارد. به دلیل این محدودیت ها، یک فرمول به ظاهر صحیح ممکن است اغلب نتایجی متفاوت از آنچه انتظار داشتید ارائه دهد. در زیر خواهید یافتراه حل برای چند سناریو معمولی زمانی که VLOOKUP ناموفق است.
VLOOKUP به حروف بزرگ و کوچک حساس نیست
عملکرد VLOOKUP حروف بزرگ را تشخیص نمی دهد و حروف کوچک و بزرگ را یکسان نشان می دهد.
راه حل : از VLOOKUP، XLOOKUP یا INDEX MATCH در ترکیب با تابع EXACT استفاده کنید که می تواند حروف متن را مطابقت دهد. می توانید توضیحات دقیق و مثال های فرمول را در این آموزش بیابید: 5 روش برای انجام یک Vlookup حساس به حروف بزرگ و کوچک در اکسل.
یک ستون جدید درج یا از جدول حذف شد
متأسفانه VLOOKUP هر بار که یک ستون جدید از جدول جستجو حذف یا به آن اضافه می شود، فرمول ها کار نمی کنند. این به این دلیل اتفاق میافتد که سینتکس تابع VLOOKUP نیاز به تعریف شماره فهرست ستون بازگشتی دارد. هنگامی که یک ستون جدید به آرایه جدول اضافه/حذف می شود، بدیهی است که عدد شاخص تغییر می کند.
راه حل : فرمول INDEX MATCH دوباره به کمک می آید: ) با INDEX MATCH، شما محدوده جستجو و بازگشت را به طور جداگانه مشخص کنید، بنابراین می توانید بدون نگرانی در مورد به روز رسانی هر فرمول مرتبط، هر تعداد ستون را که می خواهید حذف یا درج کنید.
مرجع سلول ها هنگام کپی کردن فرمول در سلول های دیگر تغییر می کنند
عنوان توضیح جامعی از مشکل ارائه می دهد، درست است؟
راه حل : همیشه از ارجاعات مطلق (با علامت $) برای آرگومان table_array استفاده کنید، به عنوان مثال. $A$2:$C$100 یا$A:$C. با فشار دادن کلید F4 میتوانید به سرعت بین انواع مختلف مرجع جابهجا شوید.
VLOOKUP اولین مقدار یافت شده را برمیگرداند
همانطور که میدانید، Excel VLOOKUP اولین مقداری را که پیدا کرده است برمیگرداند. با این حال، شما می توانید آن را مجبور کنید که 2، 3، 4 یا هر اتفاق دیگری را که می خواهید بیاورد. همچنین راهی برای به دست آوردن آخرین تطابق یا همه موارد یافت شده وجود دارد.
راه حل ها : نمونه های فرمول در اینجا موجود است:
- VLOOKUP و بازگشت Nامین رخداد
- مقادیر چندگانه VLOOKUP
- فرمول XLOOKUP برای به دست آوردن آخرین مطابقت
چرا VLOOKUP من برای برخی از سلول ها کار می کند اما برای برخی دیگر کار نمی کند؟
زمانی که شما فرمول VLOOKUP دادههای صحیح را در برخی سلولها و خطاهای #N/A را در برخی دیگر برمیگرداند، ممکن است چند دلیل برای این اتفاق وجود داشته باشد.
1. آرایه جدول قفل نیست
فرض کنید این فرمول را در ردیف 2 دارید (مثلاً در E2) که به خوبی کار می کند:
=VLOOKUP(D2, A2:B10, 2, FALSE)
هنگام کپی شدن در ردیف 3، فرمول به:
=VLOOKUP(D3, A3:B11, 2, FALSE)
به دلیل استفاده از یک مرجع نسبی برای table_array تغییر می کند، بر اساس موقعیت نسبی ردیفی که فرمول در آن کپی می شود تغییر می کند. ، در مورد ما از A2:B10 تا A3:B11. بنابراین، اگر مطابقت در ردیف 2 باشد، پیدا نمی شود!
راه حل : هنگام استفاده از فرمول VLOOKUP برای بیش از یک سلول، همیشه آرایه جدول را قفل کنید مرجع با علامت $ مانند $A$2:$B$10.
2. مقادیر متن یا انواع داده مطابقت ندارند
دیگردلیل رایج شکست VLOOKUP تفاوت بین مقدار جستجوی شما و مقدار مشابه در ستون جستجو است. در برخی موارد، تفاوت به قدری ظریف است که تشخیص آن از نظر بصری دشوار است.
راه حل : هنگامی که VLOOKUP یک خطای #N/A برمی گرداند در حالی که می توانید مقدار جستجو را به وضوح در قسمت مشاهده کنید. ستون جستجو، و ظاهراً هر دو دقیقاً یکسان نوشته شدهاند، اولین کاری که باید انجام دهید این است که علت اصلی مشکل را تعیین کنید - فرمول یا دادههای منبع.
برای اینکه ببینید آیا این دو مقدار هستند یا خیر. یکسان یا متفاوت، یک مقایسه مستقیم به این صورت انجام دهید:
=E1=A4
که در آن E1 مقدار جستجوی شما و A4 یک مقدار یکسان در ستون جستجو است.
اگر فرمول FALSE را برمی گرداند، این بدان معناست که مقادیر به نحوی متفاوت هستند، اگرچه کاملاً شبیه هم هستند.
در مورد مقادیر عددی ، بیشترین دلیل ممکن اعداد قالب بندی شده به صورت متن هستند.
در مورد مقادیر متن ، به احتمال زیاد مشکل در فضاهای اضافی است. برای تأیید این موضوع، طول کل دو رشته را با استفاده از تابع LEN بیابید:
=LEN(E1)
=LEN(A4)
اگر اعداد به دست آمده متفاوت هستند (مانند تصویر زیر )، سپس مقصر را مشخص کردید - فضاهای اضافی:
برای حل مشکل، فضاهای اضافی را حذف کنید یا از فرمول INDEX MATCH TRIM به عنوان راه حل استفاده کنید.
چرا VLOOKUP من دادههای اشتباهی میآورد؟
دلایل بیشتری میتواند وجود داشته باشد که چراVLOOKUP شما مقدار اشتباهی را برمی گرداند:
- حالت جستجوی نادرست . اگر میخواهید مطابقت دقیق داشته باشید، مطمئن شوید که آرگومان range_lookup را روی FALSE تنظیم کنید. پیشفرض TRUE است، بنابراین اگر این آرگومان را حذف کنید، VLOOKUP فرض میکند که به دنبال یک مطابقت تقریبی هستید و نزدیکترین مقدار را که کوچکتر از مقدار جستجو است جستجو میکند.
- ستون جستجو نیست. مرتب شده . برای اینکه VLOOKUP تطبیق تقریبی ( range_lookup تنظیم شده روی TRUE) به درستی کار کند، اولین ستون در آرایه جدول باید به ترتیب صعودی، از کوچکترین به بزرگترین مرتب شود.
- تکراری ها در ستون جستجو . اگر ستون جستجو حاوی دو یا چند مقدار تکراری باشد، VLOOKUP اولین مطابق پیدا شده را برمی گرداند، که ممکن است آن چیزی نباشد که شما انتظار دارید.
- ستون بازگشتی نادرست . شماره ایندکس را در آرگومان سوم دوبار بررسی کنید :)
VLOOKUP بین دو صفحه کار نمی کند
ابتدا، باید توجه داشت که دلایل رایج #N/A، خطاهای #VALUE و #REF که در بالا مورد بحث قرار گرفتند ممکن است هنگام جستجو از یک برگه دیگر، همین مشکلات را ایجاد کنند. اگر اینطور نیست، نکات زیر را بررسی کنید:
- مطمئن شوید که ارجاع خارجی به برگه دیگری یا کتاب کار دیگری صحیح است.
- هنگام انجام Vlookup از کتاب کار دیگری که در حال حاضر بسته است ، بررسی کنید که فرمول شما حاوی مسیر کامل به کتاب کار بسته است.
- اگر