cellio

دالة VLOOKUP لا تعمل؟ 8 أسباب للخطأ N/A# وكيفية حلها

هل تظهر لك دالة VLOOKUP الخطأ N/A# أو نتيجة خاطئة؟ تعرف على أشهر 8 أسباب من المسافات الزائدة إلى تثبيت النطاق، مع طريقة الحل لكل مشكلة.

بقلم Ayoub Farid · · 3 دقائق قراءة

أنت ترى القيمة بعينك داخل جدول البيانات، لكن دالة VLOOKUP تُصرّ على إظهار الخطأ #N/A. هذا الموقف من أكثر الأمور إحباطاً عند استخدام معادلات إكسل، وغالباً ما يعود السبب إلى واحدة من هذه المشكلات الثماني. راجع هذه الحلول بالترتيب لتشخيص المشكلة وعلاجها.

1. المسافات الإضافية أو الخفية

القيمة "P-102 " (مع مسافة إضافية في النهاية) تختلف تماماً عن "P-102". والبيانات المستوردة من مصادر خارجية عادة ما تكون مليئة بهذه المسافات.

كيف تتأكد: استخدم =LEN(A3) وستجد أن عدد الأحرف الظاهر في النتيجة أكبر مما تراه في الخلية. طريقة الحل: نظّف بياناتك باستخدام دالة TRIM، أو أدرج الدالة مباشرة داخل صيغة البحث: =VLOOKUP(TRIM(F2),$A$2:$C$100,3,FALSE).

2. أرقام مخزنة كنصوص (أو نصوص مخزنة كأرقام)

يحتوي الجدول على القيمة 1042 كنص، بينما قيمة البحث المدخلة هي الرقم 1042 نفسه. لا يرى برنامج Excel أي تطابق بينهما.

كيف تتأكد: تلاحظ محاذاة إحدى القيمتين لليمين والأخرى لليسار، أو أن معادلة =ISTEXT(A2) تُرجع القيمة TRUE. طريقة الحل: حوّل العمود كاملاً عبر التبويب (بيانات Data > نص إلى أعمدة Text to Columns > إنهاء Finish)، أو طابق الأنواع داخل المعادلة مباشرة: =VLOOKUP(F2&"",...) (لتحويل الرقم إلى نص) أو =VLOOKUP(--F2,...) (لتحويل النص إلى رقم).

3. عمود البحث ليس هو العمود الأول في النطاق

تبحث دالة VLOOKUP دائماً في العمود الأول فقط من جدول البيانات المحدد (table_array). فإذا كانت الأكواد التي تبحث عنها موجودة في العمود B ونطاق المعادلة يبدأ من العمود A، فستبحث الدالة في المكان غير الصحيح.

طريقة الحل: اجعل بداية النطاق تبدأ من عمود البحث مباشرة، أو استخدم دالة XLOOKUP أو تركيبة INDEX MATCH.

4. تحرك النطاق عند سحب المعادلة للأسفل

عند كتابة =VLOOKUP(F2,A2:C10,3,FALSE) ثم سحب المعادلة للأسفل، يتحول النطاق تلقائياً بسبب المرجع النسبي إلى A3:C11 ثم A4:C12… مما يؤدي لخروج الصفوف الأولى من نطاق البحث.

طريقة الحل: ثبّت حدود النطاق باستخدام المرجع المطلق: $A$2:$C$10. راجع دليلنا حول المرجع المطلق.

5. نسيان المعامل FALSE (التطابق التقريبي غير المقصود)

إذا تركت الوسيطة الرابعة فارغة، تعتمد دالة VLOOKUP تلقائياً نظام التطابق التقريبي. وعند تطبيق ذلك على بيانات غير مرتبة تصاعدياً، تظهر لك النتيجة إما #N/A، أو الأسوأ من ذلك: استرجاع قيمة من صف خاطئ تماماً دون أي تنبيه بوجود خطأ.

طريقة الحل: احرص دائماً على إنهاء الدالة بالمعامل FALSE لضمان التطابق التام.

6. رقم العمود خارج حدود النطاق المتاح

إذا كتبت في وسيطة رقم العمود col_index_num رقماً يتجاوز إجمالي عدد الأعمدة في النطاق المحدد فستظهر رسالة الخطأ !REF#. أما إذا وضعت رقماً أقل من 1 فستحصل على الخطأ !VALUE#.

طريقة الحل: احسب ترتيب الأعمدة بدءاً من العمود الأول لنطاق البحث الفعلي، وليس بدءاً من العمود A في ورقة العمل.

7. القيمة غير موجودة بالفعل في البيانات

قد تكمن المشكلة في خطأ إملائي، أو اختلاف في طريقة الكتابة (مثل "Coca Cola" مقابل "Coca-Cola")، أو أن السجل غير مسجل في الأساس.

طريقة الحل: تعامل مع حالات عدم التطابق باحترافية عبر دمج الدالة: =IFERROR(VLOOKUP(...),"غير موجود"). راجع شرح دالة IFERROR.

8. إدراج عمود جديد في الجدول

كتابة رقم العمود كرقم ثابت (مثل 3) ستجعله يشير إلى عمود خاطئ إذا أضاف شخص ما عموداً جديداً داخل الجدول لاحقاً. لن يظهر لك تنبيه بوجود خطأ، ولكن النتيجة المسترجعة ستكون خاطئة.

طريقة الحل: استخدم دالة XLOOKUP لأنها تشير مباشرة إلى عمود النتيجة، أو استخدم دالة MATCH لتحديد رقم العمود ديناميكياً.

خطوات سريعة لتشخيص الخطأ

  1. انسخ قيمة البحث والقيمة المقابلة لها في الجدول وضعهما في خليتين متجاورتين.
  2. اكتب =F2=A3 ← إذا كانت النتيجة FALSE فهما غير متطابقتين.
  3. قارن الطول عبر =LEN(F2) مقابل =LEN(A3) ← للكشف عن وجود مسافات إضافية.
  4. افحص نوع القيمة عبر =ISNUMBER(F2) مقابل =ISNUMBER(A3) ← للكشف عن تعارض النصوص والأرقام.

الأسئلة الشائعة

لماذا تُظهر دالة VLOOKUP الخطأ #N/A رغم وجود القيمة في الجدول؟

يعود ذلك غالباً إلى وجود مسافات خفية إضافية، أو تعارض في تنسيق البيانات بين نص ورقم في إحدى الخليتين.

لماذا تسترجع دالة VLOOKUP نتائج خاطئة؟

تحدث هذه المشكلة إما بسبب تفعيل التطابق التقريبي (نسيان كتابة المعامل FALSE)، أو تحديد رقم عمود غير صحيح في وسيطة المعادلة.

كيف أجعل معادلة VLOOKUP تتجاهل الأخطاء ولا تعرضها؟

يمكنك إحاطتها بدالة IFERROR بالشكل التالي: =IFERROR(VLOOKUP(...),"").

هل تغني دالة XLOOKUP عن هذه الحلول وتتجنب الأخطاء؟

تتلافى دالة XLOOKUP تلقائياً مشكلات ترقيم الأعمدة والبحث نحو اليمين واليسار وخيار التطابق التقريبي الافتراضي، لكنها تظل بحاجة لتنظيف البيانات من المسافات الزائدة وتوحيد صيغ الأرقام والنصوص.

تابع القراءة