الصفوف ليست مفقودة دائماً. في Excel، يبدو ملفّا CSV غير متوافقَين في الغالب لأن ترتيب الصفوف تغيّر، أو تغيّر تنسيق المفتاح، أو لأن أحد الملفَّين لا يغطّي النطاق الزمني نفسه الذي يغطّيه الآخر.

لهذا تفشل المقارنة صفاً بصف بهذه السرعة. تصديرات CSV المالية لا تحفظ المعنى حسب رقم الصف، بل حسب مفتاح ثابت: معرّف المعاملة، أو معرّف الدفعة، أو رقم الفاتورة، أو مزيج من التاريخ والمبلغ حين لا يوجد معرّف واحد.

ماذا تعني «الصفوف المفقودة» في الغالب

العَرَضما يعنيه في الغالبالفحص الأول
كل شيء يتوقف عن التطابق بعد الصف 214أحد الملفَّين مرتَّب بشكل مختلفافحص مفتاح المطابقة، لا رقم الصف
صف يبدو مفقوداً في أحد الملفَّينالمفتاح مخزّن بشكل مختلفقارن TYPE() وLEN() على المفتاحَين
الأعداد تختلف ببضعة صفوفعوامل تصفية، أو صفوف فارغة، أو نطاق زمني مختلفافحص عدد الصفوف وأقدم تاريخ وأحدثه
أحد الملفَّين به صفوف زائدة في الأعلىانزياح العناوين أو أسطر تمهيديةحدِّد أين يبدأ صف العنوان الحقيقي
صف يبدو مفقوداً بعد الاستيرادالسجلّ مكرّر بتنسيق مفتاح آخرابحث عن أصفار بادئة أو مسافات أو تحويل تاريخ

إذا اعتمدت موضع الصف وحدةً للمقارنة، فإن سجلاً واحداً منزاحاً يجعل كل صف تحته يبدو خاطئاً. هذه ليست مشكلة صفوف مفقودة، بل مشكلة في منهج المقارنة.

قبل أن تلمس أي معادلة

ابدأ من بنية الملف. هذه الفحوصات تستغرق وقتاً أقل من إعادة بناء معادلات وُجِّهت إلى الهدف الخطأ.

الفحصما يجب التأكد منه
مفتاح المطابقةأي عمود يحدّد المعاملة بشكل فريد في كلا الملفَّين
صف العنوانهل يبدأ الملفّان من صف العنوان الحقيقي نفسه
عدد الصفوفهل أحد الملفَّين أقصر قبل أي تصفية
النطاق الزمنيهل يغطّي التصديران التاريخ الأول والأخير نفسهما
عوامل التصفيةهل هناك صفوف مخفية تجعل أحد الملفَّين يبدو ناقصاً
نوع المفتاحهل المفتاح نص في ملف ورقم في الآخر

في الملفات البنكية وملفات دفتر الأستاذ، نادراً ما يكون المفتاح «الصف 237». بل هو مرجع معاملة، أو معرّف سطر في كشف الحساب، أو مرجع دفعة، أو رقم فاتورة، أو مفتاح مركّب مقصود مثل date|amount|reference.

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

طابِق الأعمدة قبل أن تطابق الصفوف

ملفّا CSV من نظامَين مختلفَين نادراً ما يستخدمان أسماء الأعمدة نفسها، حتى حين يقصدان الشيء نفسه.

عنوان الملف Aعنوان الملف Bالمعنى نفسه؟
Transaction IDReferenceنعم
Posting DateValue Dateغالباً
Gross AmountCreditأحياناً
DescriptionMemoأحياناً
Payout IDBatch Refنعم

إذا لم تتطابق العناوين بوضوح، فتوقّف عند ذلك وقرّر أي الحقول ستحدّد المطابقة. لا تمضِ ببحث يفترض أن Reference وDescription قابلان للتبادل.

أسرع مقارنة موثوقة تقوم على:

  1. مفتاح مطابقة موحَّد واحد في الملف A
  2. المفتاح الموحَّد نفسه في الملف B
  3. عمود حالة يصنّف كل صف: متطابق، أو مفقود، أو مكرّر

وحِّد المفتاح قبل البحث عن الصفوف المفقودة

من هنا تأتي معظم الصفوف المفقودة الزائفة. المعاملة موجودة في كلا الملفَّين، لكن المفتاح مخزّن بشكل مختلف.

ما تراهما يخزّنه الملف Aما يخزّنه الملف Bالنتيجة
0001842نص بأصفار بادئةرقم 1842صف مفقود زائف
2026-05-10تاريخ كنصرقم Excel تسلسليصف مفقود زائف
INV-7721INV-7721 بمسافة في النهايةINV-7721صف مفقود زائف
REF-0091نص بأحرف كبيرةنص بأحرف صغيرة في عملية حسّاسة لحالة الأحرفاختلاف زائف

استخدم أصغر تصحيح يُثبت المشكلة:

  • =TRIM(CLEAN(SUBSTITUTE(A2,CHAR(160)," "))) لمشكلات المسافات والأحرف المخفية
  • =TEXT(A2,"0") حين يجب أن يبقى المفتاح الرقمي نصاً
  • =VALUE(A2) حين يجب أن يصبح المفتاح رقماً حقيقياً
  • =TEXT(A2,"yyyy-mm-dd") حين يجب أن يقارن الملفّان على مفتاح التاريخ نفسه

لا تستبدل المفتاح الخام. ابنِ بجانبه عموداً مساعداً موحَّداً لترى ما الذي تغيّر.

مثال عملي صغير قبل أن تمسح الملف كله

افترض أن الملف A يحتوي على مفاتيح المعاملات هذه:

المفتاح الخام للملف A
0001842
0001843
0001844

والملف B يحتوي على:

المفتاح الخام للملف B
1842
1843
1845

إذا قارنت المفاتيح الخام، يخبرك Excel أن الصفوف الثلاثة كلها خاطئة. لكن هذه ليست الإجابة الحقيقية.

بعد توحيد المفتاح بشكل صحيح، تصبح النتيجة:

المفتاح الموحَّدحالة الملف Aحالة الملف Bما المعنى
0001842موجودمفقودالملف B فقد الأصفار البادئة أو يستخدم تنسيق مفتاح آخر
0001843موجودمفقودالمشكلة نفسها أعلاه
0001844موجودمفقودغائب فعلاً إذا لم يوجد مفتاح بديل
1845مفقودموجودالملف B به صف لا يملكه الملف A

يبيّن هذا المثال أن البحث عن الصفوف المفقودة هو في جوهره توحيد للمفاتيح أولاً. وما لم يتحدث الملفّان لغة المعرّفات نفسها، تبقى نتيجة «مفقود» غير جديرة بالثقة.

اكشف الصفوف المفقودة فعلاً بفحص عكسي

أسرع طريقة لإثبات أن صفاً غائب فعلاً هي الفحص في الاتجاهَين.

1. ابنِ عمود مفتاح منظَّف في كل ملف

افترض أن الملف A يستخدم العمود E للمفتاح المنظَّف والملف B يستخدم العمود J.

2. علِّم صفوف الملف A غير الموجودة في الملف B

صيغة
=IF(COUNTIF($J$2:$J$5000,E2)=0,"Missing from File B","Matched")

هذا أفضل من فحص بصري صفاً بصف، لأنه يتجاهل الترتيب ويتحقق من الوجود عبر المفتاح.

3. شغِّل الفحص العكسي في الملف B

صيغة
=IF(COUNTIF($E$2:$E$5000,J2)=0,"Missing from File A","Matched")

الفحص العكسي مهم. معادلة باتجاه واحد لا تكشف إلا جانباً واحداً من الفرق.

4. علِّم المكرّرات قبل أن تثق بالنتيجة

صيغة
=IF(COUNTIF($E$2:$E$5000,E2)>1,"Duplicate key","Unique")

إذا كان المفتاح مكرّراً، فقد يبدو صف مفقوداً بينما المشكلة الحقيقية أن مفتاح المقارنة ليس فريداً بما يكفي.

ما الذي يتغيّر حين لا يوجد معرّف معاملة واحد

بعض الملفات المالية لا تمنحك عمود مفتاح نظيفاً واحداً. ملفات CSV البنكية، وتصديرات الدفعات، ودفاتر الأستاذ المُمسوكة يدوياً تجبرك غالباً على بناء واحد.

في هذه الحالة، لا تستخدم مفتاحاً مركّباً إلا بعد أن تقرّر أي الحقول ثابتة بما يكفي للوثوق بها:

مفتاح ضعيفلماذا يفشل
المبلغ وحدهالتكرارات شائعة
التاريخ وحدهصفوف كثيرة تشترك في التاريخ نفسه
الوصف وحدهالأوصاف تتغيّر أو تُقتطع
مفتاح مركّب أفضللماذا يعمل بشكل أفضل
`dateamountreference`يحتفظ بأقوى معرّف حين يوجد
`dateamounttype`مفيد حين تغيب المراجع لكن شكل الصف ثابت
`payout_idnet_amount`مفيد لملفات الدفعات المجمّعة

ابنِ المفتاح بالطريقة نفسها في كلا الملفَّين حتى ينتج الجانبان سلاسل متطابقة:

صيغة
=A2&"|"&TEXT(C2,"yyyy-mm-dd")&"|"&TEXT(D2,"0.00")

أجبر التاريخ والمبلغ على صيغ ثابتة داخل المفتاح. إذا ترك جانب المبلغ 1250 وترك الآخر 1,250.00، فلن تتطابق المفاتيح المركّبة حتى لو تطابقت الصفوف.

هنا أيضاً تظهر مشكلات «واحد إلى متعدّد». صف دفعة واحد قد يمثّل عدة مبيعات. وتصدير دفتر أستاذ واحد قد يقسم حركة بنكية واحدة إلى قيدَين محاسبيَّين. إذا كان الملفّان يسجّلان الحدث نفسه على مستويَين مختلفَين، فالصف ليس مفقوداً. شكله هو المختلف.

افصل الصفوف المفقودة عن الصفوف غير المتطابقة

مقارنة الملفات لا تنفع إلا حين تخبرك بنوع المشكلة التي بين يديك.

الحالةما المعنى
متطابقالمفتاح الموحَّد موجود في كلا الملفَّين
مفقود من الملف Aالمفتاح موجود في الملف B فقط
مفقود من الملف Bالمفتاح موجود في الملف A فقط
مفتاح مكرّرالمفتاح المختار لا يحدّد الصفوف بشكل فريد
اختلاف في المبلغ أو التاريخالصف موجود في كلا الملفَّين، لكن حقل مقارنة يختلف

هنا يضيع الناس الوقت مع VLOOKUP. يستخدمون بحثاً واحداً للإجابة عن سؤالَين مختلفَين:

  • هل الصف موجود؟
  • وإن كان موجوداً، هل تتوافق بقية الحقول؟

هذان فحصان منفصلان. أثبت الوجود أولاً. وبعد ذلك فقط قارن أعمدة المبلغ أو التاريخ أو الحالة.

إذا احتجت إلى تمريرة ثانية على اختلافات الحقول بعد إثبات الوجود، فإن كيفية مقارنة قائمتَي Excel وكشف الفروقات هي الخطوة التالية.

النتيجة التي يمكنك الوثوق بها

في النهاية، يجب ألا تقول ورقتك «بعض الصفوف مفقودة» فحسب. يجب أن تنتج نتيجة يمكنك التصرّف بناءً عليها.

فئة النتيجةما يجب أن تحصل عليه
الصفوف المتطابقةعدد ومجموع الصفوف الموجودة في كلا الملفَّين
المفقودة من الملف Aقائمة دقيقة بالمفاتيح الغائبة عن الملف A
المفقودة من الملف Bقائمة دقيقة بالمفاتيح الغائبة عن الملف B
المفاتيح المكرّرةقائمة مراجعة منفصلة قبل المقارنة النهائية
الحقول غير المتطابقةصفوف موجودة في كلا الملفَّين لكنها تختلف في المبلغ أو التاريخ أو الحالة

تخبرك هذه النتيجة ما إذا كانت المشكلة معاملة مفقودة فعلاً، أو اختلافاً في نطاق الملفات، أو مفتاحاً معطوباً.