المدونةالجداول والبياناتقراءة في 5 دقائق

جدول عربي من PDF إلى Excel: لماذا لا تُجمع الأرقام وكيف تصلحها

إذا لم يجمع Excel أرقام جدول عربي منقول من PDF فالغالب أن الخلايا مخزنة نصًا: أرقام هندية (٠–٩) أو فاصلة عشرية عربية أو مسافات ورموز اتجاه خفية. اختبرها بـ ISNUMBER، واستبدل الأرقام والرموز، ثم حوّلها إلى أرقام وطابق المجاميع مع الأصل.

نقلتَ جدولًا عربيًا من ملف PDF ممسوح أو من صورة إلى Excel: كشف حساب، أو بيان أسعار، أو جدول درجات، أو ملحق مالي في عقد. يبدو الجدول سليمًا، لكن دالة SUM تعطي صفرًا، أو الفرز يضع ١٠ قبل ٢، أو المجموع لا يطابق الرقم المطبوع في أسفل الصفحة.

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

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

اختبار أول في عشر ثوانٍ

في عمود فارغ بجانب العمود المشكوك فيه اكتب:

=ISNUMBER(B2)

واسحبها إلى آخر الجدول. تُرجع ISNUMBER القيمة TRUE إذا كانت الخلية رقمًا، وFALSE في غير ذلك. كل FALSE في عمود يُفترض أنه أرقام هو خلية لن تدخل في أي مجموع. علامة أخرى سريعة: المثلث الأخضر في زاوية الخلية، وهو تنبيه Excel إلى «رقم مخزن كنص».

إذا ظهرت FALSE فابحث عن السبب في الجدول التالي.

الأسباب الخمسة

السببكيف يبدوكيف تكشفه
أرقام هندية (٠١٢٣…)١٢٥٠الرقم مكتوب بأشكال المشرق؛ UNICODE لأول حرف تعطي 1633 مثلًا
أرقام فارسية/أردية (۰۱۲۳…)۱۲۵۰تشبه الهندية لكن ٤ و٥ و٦ مختلفة الشكل؛ UNICODE تعطي 1777 مثلًا
فاصلة عشرية أو آلاف عربية١٢٫٥ أو ١٬٢٥٠الرمز ٫ أو ٬ بدل النقطة والفاصلة
مسافة أو رمز اتجاه خفي1250 تبدو طبيعيةLEN أكبر من عدد الأرقام الظاهرة
أقواس أو إشارة سالب في غير مكانها)1250( أو ‎1250-‎السالب المحاسبي مقلوب بعد الاستخراج من نص من اليمين إلى اليسار

الأرقام الهندية في Unicode محارف مستقلة من U+0660 إلى U+0669، والأرقام الفارسية الممتدة من U+06F0 إلى U+06F9، والفاصلة العشرية العربية U+066B وفاصل الآلاف U+066C. هي ليست الأرقام 0–9 نفسها، ولذلك قد يعاملها Excel نصًا حسب الإصدار وإعدادات اللغة. لا تفترض النتيجة: اختبرها بـ ISNUMBER على ملفك.

لكشف ما في الخلية فعلًا استخدم:

=UNICODE(MID(B2;1;1))
=LEN(B2)

غيّر الرقم 1 في MID لتفحص كل حرف. إذا كانت إعدادات جهازك تستخدم الفاصلة بدل الفاصلة المنقوطة بين وسائط الدوال فاكتب , بدل ;. القيمة 160 تعني مسافة غير قابلة للكسر، و8207 تعني علامة الاتجاه من اليمين إلى اليسار (RLM)، و1564 تعني علامة الحرف العربي (ALM). كلها غير مرئية وكلها تمنع التحويل إلى رقم.

خطوات الإصلاح

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

  1. حدّد العمود الرقمي ثم افتح «بحث واستبدال» (Ctrl+H) واستبدل كل رقم هندي بمقابله: ٠ ← 0، ١ ← 1، وهكذا حتى ٩ ← 9. عشر عمليات استبدال تكفي، ويمكنك تسجيلها ماكرو إذا تكررت. كرر الأمر نفسه للأرقام الفارسية ۰–۹ إن وُجدت في جداول أردية أو فارسية.
  2. استبدل الفواصل: ٫ ← نقطة عشرية (أو الفاصلة إذا كانت إعدادات جهازك تستخدمها)، و٬ ← لا شيء.
  3. أزل الرموز الخفية بعمود مساعد:
    =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(B2;UNICHAR(160);"");UNICHAR(8207);"");UNICHAR(1564);"")
    
    تستبدل SUBSTITUTE كل ظهور للنص القديم بالنص الجديد ما لم تحدد رقم الظهور.
  4. حوّل النص إلى رقم: حدد الخلايا واختر «تحويل إلى رقم» من أيقونة التنبيه، أو استخدم =VALUE(C2) في عمود مساعد. إذا اختلف الفاصل العشري في البيانات عن إعدادات جهازك فإن =NUMBERVALUE(C2;".";",") تسمح لك بتحديد الفاصلين صراحة.
  5. ثبّت النتيجة: انسخ العمود المساعد والصقه «قيمًا فقط» (Ctrl+Shift+V) فوق العمود الأصلي، ثم احذف الأعمدة المساعدة.
  6. أصلح السالب: ابحث عن الأقواس المقلوبة ) في أول الخلية وعن - في آخرها، وحوّلها إلى إشارة سالب في أول الرقم. افعل ذلك بعد مراجعة الأصل، لأن الأقواس في بعض الجداول ملاحظة لا قيمة سالبة.
  7. راجع اتجاه الورقة وترتيب الأعمدة: في جدول عربي يجب أن يكون العمود الأول في الأصل (على اليمين) هو الأول في Excel. بعض أدوات الاستخراج تقلب ترتيب الأعمدة. يمكن عرض الورقة من اليمين إلى اليسار من خيار اتجاه الورقة في Excel (يظهر عادة في تبويب «تخطيط الصفحة» عند تفعيل لغة تُكتب من اليمين). هذا الخيار يغيّر العرض فقط؛ إذا كانت الأعمدة نفسها مقلوبة فعليك نقلها.

مثال توضيحي

مثال توضيحي، لا بيانات حقيقية: بيان مصروفات من ثلاثة بنود، والمطبوع في الأصل أن الإجمالي ٤٬٧٥٠٫٥٠.

البندالقيمة كما استُخرجتISNUMBERبعد الإصلاح
إيجار٣٬٠٠٠FALSE3000
كهرباء‏1250.5 (تبدأ بـ RLM)FALSE1250.5
صيانة٥٠٠FALSE500
الإجمالي=SUM(...)4750.5

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

قائمة مراجعة قبل التسليم

  • ISNUMBER تعطي TRUE في كل خلية من الأعمدة الرقمية
  • مجموع كل عمود يطابق الإجمالي المطبوع في الأصل، صفحة بصفحة
  • عدد الصفوف في Excel يساوي عدد الصفوف في الأصل (لم يندمج صفان ولم ينقسم صف)
  • ترتيب الأعمدة مطابق للأصل، والعمود الأول هو عمود البيان أو الرقم التسلسلي
  • الخلايا المدمجة في رؤوس الجدول لم تنقل القيم إلى عمود مجاور
  • التواريخ الهجرية بقيت نصًا كما هي، ولم يحوّلها Excel إلى تواريخ ميلادية خاطئة
  • القيم السالبة في مكانها، ولا أقواس مقلوبة
  • عيّنة عشوائية من عشرة أرقام قورنت يدويًا بالصورة الأصلية، خصوصًا الأرقام المتشابهة مثل ٢ و٣، والصيغ الفارسية ۴ و۶ التي تختلف عن ٤ و٦

إذا كان الجدول خارجًا من صورة أو مسح ضوئي

إذا كان الجدول في الأصل صورة فهناك طبقة أخرى من الأخطاء قبل كل ما سبق: قراءة الرقم نفسه. نقطة باهتة قد تُقرأ صفرًا، وخط الجدول قد يُقرأ رقم ١. لهذا يأتي اختبار المجاميع قبل أي شيء آخر: إن لم يطابق المجموع الأصل فابحث عن الصف المختلف قبل أن تبدأ بتنسيق الجدول.

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

حدود هذا الدليل

  • واجهة Excel تختلف بين Windows وMac والويب وبين لغات الواجهة، وأسماء الأوامر هنا قد تظهر بصيغة أخرى عندك.
  • طريقة تعامل Excel مع الأرقام الهندية تعتمد على الإصدار وإعدادات النظام، ولم نختبرها هنا على كل الإصدارات. لذلك نبدأ دائمًا بـ ISNUMBER بدل الافتراض.
  • الاستبدال الجماعي يغيّر كل خلية محددة، فلو حدّدت عمودًا يحوي أرقام هواتف أو رموزًا مرجعية مكتوبة عمدًا بالأرقام الهندية فستتغير أيضًا.
  • لا يصلح هذا الدليل أخطاء القراءة في الصور الرديئة. إن كان الرقم قد قُرئ خطأ فالحل مراجعته على الأصل أو إعادة التحويل من نسخة أوضح.

المصادر

  1. Microsoft Support: Convert numbers stored as text to numbers
  2. Microsoft Support: SUBSTITUTE function
  3. Microsoft Support: IS functions (ISNUMBER, ISTEXT)
  4. Microsoft Learn: Worksheet.DisplayRightToLeft property (Excel)
  5. Unicode Character Code Charts: Arabic (U+0600–U+06FF)