قد يبدو ملفّا CSV لكشفي حساب بنكيين متقاربين بما يكفي لمقارنتهما في Excel. لكن هنا تحديداً يتفاقم التباين. ملفّ يخزّن المبالغ المدينة بقيم سالبة. والآخر يفصلها في عمودين منفصلين: مدين ودائن. ملفّ يعتمد تاريخ الترحيل. والآخر يعتمد تاريخ القيمة. وقبل أن تبدأ ببناء عمليات البحث، يكون الملفّان قد اختلفا أصلاً على معنى المعاملة الواحدة.
أأمن طريقة لمقارنة ملفّي CSV لكشفي حساب بنكي دون معادلات: تعامل مع كل ملفّ مُصدَّر كملفّ معاملات خام، وعيّن دوراً لكل عمود، وطابِق الصفوف بأقوى مفتاح مشترك، ثم راجِع الاستثناءات المتبقّية فقط.
اقرأ التباين قبل أن تلمس الملفّات
معظم حالات التباين الزائف تظهر قبل أن تبدأ أي مقارنة. الملفّان المُصدَّران يخزّنان المعاملة نفسها بطريقتين مختلفتين أصلاً.
استخدم هذا الجدول في الجولة الأولى.
| ما تراه على الشاشة | كيف يخزّنه الملفّ A | كيف يخزّنه الملفّ B | النتيجة عند المطابقة |
|---|---|---|---|
05/01/2026 و-125.40 | التاريخ نص 05/01/2026؛ المبلغ قيمة واحدة بإشارة | التاريخ رقم تسلسلي حقيقي؛ المبلغ 125.40 في عمود Debit | تفشل المطابقة بسبب نوع التاريخ وقاعدة الإشارة معاً |
1,250.00 في كلا الملفّين | المبلغ نص يحوي فاصلة وفاصلة عليا مخفية في البداية | المبلغ رقم حقيقي | تبدو القيمتان متطابقتين، لكن البحث في جدول البيانات يعاملهما معاملة مختلفة |
TRANSFER TO SAVINGS يظهر مرتين بمبلغ 250.00 | صفّان منفصلان لهما التاريخ والمبلغ نفسهما | صفّ يحمل مرجعاً بنكياً، والآخر لا | المطابقة بالتاريخ والمبلغ تنتج تكرارات محتملة |
AMAZON مقابل AMAZON MKTPLACE PMTS | أحد ملفّي البنك يبتر الوصف | والآخر يحتفظ باسم التاجر كاملاً | المطابقة بالوصف وحده تفشل، رغم أنه الدفعة نفسها |
31/03/2026 في ملفّ و01/04/2026 في الآخر | ملفّ يعتمد تاريخ المعاملة أو تاريخ تنفيذها | والآخر يعتمد تاريخ الترحيل أو السداد | تظهر الحركة نفسها كفرق توقيت، لا كصفّ مفقود |
Opening Balance موجود في ملفّ واحد فقط | ملفّ يضمّ صفوف رقابة الكشف داخل الـ CSV | والآخر يحوي معاملات فقط | هذا السطر يجب ألّا يُطابَق كمعاملة إطلاقاً |
إذا ظلّت خليتان تبدوان متطابقتين على نحو مريب بعد هذه الجولة الأولى، فاستخدم =TYPE(A2) كفحص سريع. 1 تعني أن Excel خزّنها رقماً. 2 تعني أنه خزّنها نصاً. وإذا ظلّ Excel يعيد #N/A على قيم تبدو متطابقة، فالسبب الكامن عادةً هو لماذا يعيد VLOOKUP الخطأ #N/A مع تنسيقات CSV غير المتوافقة.
اختر العمود الذي يستحق أن يكون مفتاح المطابقة
تصبح المقارنة كلها أسهل حين تتوقّف عن مطالبة كل عمود بالعمل نفسه. بعض الحقول صالحة للمطابقة. وبعضها مجرّد دليل مساند.
| المفتاح المرشّح | متى تستخدمه | أين يبرع | أين يفشل |
|---|---|---|---|
| المرجع البنكي أو معرّف المعاملة | يحتفظ الملفّان المُصدَّران بمرجع يولّده البنك | أفضل مفتاح رئيسي لمطابقة حقيقية واحد لواحد | كثير من ملفّات CSV يحذفه أو يعيد تسميته |
| تاريخ الترحيل + المبلغ مع الإشارة | يستخدم الملفّان أساس التاريخ نفسه وقاعدة الإشارة نفسها | يصلح لمقارنات نظيفة على الحساب نفسه | يفشل مع فروق اليوم الواحد والصفوف المتكرّرة بالمبلغ نفسه |
| المبلغ + جزء من المرجع | ملفّ يبتر الأوصاف لكنه يبقي جزءاً من المرجع | مفيد حين يكون المرجع البنكي جزئياً لكنه ثابت | ضعيف مع مدفوعات البطاقات والمدفوعات المتكرّرة لتاجر واحد |
| الوصف + المبلغ | المرجع مفقود واسم التاجر ثابت | مفتاح احتياطي جيد للمراجعة | يفشل مع الاختصارات والبتر والمشتريات المكرّرة في اليوم نفسه |
| الرصيد الجاري | تحتاج إلى دليل مساند بعد مطابقة محتملة | يساعد على تأكيد ترتيب الصفوف حول معاملة متنازع عليها | لا تجعله المفتاح الرئيسي أبداً: صفّ واحد مُدرَج يزيح كل ما بعده |
المبلغ وحده ضعيف. عمليتا شراء بالبطاقة بقيمة 19.99 أمر شائع. والوصف وحده ضعيف أيضاً: بنك يصدّر UBER BV وآخر يكتب UBER *TRIP. الرصيد الجاري مفيد للسياق، لكنه ليس ثابتاً بما يكفي ليقود المطابقة كلها.
المقارنة النظيفة تتّبع عادةً تسلسلاً هرمياً:
- طابِق بالمرجع البنكي حين يحمله الملفّان.
- وعند غياب المرجع، ارجع إلى المبلغ مع الإشارة مضافاً إليه التاريخ.
- واترك الوصف لمراجعة ما تبقّى فقط، لا لقيادة الجولة الأولى.
عيّن الأعمدة بحسب الدور، لا بحسب اسم العنوان
كثيراً ما يصف ملفّا CSV بنكيان الحقل نفسه بعناوين مختلفة. الحلّ ليس إعادة تسمية كل عمود يدوياً. الحلّ أن تقرّر الدور الذي يؤدّيه كل عمود في المقارنة.
إليك تعييناً نموذجياً:
| الدور في المقارنة | عنوان الملفّ A | عنوان الملفّ B | القاعدة |
|---|---|---|---|
| تاريخ المعاملة | Posted Date | Value Date | لا تعدّهما قابلين للمقارنة إلا بعد أن تعرف هل يستخدم البنكان أساس التاريخ نفسه |
| المبلغ | Amount | Debit وCredit | حوّلها إلى قاعدة مبلغ واحد بالإشارة، أو قارن المدين والدائن في جولتين منفصلتين |
| المرجع | Reference | Bank Ref | استخدمه مفتاحاً رئيسياً إذا احتفظ به الطرفان |
| الوصف | Description | Narration | يدعم المراجعة، لا يكون المفتاح الأول |
| الرصيد | Balance | Running Balance | احتفظ به للتشخيص فقط |
| نوع المعاملة | Type | Details | مفيد لاستبعاد الرسوم أو القيود العكسية أو صفوف الرقابة |
إذا استخدم أحد ملفّي CSV عمودي مدين ودائن منفصلين، فلا تُقحم ذلك الملفّ في مقارنة سيئة بعمود واحد بتقدير الإشارات بالعين. أمامك خياران: أداة مقارنة تتيح لك تعيين المدين سالباً والدائن موجباً، أو جولتان منفصلتان — مدين مقابل مدين، ثم دائن مقابل دائن. يبقى ذلك أنظف من دفن منطق الإشارة داخل أعمدة بحث لن يرغب أحد في تدقيقها لاحقاً.
ابنِ المقارنة على جولات، لا في مطابقة واحدة عملاقة
الجولة 1: ثبّت الملفّات الخام
أبقِ الملفّات المُصدَّرة الأصلية كما هي. لا تكتب فوقها، ولا ترتّبها في مكانها، ولا تحذف صفوفاً قبل أن تعرف معناها. فإذا تبيّن لاحقاً أن ملفّاً يحوي أسطر رصيد افتتاحي أو مدفوعات بطاقة معلّقة، فستحتاج النسخة السليمة لإثبات ذلك.
الجولة 2: استبعد الصفوف التي ليست معاملات حقيقية للمطابقة
قبل أن تطابق أي شيء، حدّد صفوفاً مثل:
- الرصيد الافتتاحي
- الرصيد الختامي
- صفوف ملخّص الكشف
- صفوف فاصلة فارغة
- نص تذييل الملفّ المُصدَّر
هذه الأسطر تخصّ الرقابة على الفترة، لا مطابقة المعاملات. وإذا ضمّها ملفّ دون الآخر، فأنت تصنع فروقاً قبل أن يبدأ العمل.
الجولة 3: شغّل أقوى مفتاح أولاً
ابدأ بأكثر القواعد موثوقية مما هو متاح لك.
| قاعدة الجولة الأولى | أفضل حالة استخدام | النتيجة المتوقّعة |
|---|---|---|
| المرجع + المبلغ | الحساب نفسه مُصدَّر من نظامين | تتطابق معظم الصفوف بنظافة وبمراجعة قليلة |
| المبلغ مع الإشارة + تاريخ الترحيل | المرجع مفقود لكن أساس التاريخ متوافق | تغطية جيدة لملفّات البنك البسيطة |
| جولة مدين فقط أو دائن فقط | ملفّ يوزّع المبالغ على عمودين | يمنع التباينات الزائفة في الإشارة |
لا تُدخل الوصف في هذه الجولة الأولى إلا عند الضرورة. اسم التاجر يخلق تشويشاً مبكّراً ونادراً ما يحلّ شيئاً.
الجولة 4: راجِع ما تبقّى بحسب نوع الاستثناء
بعد الجولة الأولى، يجب أن يقع كل صفّ متبقٍّ في واحدة من فئات قليلة واضحة:
| فئة الاستثناء | ماذا تعني عادةً | الخطوة التالية |
|---|---|---|
| مفقود من الملفّ A | المعاملة موجودة في الملفّ B فقط | تحقّق من فلتر التاريخ أو فترة الكشف أو هل أسقط الملفّ A هذا النوع من المعاملات |
| مفقود من الملفّ B | المعاملة موجودة في الملفّ A فقط | تحقّق من اكتمال التصدير أو العناصر المعلّقة أو التكرارات |
| المبلغ نفسه، تاريخ مختلف | تأخّر في الترحيل أو فرق في تاريخ القيمة | صنّفه كفرق توقيت ما لم يخالف حقل آخر |
| التاريخ نفسه، المبلغ نفسه، مرشّحون متعدّدون | مشكلة قيم مكرّرة | استعِن بالمرجع أو بسياق الرصيد أو بالتسلسل المجاور |
| الصفّ نفسه، إشارة مختلفة | تعارض في قاعدة المدين/الدائن | أعد صياغة قاعدة المبلغ قبل مواصلة البحث |
| النصّ نفسه، نوع قيمة مخزَّنة مختلف | مشكلة نص مقابل رقم | وحّد نوع الحقل، ثم أعد تشغيل المقارنة |
الجولة 5: استخدم الوصف فقط لحسم ما تبقّى من غموض
حين تتقلّص الاستثناءات إلى مجموعة صغيرة، يصبح الوصف مفيداً. عند هذه المرحلة لم تعد تمسح آلاف الأسطر. أنت تقرّر هل ATM WDL 004281 هو سحب النقد نفسه الموجود في ATM CASH 4281.
الوصف أداة مراجعة. ليس العمود الفقري للمقارنة.
عالِج الحالات الخاصة بكشوف الحسابات التي تتجاهلها أدلة CSV العامة
صفحات مقارنة CSV العامة تتوقّف عادةً عند «ارفع ملفّين وقارن». كشف الحساب البنكي يحتاج أكثر من ذلك.
تاريخ الترحيل مقابل تاريخ القيمة
لا تتّفق البنوك دائماً على التاريخ الذي يُدرَج في الملفّ المُصدَّر. دفعة بالبطاقة في وقت متأخّر من المساء قد تظهر قبل يوم في ملفّ وبعد يوم في آخر. هذه ليست معاملة مفقودة. إنها فرق توقيت. عاملها كفئة قائمة بذاتها.
عمودا مدين ودائن منفصلان
قد يخزّن ملفّ عمليات السحب في Debit والإيداعات في Credit، بينما يستخدم الآخر عمود Amount واحداً بالإشارة. وما لم توحّد هذه القاعدة أولاً، تصبح كل دفعة صادرة تبايناً زائفاً.
المعاملات المتكرّرة بالمبلغ نفسه
المقاهي ورسوم الاشتراكات وعمليات السحب النقدي وتحويلات تجميع الأرصدة تنتج تكرارات باستمرار. وإذا طابقت بالتاريخ والمبلغ وحدهما، فقد يبدو الصفّ الخطأ مطابَقاً بينما يبقى التباين الحقيقي مخفياً.
أسطر الرصيد وصفوف الملخّص
بعض الملفّات المُصدَّرة تضمّ أسطر رصيد افتتاحي أو رصيد ختامي أو إجماليات يومية داخل الـ CSV. هذه الصفوف مفيدة للرقابة، لكنها ليست معاملات مفردة، ويجب ألّا تنافس على مفتاح المطابقة أبداً.
نطاقات تواريخ مُرشَّحة
قد يغطّي أحد ملفّي CSV تواريخ الكشف بينما يغطّي الآخر تواريخ التنزيل. هكذا تنتهي بمقارنة من 1 مارس إلى 31 مارس في جهة مقابل من 2 مارس إلى 1 أبريل في الجهة الأخرى. الملفّان ليسا خطأ. نافذة الاستخراج هي المختلفة.
أوصاف مبتورة
قد يقطع ملفّ بنك اسم التاجر بعد 18 حرفاً. وقد يبقي آخر النصّ كاملاً. عامل الوصف كدليل مساند فقط، خصوصاً مع مدفوعات البطاقات.
عملية مقارنة الملفّات تصنّف هذه الحالات بوضوح. أما جدول بيانات ضخم مليء بدوال VLOOKUP فيخفيها عادةً داخل أعمدة مساعدة وفلاتر يدوية.
تكتمل المقارنة حين يستطيع الناتج الإجابة عن سؤال مالي حقيقي
ينبغي أن يكون ناتجك النهائي قادراً على إظهار:
| قسم الناتج | ما الذي يجب أن يخبرك به |
|---|---|
| المعاملات المطابَقة | أي الصفوف مؤكَّدة في كلا الملفّين |
| الصفوف المفقودة | أي المعاملات موجودة في جهة واحدة فقط |
| فروق التوقيت | أي الصفوف تتّفق في المبلغ لكنها تقع في تواريخ مختلفة |
| التكرارات المحتملة | أي الصفوف ذات القيمة نفسها تحتاج مفتاحاً أقوى |
| الإجماليات الرقابية | هل المبالغ غير المطابَقة مفسَّرة أم لا تزال مفتوحة |
إذا كانت هذه المقارنة تغذّي أعمال الإقفال الشهري، فالسؤال التالي عادةً لم يعد عن الـ CSV. بل عن سبب استمرار اختلاف جهة البنك عن الدفاتر بعد إتمام مطابقة الكشف. وهنا يصبح ماذا تفعل حين لا تتطابق دفاترك مع البنك في نهاية الشهر خطوة التشخيص التالية.
حين يكون التكرار الشهري هو الهدر الحقيقي
الألم اليدوي نادراً ما يكون المقارنة الأولى. إنه الخامسة. ثم العاشرة. ثم النسخة التي يغيّر فيها بنك عناوينه، ويضيف آخر عمود رصيد، والموعد النهائي للكشف لا يتحرّك.
عند هذه النقطة لم يعد العمل تحليلياً. إنه مطابقة ملفّات متكرّرة، ومراجعة استثناءات متكرّرة، وتنظيف تقارير متكرّر.
