يعرض Excel الخطأ #N/A في دالة VLOOKUP حين تبدو القيم في ملفَّي CSV متطابقة على الشاشة لكنها ليست كذلك في الذاكرة. أحد الملفَّين يخزّن المفتاح كنص، والآخر يخزّنه كرقم أو تاريخ بصيغة رقمية أو نص يحتوي على أحرف إضافية. VLOOKUP تقارن القيمة المخزّنة، لا ما يظهر على الشاشة.
ليست المشكلة في المعادلة. المشكلة في الاستيراد. ملفات CSV لا تحمل أنواع بيانات Excel. عند فتح الملف، يقرر Excel تلقائياً كيف يفسّر كل عمود. صفّان يبدوان متطابقَين بعد التنسيق قد يخزّنان قيمتَين مختلفتَين.
لماذا تفشل المطابقة رغم تطابق القيم ظاهرياً
| ما تراه | ما يخزّنه الملف A | ما يخزّنه الملف B | النتيجة |
|---|---|---|---|
| 12345 | رقم 12345 | نص "12345" | لا تطابق |
| 0012345 | نص "0012345" | رقم 12345 | لا تطابق |
| 2026-05-01 | تاريخ بصيغة رقمية فعلية | نص "2026-05-01" | لا تطابق |
| INV-1007 | نص "INV-1007 " | نص "INV-1007" | لا تطابق |
| 1,234.00 | نص "1,234.00" | رقم 1234 | لا تطابق |
هذا هو السبب في أن تغيير تنسيق العمود إلى رقم أو تاريخ لا يُصلح المشكلة في الغالب. التنسيق يغيّر العرض، لا القيمة المخزّنة دائماً.
هذه هي مشكلة VLOOKUP الكلاسيكية حين لا تطابق رقماً محفوظاً كنص. المطابقة تجري بالتطابق التام، والتام يعني التام.
افحص أول صف معطوب قبل تعديل الملف بأكمله
ابحث عن صف يُفترض أن يتطابق لكنه لا يفعل. اختبره في أعمدة مساعدة قبل أن تمسّ الورقة بأكملها.
| الفحص | المعادلة | ما تكشفه |
|---|---|---|
| نوع البيانات | =TYPE(A2) و=TYPE(B2) | 1 يعني رقماً، 2 يعني نصاً. إذا كان أحد الجانبَين 1 والآخر 2، فهذا هو مصدر التعارض. |
| الطول الظاهر | =LEN(A2) و=LEN(B2) | أطوال مختلفة لقيم تبدو متطابقة تعني في الغالب مسافات أو أحرفاً مخفية. |
| فحص التاريخ الفعلي | =ISNUMBER(A2) | TRUE يعني أن Excel يخزّن رقماً أو تاريخاً. FALSE يعني نصاً. |
| فحص الأحرف المخفية | =A2=TRIM(CLEAN(SUBSTITUTE(A2,CHAR(160)," "))) | FALSE يعني أن الخلية تتغيّر عند تنظيفها. |
| المساواة المباشرة | =A2=B2 | FALSE يؤكد أن Excel يرى قيمتَين مخزّنتَين مختلفتَين. |
إذا لم تكشف هذه الفحوصات عن أي تعارض في التنسيق، فالمشكلة في مكان آخر: مفتاح البحث خاطئ، أو نطاق البحث يبدأ من العمود الخطأ، أو الوسيطة الرابعة في VLOOKUP مفقودة، أو القيمة غائبة فعلاً.
صحِّح أعمدة النص والرقم دون المساس بالمعرّفات
إذا كان العمود يجب أن يكون رقمياً، حوّله في عمود مساعد. لا تُعدِّل عمود CSV الخام أولاً.
| الحالة | المعادلة المساعدة | تستخدمها في |
|---|---|---|
| قيمة رقمية مخزّنة كنص | =VALUE(TRIM(A2)) | المبالغ والأعداد والمراجع الرقمية |
| نص رقمي يحتوي على فواصل أو رموز عملة | =VALUE(SUBSTITUTE(SUBSTITUTE(TRIM(A2),",",""),"$","")) | حقول المبالغ المستوردة كنص |
| معرّف تهمّ فيه الأصفار البادئة | احتفظ بالجانبَين كنص | رموز الحسابات والمراجع المكمَّلة والرموز المشابهة للـ SKU |
الفارق الجوهري: بعض القيم يجب أن تتحول إلى أرقام، وبعضها يجب أن يبقى نصاً. إذا كان المفتاح 000731، فتحويله إلى 731 يحلّ مشكلة ويخلق أخرى.
لإبقاء معرّف مكمَّل قابلاً للمطابقة، أجبر الجانبَين على النص بدلاً من تحويل أحدهما إلى رقم. إذا خزّن ملف 000731 كنص وخزّن الآخر 731 كرقم، فامنح كليهما القناع نفسه بعرض ثابت:
=TEXT(A2,"000000")طابِق على الناتج. يجب أن يساوي عرض القناع الطول الحقيقي للمرجع، وإلا كمّلت جانباً أكثر من الآخر وأعدت بناء التعارض. إن لم تكن المعرّفات بعرض ثابت، فلا تكمّل. استورد كلا العمودَين كنص بدلاً من ذلك، قبل أن يحذف Excel الأصفار.
البيانات > نص إلى أعمدة > إنهاء حلٌّ سريع حين يُستورد عمود رقمي أو تاريخي بأكمله بشكل خاطئ. يُجبر Excel على إعادة تفسير القيم. استخدمه مع المبالغ والتواريخ. لا تستخدمه مع المعرّفات التي تعتمد على الأصفار البادئة.
أزِل المسافات والأحرف غير المرئية حين تفشل بعض الصفوف فحسب
مسافة واحدة في نهاية الخلية كافية لإرجاع VLOOKUP الخطأ #N/A. وكذلك مسافة غير فاصلة منسوخة من تصدير ويب، أو علامة جدولة، أو فاصل سطر داخل الخلية.
| المشكلة المخفية | ما تلاحظه | الحلّ |
|---|---|---|
| مسافة في البداية أو النهاية | القيم تبدو متطابقة لكن LEN() تختلف | TRIM() |
| مسافة غير فاصلة | TRIM() لا تُصلحها | SUBSTITUTE(A2,CHAR(160)," ") |
| علامات جدولة أو فواصل أسطر | صفوف عشوائية تفشل بعد النسخ أو الاستيراد | CLEAN() |
تأكّد أولاً من الحرف الذي لديك. الحلّ يعتمد عليه. =CODE(RIGHT(A2,1)) تُرجِع 32 لمسافة عادية، و160 لمسافة غير فاصلة، و9 لعلامة جدولة. المسافة العادية تستجيب لـ TRIM(). أما CHAR(160) فلا، لأن TRIM() لا تزيل سوى المسافة القياسية. المسافات غير الفاصلة تأتي من صفحات الويب والتصدير عبر المتصفح، وتبقى رغم كل TRIM() حتى تستبدلها.
للعمل مع ملفات CSV، المعادلة المساعدة الأكثر أماناً هي:
=TRIM(CLEAN(SUBSTITUTE(A2,CHAR(160)," ")))طبّقها على كلا الملفَّين، ثم وجّه البحث إلى الأعمدة المنظّفة بدلاً من التصدير الخام. إذا استمر فشل المطابقة، فالحرف ليس في النهاية. تنقّل عبر القيمة بـ =CODE(MID(A2,n,1)) للعثور على مسافة غير فاصلة أو علامة جدولة بداخلها. INV ثم CHAR(160) ثم 1007 لن يطابق INV-1007 مهما أزلت من المسافات النهائية. إذا تركّزت الأخطاء في ملف مصدر واحد، لماذا تُفسد المسافات المخفية المطابقة في ملفات CSV يتعمّق في مصدر هذه الأحرف غير المرئية.
حوِّل كلا عمودَي التاريخ إلى مفتاح مطابقة واحد
أعمدة التاريخ هي حيث يختبئ تعارض التنسيق بين ملفات CSV أفضل ما يكون. ملف يفتح 2026-05-01 كنص، وآخر يفتح 05/01/2026 كتاريخ Excel فعلي. حتى بعد تنسيق كلتا الخليتَين بالطريقة نفسها، قد تستمر المطابقة في الفشل: إحداهما نص والأخرى رقم تسلسلي.
| القيمة الخام | المخزّن على الأرجح كـ | مفتاح مساعد آمن |
|---|---|---|
| 2026-05-01 | نص من CSV بتنسيق ISO | =TEXT(DATE(LEFT(A2,4),MID(A2,6,2),RIGHT(A2,2)),"yyyy-mm-dd") |
| 5/1/2026 | تاريخ Excel فعلي | =TEXT(A2,"yyyy-mm-dd") |
| 01/05/2026 | تاريخ نصي غامض | افصل اليوم والشهر والسنة صراحةً قبل إعادة بناء التاريخ |
لتاريخ نصي بتنسيق dd/mm/yyyy، استخدم:
=TEXT(DATE(RIGHT(A2,4),MID(A2,4,2),LEFT(A2,2)),"yyyy-mm-dd")إذا كان المصدر بتنسيق mm/dd/yyyy، أبدِل موضعَي اليوم والشهر في المعادلة. الهدف ليس تنسيقاً أجمل. الهدف أن ينتج كلا الملفَّين المفتاح المخزّن ذاته.
أثبت أن التصحيح يعمل على صف حقيقي قبل توحيد الملف بأكمله
تصحيح الورقة بأكملها أكثر أماناً حين تستطيع إثبات أن صفاً معطوباً تحوّل إلى صف متطابق لسبب محدد.
افترض أن الملف A يحتوي على:
| المفتاح الخام | ما خزّنه Excel |
|---|---|
001245 | نص بأصفار بادئة |
2026-05-01 | تاريخ كنص |
1,234.00 | مبلغ كنص |
والملف B يحتوي على:
| المفتاح الخام | ما خزّنه Excel |
|---|---|
1245 | رقم |
5/1/2026 | تاريخ Excel فعلي |
1234 | رقم |
إذا قارنت هذه القيم الخام مباشرةً، قد يفشل كل بحث لسبب مختلف:
- المعرّف يفشل لأن أحد الجانبَين احتفظ بالأصفار البادئة والآخر لم يحتفظ بها
- التاريخ يفشل لأن أحد الجانبَين نص والآخر رقم تسلسلي
- المبلغ يفشل لأن أحد الجانبَين مخزّن كنص يحتوي على علامات ترقيم
التصحيح ليس معادلة واحدة تُنسخ بشكل أعمى على كل الأعمدة. هي ثلاثة قرارات توحيد مختلفة:
| نوع الحقل | مفتاح موحَّد آمن |
|---|---|
| معرّف يجب الإبقاء على أصفاره | نص منظَّف على كلا الجانبَين |
| تاريخ | مفتاح نصي yyyy-mm-dd معاد بناؤه على كلا الجانبَين |
| مبلغ | رقم حقيقي على كلا الجانبَين |
حين تُثبت أن صفاً واحداً يتطابق بعد التوحيد الصحيح، انسخ التصحيح إلى العمود بأكمله. هذا الترتيب مهم. يمنعك من "تصحيح" 5,000 صف بقاعدة التحويل الخاطئة.
التصحيح الذي يخلق تعارضاً ثانياً
التصحيح الخاطئ الأكثر شيوعاً هو تحويل كل شيء إلى أرقام لأن الصف الأول المعطوب بدا رقمياً.
هذا يُوجد فشلاً ثانياً في الحالات التي يكون فيها المفتاح رقمياً في المظهر فحسب:
| يبدو رقمياً | ما هو في الحقيقة | ما يفعله التصحيح الخاطئ |
|---|---|---|
000731 | معرّف مكمَّل بأصفار | يحذف الأصفار البادئة |
001245889917744 | مرجع طويل | خطر فقدان الدقة إذا خزّنه Excel كرقم |
2026-05-01 | مفتاح تاريخ كنص | يحوّل القيمة إلى رقم تسلسلي في جانب واحد فقط |
الخطأ العكسي وارد أيضاً: يُغلّف شخص كل مفاتيح البحث في TEXT() فيحوّل مقارنات المبالغ عن غير قصد إلى مقارنات نصية.
السؤال الصحيح ليس «كيف أجعل العمودَين يبدوان متطابقَين؟». السؤال الصحيح هو «ما النوع الذي يجب أن يكون عليه هذا الحقل للمطابقة؟».
استخدم هذا التقسيم:
- المعرّفات والمراجع: نص في الغالب
- التواريخ: مفتاح مقارنة معاد بناؤه في الغالب
- المبالغ: أرقام في الغالب
إذا حلّ تصحيح واحد المشكلة في الصف الأول المعطوب لكنه أوجد تعارضاً جديداً في الفئة التالية من الصفوف، فأنت لم توحّد الملف. نقلت الخطأ فحسب.
شغِّل VLOOKUP على الأعمدة الموحَّدة، لا على التصدير الخام
حين يمتلك كل جانب مفتاحاً مساعداً منظَّفاً، ابنِ البحث على هذا المفتاح.
| نوع مفتاح المطابقة | ما يجب أن تنتهي إليه كلتا العمودَين المساعدتَين |
|---|---|
| كود رقمي بلا أصفار بادئة | رقم |
| مرجع يحتوي على حروف أو أصفار بادئة | نص منظَّف |
| تاريخ | مفتاح التاريخ الموحَّد ذاته، عادةً yyyy-mm-dd |
نمط أساسي يبدو هكذا:
=VLOOKUP(E2,$J$2:$K$5000,2,FALSE)في هذا المثال، E2 هو المفتاح الموحَّد من الملف الأول، وعمود J في جدول البحث هو المفتاح الموحَّد من الملف الثاني. FALSE مهمة. بدونها قد يحاول Excel المطابقة التقريبية، وهي مشكلة مختلفة.
إذا كان للملفَّين أيضاً هياكل وعناوين مختلفة، فالمشكلة الأكبر لم تعد VLOOKUP واحدة. إنها مقارنة الملفَّين في حدّ ذاتها. في هذه الحالة، كيفية مقارنة ملفَّي CSV لكشف الحساب البنكي بدون معادلات هو مسار العمل الأنسب.
حين يتحوّل هذا إلى إصلاح شهري متكرر
ما يبدو خطأ في معادلة التسوية في Excel هو في الغالب مشكلة الاستيراد ذاتها تتكرر على تصديرات جديدة. شهر تُفتح فيه التواريخ كنص. وفي الشهر التالي تفقد معرّفات المعاملات أصفارها البادئة. المعادلة تتحمّل اللوم لأنها حيث يظهر الخطأ.
