الصفوف نادراً ما تكون المشكلة. Excel يفشل لأن القائمتين تستخدمان مفاتيح مختلفة، أو أنواع بيانات مختلفة، أو معياراً مختلفاً لما يُعدّ سجلاً واحداً.

لهذا يمكن للتنسيق الشرطي أن يضيء نصف الورقة دون أن يعطيك أي إجابة. إذا أردت مقارنة قائمتين في Excel واكتشاف الفروقات، فابدأ بتحديد ما تبحث عنه: هل تبحث عن عناصر مفقودة، أم قيم غير متطابقة، أم سجلات بلا نظير؟ هذه ثلاثة أعمال مختلفة. حين تُدمجها في معادلة واحدة، تحصل على نتائج خاطئة.

قبل أن تبني أي شيء، حدِّد نوع الفروقات التي أمامك فعلاً.

ما يبدو عليه الفرق قبل أن تفتح المصنف

ما تراه على الشاشةكيف تخزّنه القائمة Aكيف تخزّنه القائمة Bما يحدث عند المطابقة
001245 في كلتا الورقتيننص يحتوي أصفاراً بادئةالرقم 1245القيمتان تبدوان لك متماثلتين لكن ليس لـ Excel، فتفشل المطابقة
01/05/2026 في كلتا الورقتينتاريخ بصيغة نص dd/mm/yyyyتاريخ Excel حقيقي (رقم تسلسلي)أحد الجانبين نص والآخر تاريخ حقيقي، فتفشل عمليات البحث والمقارنة
INV-8842 يظهر مرتينرقم الفاتورة نفسه على صفين منفصلينرقم فاتورة واحد بإجمالي موحّدبحث واحد لواحد يُرجع الصف الخاطئ أو يخفي تكراراً
العملاء أنفسهم في القائمتين لكن بترتيب مختلفقائمة مرتّبة بالتاريخقائمة أخرى مرتّبة بالاسمالمقارنة صفاً بصف تعلِّم صفوفاً صحيحة على أنها مختلفة
1,250.00 يبدو متطابقاً في الملفيننص يحتوي مسافة غير قابلة للكسر مخفيةرقم حقيقيالمبلغ يبدو نظيفاً لكن Excel يعامل أحد الجانبين كنص والآخر كرقم
Bank fee غائب من إحدى القائمتينأحد الملفين المصدَّرَين يتضمن صفوف ضبط أو تحكمالملف الآخر يستثنيهاالفرق هيكلي، لا علاقة له بمعادلة خاطئة

إذا لم تكن متأكداً من حالتك، طبِّق =TYPE(A2) على خلية مشبوهة في كل قائمة. TYPE() يُرجع 1 للأرقام و2 للنص. هذا يخبرك فوراً إن كان الفرق اختلافاً حقيقياً في المحتوى، أم أنه مجرد اختلاف في طريقة التخزين يحوّله Excel إلى تباين وهمي.

حدِّد نوع المقارنة التي تجريها فعلاً

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

عملك الحقيقيأنسب طريقةما يُعدّ فرقاً
التحقق من وجود قيم عمود في عمود آخرCOUNTIF أو MATCH أو FILTERعنصر مفقود
مقارنة السجلات ذاتها بين قائمتين متعددتَي الأعمدةالمطابقة بمفتاح ثابت ثم مقارنة الحقولصف مفقود أو اختلاف في قيمة
مقارنة السجلات حين لا يوجد معرّف فريدبناء مفتاح مركّب من حقلين أو ثلاثةمطابقات زائفة، مرشحون مكرَّرون، أو سجلات مفقودة
مقارنة ملفين مصدَّرَين بترتيب وعناوين وبنية مختلفةربط الأعمدة بدورها قبل المطابقةتباين هيكلي لا تباين في الصفوف

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

إذا كانت القائمتان بسيطتين فعلاً، استخدم المعادلة المختصرة وأوقف عندها

إذا كانت كل قائمة في عمود واحد نظيف وسؤالك الوحيد هو «ما الموجود في A وغير موجود في B؟»، فالإجابة السريعة كافية.

لإصدارات Excel الحديثة:

صيغة
=FILTER(A2:A5000,COUNTIF($D$2:$D$5000,A2:A5000)=0)

تُرجع هذه المعادلة القيم الموجودة في القائمة A والغائبة عن القائمة B.

للاتجاه العكسي:

صيغة
=FILTER(D2:D5000,COUNTIF($A$2:$A$5000,D2:D5000)=0)

لإصدارات Excel الأقدم، استخدم عمود نتائج مساعداً:

صيغة
=IF(COUNTIF($D$2:$D$5000,A2)=0,A2,"")

هذا يكفي حين:

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

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

اختَر مفتاح مطابقة قبل مقارنة القيم

تقرير الفروقات لا يكون أفضل من المفتاح المستخدم في محاذاة السجلات.

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

إذا لم يكن حقل واحد فريداً بما يكفي، ابنِ مفتاحاً مركّباً. النمط الشائع: المرجع ثم التاريخ ثم المبلغ:

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

ينجح هذا لأن كل جزء يؤدي دوراً مختلفاً:

  • المرجع يُعرِّف المعاملة
  • التاريخ يُميّز المراجع المعاد استخدامها بين الفترات
  • المبلغ يُميّز القيود المجزّأة أو الجزئية

حين تشترك القائمتان في المفتاح ذاته، يمكنك مقارنة بقية السجل بالرجوع إليه. مثلاً إذا كان العمود H هو مفتاحك المركّب في الورقتين:

صيغة
=XLOOKUP($H2,Sheet2!$H$2:$H$5000,Sheet2!$J$2:$J$5000,"Missing")

تجلب هذه المعادلة الحقل من القائمة B المنتمي إلى المفتاح ذاته في القائمة A. يمكنك حينئذٍ مقارنة القيمة المُرجَعة بالحقل الأصلي، بدلاً من مقارنة مواضع الصفوف.

تحقق من التكرارات في المفتاح قبل الثقة بالنتيجة:

صيغة
=COUNTIF($H$2:$H$5000,H2)

إذا أرجعت شيئاً أعلى من 1، فمفتاحك ليس واحداً لواحد بعد. XLOOKUP ستُرجع أول تطابق وتخفي الباقي. هذا ليس نجاحاً للمعادلة. هو إخفاق في المقارنة متنكّر في هيئة نتيجة.

طبِّع القيم التي تبدو متساوية لكنها مخزّنة بشكل مختلف

هنا يتوقف معظم أدلة مقارنة جداول البيانات مبكراً. تعرض معادلة المطابقة، لكنها لا تعرض تنظيف البيانات الذي تعتمد عليه هذه المعادلة.

نص في أحد الجانبين ورقم في الآخر

إذا كانت القائمة A تخزّن 1245 كنص والقائمة B كرقم، أكّد ذلك أولاً بـ TYPE():

صيغة
=TYPE(A2)

إذا أرجعت A القيمة 2 والخلية المقابلة في القائمة B أرجعت 1، حوِّل داخل البحث قبل بناء عمود مساعد.

إذا كان يجب أن تكون القيمة رقمية:

صيغة
=XLOOKUP(VALUE(A2),Sheet2!$F$2:$F$5000,Sheet2!$G$2:$G$5000,"Missing")

إذا كان يجب أن تبقى نصاً ذا عرض ثابت مع أصفار بادئة، أجبر الجانبين على تنسيق نصي متماثل:

صيغة
=XLOOKUP(TEXT(A2,"000000"),TEXT(Sheet2!$F$2:$F$5000,"000000"),Sheet2!$G$2:$G$5000,"Missing")

المهم ليس القناع الدقيق. المهم أن يُقارَن الجانبان بوصفهما النوع نفسه.

المسافات المخفية و CHAR(160)

ملفات CSV المصدَّرة والبيانات المنسوخة من الويب كثيراً ما تحتوي مسافة غير قابلة للكسر يمثّلها Excel بـ CHAR(160). تبدو كمسافة عادية على الشاشة، لكن TRIM() وحدها لا تحذفها دائماً.

طبِّعها مباشرة داخل المقارنة:

صيغة
=XLOOKUP(TRIM(SUBSTITUTE(A2,CHAR(160)," ")),TRIM(SUBSTITUTE(Sheet2!$F$2:$F$5000,CHAR(160)," ")),Sheet2!$G$2:$G$5000,"Missing")

تُزيل هذه المعادلة المسافات في البداية والنهاية، وتستبدل أولاً CHAR(160) المخفية بمسافة عادية.

التواريخ النصية المبهمة

إذا خزّنت إحدى القائمتين التواريخ كنص، لا تقفز مباشرة إلى DATEVALUE(). تاريخ نصي مثل 01/05/2026 مبهم. نظام ما قد يقصد 5 يناير. آخر قد يقصد 1 مايو.

لنص مخزَّن بصيغة dd/mm/yyyy، استخرج مكوّناته صراحةً:

صيغة
=DATE(RIGHT(A2,4),MID(A2,4,2),LEFT(A2,2))

لنص مخزَّن بصيغة mm/dd/yyyy، استخدم:

صيغة
=DATE(RIGHT(A2,4),LEFT(A2,2),MID(A2,4,2))

بعد تحويل التاريخ النصي إلى تاريخ Excel حقيقي، قارِنه كتاريخ أو طبِّعه داخل مفتاح بـ TEXT(real_date,"yyyy-mm-dd").

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

قارِن السجلات كاملة، لا الخلايا المعزولة

حين يصبح مفتاح المطابقة ثابتاً وأنواع البيانات منظَّمة، قارِن حقول السجل حقلاً بحقل.

افترض أن القائمة A تحتوي:

  • العمود A: معرّف المعاملة
  • العمود B: التاريخ
  • العمود C: المبلغ
  • العمود D: الحالة

والقائمة B تحتوي الحقول ذاتها في مواضع أعمدة مختلفة.

سير العمل هو:

  1. طابِق القائمة A بالقائمة B عبر المفتاح الثابت.
  2. اجلب القيمة المقابلة من القائمة B.
  3. صنِّف النتيجة: متطابقة، أو مختلفة، أو مفقودة.

مثلاً، إذا أرجع العمود K في القائمة A المبلغَ من القائمة B:

صيغة
=XLOOKUP($H2,Sheet2!$H$2:$H$5000,Sheet2!$C$2:$C$5000,"Missing")

ثم صنِّف النتيجة:

صيغة
=IF(K2="Missing","Missing from List B",IF(C2<>K2,"Amount difference","Matched"))

افعل الشيء ذاته مع التاريخ والحالة وأي حقل آخر يهمّك.

هذا يمنحك تقرير فروقات مفيداً لأنه يُميّز ثلاث حالات مختلفة تماماً:

  • السجل موجود في القائمتين ومتطابق
  • السجل موجود في القائمتين لكن حقلاً ما يختلف
  • السجل غائب تماماً من الجانب الآخر

عند هذا المستوى تصبح النتيجة قابلة للتصرف.

صنِّف الفروقات بدلاً من تلوين الورقة

المقارنة الجيدة لا تنتهي بخلايا ملوّنة. تنتهي بأنواع استثناءات مسمّاة.

نوع الفرقما يعنيه في الغالبما تفعله بعد ذلك
غائب من القائمة Aالسجل موجود في القائمة B فقطراجع الفلاتر ونطاق التواريخ واكتمال الملف المصدَّر
غائب من القائمة Bالسجل موجود في القائمة A فقطابحث عن صفوف محذوفة، أو سجلات ممسوحة، أو مفتاح خاطئ
اختلاف في القيمةالمفتاح واحد لكن المبلغ أو الحالة يختلفراجع الحقل المصدر وحدِّد أيّ القائمتين هي المرجع
مفتاح مكرَّرإحدى القائمتين أو كلتاهما أعادت استخدام المفتاح ذاتهعزِّز المفتاح بالتاريخ أو المبلغ أو حقل آخر
تعارض في النوعالقيم تبدو متساوية لكن أحد الجانبين نصطبِّع بـ VALUE أو TEXT أو تحويل التاريخ
تباين هيكليالملف المصدَّر يتضمن عناوين أو رسوماً أو أرصدة أو صفوف ملخّص لا تملكها القائمة الأخرىاستثنِ هذه الصفوف أو أعِد ربطها قبل المقارنة

هذه أيضاً هي النقطة التي يتحوّل فيها التنسيق الشرطي إلى دور مساند. يفيد في المراجعة البصرية بعد تحديد فئات الفروقات. ليس هو الطريقة التي تحدّدها.

إذا كانت قائمتاك في الحقيقة ملفَّي معاملات بعناوين متزاحة وأسماء أعمدة مختلفة وتباينات في التاريخ أو الإشارة، فـ مقارنة ملفَّي كشف حساب بنكي CSV بدون معادلات يعالج المشكلة ذاتها على مستوى الملف لا على مستوى ورقة واحدة.

حين يصنع Excel عملاً بدلاً من تقليصه

Excel مناسب للمقارنات الصغيرة. يتحوّل إلى عبء حين تبدو الروتينة هكذا في كل مرة:

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

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

لهذا كثير من مسارات «مقارنة قائمتين في Excel وعرض الفروقات» تبدو غير مستقرة. المعادلة نادراً ما تكون الجزء الصعب. الجزء غير المستقر هو تنظيف الملفات المتكرر، واختيار المفتاح، وفرز الاستثناءات حول المعادلة في كل مرة.