كيفية التصفية حسب يتوسطه خط في إكسيل (مع مثال)

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

Mohammed looti أكاديمي وباحث متخصص في علم النفس
تاريخ النشر
تمت المراجعة العلمية · د. مروة عبد العظيم · 23 أكتوبر، 2026
مراجعة وتدقيق علمي معتمد تاريخ التدقيق: 23 أكتوبر، 2026
د. مروة عبد العظيم دكتوراه في علم النفس
عضو هيئة التدريس • جامعة كربلاء
معايير التدقيق والاعتماد السريري

يخضع هذا المحتوى لمعايير ضبط الجودة والتدقيق العلمي والأكاديمي الصارمة في شبكة علم النفس العربي، لضمان صحة المعلومات ودقتها السريرية ومطابقتها لأحدث الأدلة والبراهين الصادرة عن الجمعيات النفسية والطبية المعتمدة (APA / WHO).

تُعد جداول البيانات الإلكترونية، وفي مقدمتها برنامج مايكروسوفت إكسيل (Microsoft Excel)، العمود الفقري لإدارة المعطيات والتحليلات الرقمية في البيئات المؤسسية والأكاديمية المعاصرة. ومع تعاظم حجم السجلات وتعدد أطراف العمل على المصنفات المشتركة، يبرز التنسيق البصري كإحدى أدوات الترميز السريع للمعلومات؛ حيث يلجأ مدققو الحسابات ومديرو المشروعات والباحثون إلى استخدام سمات الخط المختلفة لتمييز الحالات التشغيلية لعناصر الجداول. ومن بين هذه السمات، يبرز تنسيق “يتوسطه خط” (Strikethrough) كعلامة دلالية ذات ثقل إجرائي وتاريخي، يُراد بها في الغالب الإشارة إلى إلغاء المعاملة، أو اكتمال المهمة، أو استبعاد القيمة من التحليل الفعلي، دون محوها ماديًا من قاعدة البيانات حفاظًا على مسار التدقيق.

غير أن التحدي التقني المعقد ينبثق عندما تتطلب مقتضيات التحليل عزل هذه السجلات المشطوبة أو تصفيتها بصورة مجمعة؛ إذ يكتشف المحللون اصطدامهم بحاجز هيكلي في محرك التصفية التلقائية المدمج في واجهة إكسيل الرسومية. لا يتيح البرنامج افتراضيًا خيارًا مباشرًا للتصفية بحسب نمط الخط المتقاطع كما يفعل مع ألوان الخلايا أو ألوان الخطوط. هذا التباين البنيوي بين التنسيق المرئي والبيانات الوصفية المفهرسة يفرض على المختصين البحث عن حلول تقنية تمتد من استخدام تقنيات البحث المتقدم، وصولاً إلى بناء دوال برمجية مخصصة عبر لغة فيجوال بيسك للتطبيقات (VBA) تُمكّن محرك التصفية من قراءة الخصائص الخفية لكائنات الخلايا.

يهدف هذا الدليل الأكاديمي الشامل إلى تفكيك هذه الإشكالية عبر معالجة معمقة للأبعاد النظرية والتقنية المرتبطة بخاصية الشطب، وتتبع القصور البنيوي في أدوات التصفية القياسية، ثم تقديم حلول هندسية رصينة خطوة بخطوة. سنستعرض آليات تطويع البرمجة عبر بناء الدوال المعرفة من قبل المستخدم (UDF)، وإنشاء الأعمدة المساعدة المنطقية، ومناقشة الطرق اليدوية البديلة لبيئات العمل المقيدة برمجياً، فضلًا عن معالجة التحديات المتقدمة مثل النصوص المشطوبة جزئيًا وحوكمة البيانات لضمان كفاءة التحليل واستدامة التقارير الدورية.

1. الأسس النظرية لتنسيق يتوسطه خط في بيئة مايكروسوفت إكسيل

1.1 المفهوم الوظيفي لخاصية الشطب وتطبيقاتها المعيارية

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

تكمن القيمة الجوهرية لاستخدام الشطب كبديل للحذف النهائي في مبدأ الحفاظ على مسار المراجعة والتدقيق (Audit Trail). إن حذف الصفوف أو القيم من قواعد البيانات يطمس السياق التاريخي للعملية، ويمنع المحققين والمدققين من فهم تسلسل اتخاذ القرار أو رصد الإخفاقات التشغيلية. ومن هنا، يمنح التنسيق المشطوب المؤسسات القدرة على إظهار الشفافية الكاملة؛ فالبيانات تظل مرئية لعين المراجع الخارجي، لكنها تحمل إشارة صريحة بوجوب تحييد أثرها الحسابي في القوائم المالية والمؤشرات النهائية.

ومع ذلك، تقع العديد من الفرق البحثية والتحليلية في خلط منهجي بين مفهومين متباينين: البيانات الفعلية (Actual Data) المخزنة في الذاكرة كثوابت رقمية أو نصية، والتنسيق المرئي بوصفه طبقة عرض (Presentation Layer) لا تؤثر بنيوياً في محتوى الخلية. فإكسيل يتعامل مع القيمة “5000” المحاطة بخط شطب كقيمة مطابقة تماماً للقيمة “5000” المجردة؛ إذ لا يؤدي الشطب إلى تعديل التمثيل الثنائي للبيانات، مما يخلق فجوة دلالية بين ما يدركه العقل البشري بالعين المجردة وما يستشعره محرك الحسابات الآلي.

1.2 أهمية التصفية التحليلية وفق السمات التنسيقية للخلية

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

كما تلعب التصفية دوراً حاسماً في تبسيط عمليات فحص الجودة (Quality Assurance) وتدقيق البيانات في المشاريع الكبرى. فمن خلال عزل السجلات المنسقة بالشطب في عرض مستقل، يتمكن المدقق من مراجعة أسباب الإلغاء، والتأكد من توافقها مع اللوائح المنظمة، والتحقق من عدم تكرار الأخطاء النظامية. هذا الفرز الانتقائي يتيح أيضاً استخراج مؤشرات الأداء الخاصة بنسب الإلغاء مقارنة بالعمليات الناجحة، وهو ما يثري الدراسات التحليلية ببيانات وصفية بالغة الأهمية.

علاوة على ذلك، يساهم عزل العناصر المشطوبة في الحد من متلازمة التشويش المعرفي والتراكم البصري (Cognitive Overload) التي تصيب محللي البيانات أثناء قراءة المصفوفات المعقدة. فعندما يحتوي الجدول على مئات السطور المشطوبة المتناثرة بين السطور النشطة، تتشتت قدرة المحلل على استيعاب الأنماط واتخاذ القرارات السريعة. وتعمل التصفية هنا كمرشح عصبي رقمي يطهر مساحة العمل التحليلية ويبرز فقط ما هو ذو صلة مباشرة باللحظة التشغيلية الراهنة.

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

2.1 طبيعة أدوات التصفية الافتراضية وحدودها البرمجية

تم تصميم محرك التصفية التلقائية القياسي في إكسيل (AutoFilter) لمعالجة محددات محددة بدقة ترتبط بالقيم المخزنة أو ببعض الخصائص التنسيقية المختارة بعناية. تتيح الواجهة الرسومية التقليدية تصفية البيانات استناداً إلى ألوان تعبئة الخلايا (Cell Background Color)، وألوان خط النص (Font Color)، والأيقونات الناتجة عن قواعد التنسيق الشرطي (Conditional Formatting). غير أن واجهة التصفية تفتقر تماماً وبصورة مدمجة إلى أي زر أو خيار يختص بفرز أو تصفية أنماط الخط الطباعية كالتسطير، والميلان، والشطب.

يعود هذا القصور في تصميمه الأساسي إلى العزل الهيكلي داخل بيئة مايكروسوفت إكسيل بين محرك البيانات وخيارات استعراض الخطوط. فبينما يتم فهرسة الألوان كفئات تصنيفية بصرية سريعة الوصول في كود البرنامج، تُعامل سمة الشطب بوصفها سمة مظهرية ثانوية (Minor Typography Attribute) تابعة لكائن الخط الداخلي. ولما كانت أداة AutoFilter تركز على المعايير الأكثر شيوعاً وفق استبيانات الاستخدام التاريخية لشركة مايكروسوفت، فقد استُبعدت أنماط الخط الدقيقة من قوائم التصفية السريعة تجنباً لتعقيد الواجهة الرسومية للمستخدم العادي.

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

2.2 ضرورة التوجه نحو الحلول البرمجية عبر لغة فيجوال بيسك (VBA)

أمام عجز واجهة المستخدم الرسومية عن تلبية هذه الحاجة التحليلية، يبرز الانتقال إلى الطبقة البرمجية التحتية للتطبيق كمسار حتمي لمعالجة الأزمة. تتيح لغة فيجوال بيسك للتطبيقات (VBA) للمطورين والمحللين النفاذ المباشر إلى نموذج كائنات إكسيل (Excel Object Model)، والوصول إلى الخصائص العميقة التي تعجز أدوات التصفية السطحية عن قراءتها، ومن بينها بنية كائن الخط Font والخصائص المتفرعة عنه.

تتمثل الفلسفة الجوهرية للحل البرمجي في تحويل الحالة البصرية التنسيقية غير المفهرسة إلى قيم منطقية أو رقمية واضحة تستطيع محركات التصفية الافتراضية فهمها ومعالجتها بسلاسة. فعندما نُنشئ دالة تقرأ ما إذا كانت الخلية تحتوي على خط شطب، وتقوم بإخراج قيمة صواب (True) في حال وجوده وقيمة خطأ (False) في حال غيابه، نكون قد جسرنا الفجوة بين طبقة العرض وطبقة البيانات، وحولنا التنسيق إلى حقل بيانات وصفي مستقل قابل للفرز والتصفية المباشرة.

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

3. الإعداد التقني للبيئة البرمجية: تمكين علامة تبويب المطور

3.1 خطوات استدعاء شريط المطور في واجهة المستخدم الرسمية

لتمكين التطبيق من استيعاب وتنفيذ الدوال البرمجية المخصصة عبر VBA، يجب أولاً استدعاء الأدوات الهندسية المتوارية خلف واجهة المستخدم القياسية. تخفي مايكروسوفت علامة تبويب المطور (Developer Tab) افتراضياً لتبسيط التجربة المرئية للمستخدمين غير المتخصصين وحمايتهم من تغيير إعدادات بيئة العمل الحساسة دون دراية تقنية كافية.

تبدأ خطوات تفعيل هذه الواجهة بالولوج إلى القائمة التأسيسية للتطبيق من خلال النقر على تبويب ملف (File) الموجود في الزاوية العلوية، ثم النزول إلى أسفل القائمة واختيار خيارات (Options). يؤدي هذا الإجراء إلى فتح نافذة حوارية جامعة تشتمل على كافة المحددات التشغيلية والمظهرية لبرنامج إكسيل، والتي تمثل لوحة التحكم المركزية في سلوك التطبيق.

من اللوحة الجانبية لنافذة خيارات إكسيل، يتعين على المستخدم اختيار قسم تخصيص الشريط (Customize Ribbon). ستظهر نافذة مقسمة إلى عمودين؛ يختص العمود الأيمن بإدارة علامات التبويب الرئيسية (Main Tabs). ينبغي التمرير لأسفل هذا العمود حتى العثور على خيار المطور (Developer)، ثم وضع علامة صح داخل المربع الصغير المحاذي له، والضغط على زر موافق (OK) لحفظ التغييرات. وبذلك تظهر علامة تبويب المطور على الشريط العلوي كأداة دائمة تتيح الوصول الفوري لمحرر الأكواد وبيئات التحكم المتقدمة.

3.2 إدارة إعدادات أمان وحدات الماكرو لحماية المصنف البرمجي

بمجرد إتاحة أدوات المطور، تبرز مسألة حيوية تتعلق بالأمان الرقمي؛ حيث تُعد أكواد الماكرو في إكسيل بيئة خصبة محتملة لتنفيذ نصوص برمجية ضارة في حال تنزيل ملفات من مصادر غير موثوقة. لذلك، تفرض مايكروسوفت سياسات تدقيق صارمة عبر مركز التوثيق (Trust Center) لتنظيم كيفية التعامل مع الأكواد البرمجية المستحدثة.

للوصول إلى هذه الإعدادات، يتم النقر على علامة تبويب المطور ثم اختيار أمان الماكرو (Macro Security)، أو الدخول إليها عبر خيارات إكسيل ثم مركز التوثيق وإعدادات مركز التوثيق. يُنصح دائماً في البيئات المؤسسية والبحثية بضبط الخيار على “تعطيل كافة وحدات الماكرو مع الإخطار” (Disable all macros with notification). يضمن هذا الإعداد حظر التشغيل التلقائي العشوائي لأي شيفرة برمجية غريبة، مع منح المستخدم شريط تنبيه رقمي يتيح له تفعيل الماكرو يدوياً عند التحقق من سلامة المصدر البرمجي وموثوقيته.

علاوة على ذلك، يجب الانتباه إلى الامتداد الهيكلي للمصنف؛ فملفات إكسيل الافتراضية ذات الامتداد القياسي .xlsx مبرمجة تقنياً لتجريد وحذف أي كود ماكرو بمجرد حفظ الملف وإغلاقه. لضمان بقاء الدوال البرمجية المخصصة التي سننشئها صالحة للعمل في المستقبل، يتحتم حفظ المصنف بصيغة Excel Macro-Enabled Workbook ذات الامتداد الخوارزمي المخصص .xlsm، مما يوفر بيئة استقرار مستدامة تدعم تنفيذ الأكواد البرمجية عند كل إعادة فتح للملف.

4. صياغة الدالة المخصصة (UDF) لفحص سمة الشطب عبر VBA

4.1 البنية البرمجية لكائن النطاق وخاصية الخط (Font.Strikethrough)

ترتكز هندسة البرمجة في إكسيل على بنية شجرية متسلسلة تعرف باسم نموذج الكائنات؛ حيث يحتوي التطبيق على مصنفات (Workbooks)، وكل مصنف يحتوي على أوراق عمل (Worksheets)، وتتكون كل ورقة من كائنات نطاق (Range Objects) تمثل الخلايا الفردية أو المجموعات الخلوية. عند استهداف سمة فيزيائية لنص ما، يتعين على الكود التغلغل داخل كائن النطاق للوصول إلى الكائن الفرعي المسؤول عن إدارة الخصائص البصرية وهو كائن الخط Font.

يتضمن كائن الخط باقة واسعة من الخصائص الرقمية والمنطقية، ومن أبرزها خاصية Font.Strikethrough. صُممت هذه الخاصية البرمجية لتقييم وجود خط الشطب؛ حيث ترجع قيمة ثنائية قياسية (Boolean) محددة رياضياً. فإذا كان النص داخل الخلية خاضعاً لتنسيق يتوسطه خط بالكامل، فإن الخاصية ترجع القيمة المنطقية True، بينما ترجع القيمة المنطقية False إذا كان النص عادياً وخالياً من أي أثر للشطب الأفقي.

لإرساء هذا الفحص المنهجي، يتم فتح محرر فيجوال بيسك بالضغط على مفتاحي Alt + F11 معاً من لوحة المفاتيح، أو بالنقر على أيقونة Visual Basic في شريط المطور. بعد فتح نافذة المحرر، يتم الانتقال إلى شريط القوائم العلوي والضغط على Insert ثم اختيار Module. يؤدي هذا الإجراء إلى فتح صفحة تحرير بيضاء مخصصة لكتابة وحدات الماكرو البرمجية العامة التي يمكن استدعاؤها من أي مكان داخل ورقة العمل بصيغة دوال حسابية معرفة من قبل المستخدم (User-Defined Functions – UDF).

4.2 الترميز البرمجي المعتمد للدالة المخصصة وشرح مكوناته

تتم كتابة الدالة البرمجية المخصصة باتباع الهيكلية المعيارية للغات البرمجة الإجرائية، بهدف ضمان خفة الوزن الحوسبي وسرعة التنفيذ عند تطبيقها على آلاف الخلايا المتعاقبة. يتم إدراج النص البرمجي الآتي داخل الوحدة النمطية (Module):

Function HasStrikethrough(Cell As Range) As Boolean
    HasStrikethrough = Cell.Font.Strikethrough
End Function

يتألف هذا الكود من عناصر محددة بدقة هندسية:

  • Function HasStrikethrough(Cell As Range) As Boolean: يُعلن هذا السطر عن إنشاء دالة عامة جديدة تحمل اسماً دلالياً واضحاً، وتستقبل متغيراً واحداً يُدعى Cell ينتمي إلى فئة النطاق الخلوي Range، مع تحديد نوع المخرجات بأن تكون قيمة منطقية ثنائية Boolean لا تحتمل سوى الصواب أو الخطأ.
  • HasStrikethrough = Cell.Font.Strikethrough: يمثل هذا السطر قلب المعالجة المنطقية، حيث يستعلم الكود عن خاصية الشطب لكائن الخط الخاص بالخلية المحددة ويسند قيمتها الناتجة مباشرة إلى اسم الدالة لإرجاعها إلى ورقة العمل.
  • End Function: الإغلاق المعياري لهيكل الدالة البرمجية، مشيراً إلى انتهاء دورة المعالجة وإعادة التحكم إلى محرك حسابات إكسيل.

عقب إتمام كتابة هذه الشيفرة في محرر VBA، يتم إغلاق نافذة المحرر والعودة إلى واجهة الجداول الرئيسية عبر الضغط على مفتاحي Alt + Q. يجب التشديد هنا مجدداً على ضرورة التأكد من حفظ الملف بصيغة .xlsm؛ إذ إن التهاون في ذلك سيؤدي إلى فقدان هذه الدالة المستحدثة فور إغلاق التطبيق، مما يعطل بنية التصفية المنطقية بالكامل في جلسات العمل اللاحقة.

5. تجهيز مجموعة البيانات وبناء العمود المساعد المخصص

5.1 إعداد نموذج البيانات التطبيقي وفق معايير الجدولة القياسية

لتطبيق هذه المنهجية التطبيقية بصورة نموذجية، سنفترض وجود مصفوفة بيانات واقعية مستخرجة من سجلات قسم إدارة المشاريع أو المشتريات. يحتوي الجدول على أربعة أعمدة رئيسية تمثل: رقم المعاملة (Transaction ID)، واسم العميل أو البند (Item Description)، وقيمة الفاتورة (Invoice Amount)، وحالة التنفيذ الميداني. وفي هذا النموذج، قام فريق التدقيق بشطب بعض المعاملات الملغاة أو المرفوضة عبر تطبيق تنسيق يتوسطه خط يدوياً على أسماء البنود أو قيم الفواتير لتمييزها بصرياً.

تقتضي متطلبات الجدولة القياسية التحقق المسبق من نظافة النطاق المستهدف؛ حيث يجب التأكد من عدم وجود خلايا مدمجة (Merged Cells) داخل نطاق البيانات أو في صفوف العناوين؛ فالدمج الخلوي يربك مؤشرات نموذج الكائنات في VBA ويعطل سلاسل الفرز الآلي. كما ينبغي التأكد من اتساق نوع البيانات في العمود المستهدف بالشطب، وضمان خلوه من الفواصل البنيوية الفارغة تماماً التي قد توهم محرك التصفية بانتهاء حدود مصفوفة البيانات.

يتم بعد ذلك تحديد النطاق بوضوح، مع التأكد من أن صف الرؤوس (Headers) مميز بخط واضح ومحدد كصف عناوين ثابت لا يختلط بسجلات البيانات التابعة له. هذه التهيئة التأسيسية تمهد الطريق لإنشاء بنية ربط خوارزمية مستقرة بين البيانات الأصلية والعمود التحليلي الإضافي المزمع تشييده.

5.2 تطبيق الدالة المستحدثة على مصفوفة النطاق المستهدف

تبدأ الخطوة التنفيذية المباشرة بإنشاء عمود إضافي ملاصق لجدول البيانات، يُطلق عليه مسمى العمود المساعد (Helper Column). يتم تسمية رأس هذا العمود في الصف الأول بعنوان واضح يعبر عن وظيفته، مثل حالة_الشطب أو Is_Cancelled. تكمن وظيفة هذا العمود في تجسيد الحالة البصرية المجردة لكل سجل وتحويلها إلى قيمة نصية منطقية قابلة للفرز والقياس المباشر.

في الخلية الأولى التابعة للعمود المساعد (ولتكن الخلية D2 على فرض أن البيانات المستهدفة بالفحص تقع في الخلية B2)، نقوم بكتابة الصيغة البرمجية المستحدثة كما يلي:

=HasStrikethrough(B2)

بمجرد الضغط على زر الإدخال (Enter)، سيقوم محرر إكسيل باستدعاء كود VBA الذي تم بناؤه في القسم السابق، ويقوم بفحص كائن الخط للخلية B2. فإذا كانت الخلية مشطوبة، ستظهر فوراً في الخلية المساعدة القيمة المنطقية TRUE، أما إذا كانت الخلية تحتفظ بنمط الخط الطبيعي غير المشطوب، فستظهر القيمة المنطقية FALSE.

لتعميم هذا الإجراء على سائر خلايا الجدول، يتم النقر المزدوج على مقبض التعبئة التلقائي (AutoFill Handle) الواقع في الزاوية السفلية اليسرى (أو اليمنى حسب اتجاه الواجهة) لخلية الصيغة، أو سحبه يدوياً لأسفل حتى نهاية آخر صف في قاعدة البيانات. تتولى المراجع النسبية (Relative References) تكييف مدخلات الدالة لتفحص كل خلية في صفها المقابل، وبذلك يتحول العمود المساعد بالكامل إلى مصفوفة رقمية عاكسة بدقة مطلقة للحالة التنسيقية للجدول بأكمله.

6. تنفيذ إجراءات التصفية المنطقية المتقدمة وفق حالة الشطب

6.1 تشغيل أداة التصفية التلقائية على جدول البيانات المعزز

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

ينتقل المستخدم بعد ذلك إلى الشريط العلوي للتطبيق، وتحديداً إلى علامة تبويب بيانات (Data)، ثم النقر على الأيقونة الشهيرة تصفية (Filter) التي تتخذ شكل القمع، أو يمكن الاستعاضة عن ذلك باستخدام الاختصار السريع من لوحة المفاتيح بالضغط المتزامن على مفاتيح Ctrl + Shift + L. يترتب على هذا الإجراء المباشر ظهور أسهم القوائم المنسدلة في الزوايا السفلية لكافة خلايا صف العناوين، معلنة جاهزية النظام لاستقبال أوامر التصفية الهيكلية.

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

6.2 عزل السجلات المستهدفة عبر التحديد المنطقي الدقيق

لتنفيذ عملية العزل الفعلي للبيانات، يتم النقر على سهم القائمة المنسدلة المتواجد في رأس العمود المساعد حالة_الشطب. ستعرض القائمة خيارات التصفية المتاحة، والتي ستقتصر بطبيعة الحال على قيمتين منطقيتين أساسيتين هما: TRUE و FALSE (بالإضافة إلى خيار التحديد الكلي).

تتم إدارة السيناريوهات التحليلية باتباع إحدى آليتين وفق أهداف الفحص المحددة:

  • سيناريو فحص السجلات المشطوبة (العناصر الملغاة أو المكتملة): يقوم المحلل بإلغاء تحديد خيار (تحديد الكل – Select All)، ثم يضع علامة الاختيار حصراً أمام القيمة TRUE، ثم يضغط زر موافق. تؤدي هذه الخطوة فوراً إلى حجب كافة الصفوف السليمة وإبقاء الصفوف التي تحتوي على نصوص يتوسطها خط فقط، مما يتيح تدقيقها المجمع، أو نسخها لأرشيف مستقل، أو تحليل مسببات إلغائها.
  • سيناريو استخراج البيانات النشطة النقية: يقوم المحلل بإلغاء التحديد واختيار القيمة المنطقية FALSE فقط. يضمن هذا الإجراء إخفاء كافة السجلات الملغاة أو المرفوضة، وتوفير بيئة نظيفة تماماً للبيانات السارية والمفعلة، مما يسمح بحساب المجاميع الرياضية وتوليد المخططات البيانية دون أي تشويه ناجم عن وجود قيم مشطوبة.

عقب إتمام أي من السيناريوهين، تتغير أرقام الصفوف المعروضة على يسار الشاشة إلى اللون الأزرق، مما يعطي مؤشراً بصرياً صريحاً بأن الجدول خاضع لحالة تصفية نشطة، مع توفير إمكانية إلغاء التصفية وإعادة إظهار كافة السجلات في أي لحظة عبر النقر على زر مسح (Clear) من تبويب بيانات.

7. المنهجيات البديلة: التصفية دون استخدام البرمجة المباشرة (VBA)

7.1 استخدام خاصية البحث والاستبدال المتقدم لاكتشاف التنسيق

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

تعتمد هذه المنهجية الذكية على استخدام محرك البحث والاستبدال المتقدم (Find and Replace) لاكتشاف التنسيق البصري المجرد، وتتلخص خطواتها العملية في الآتي:

  1. تحديد العمود المستهدف الذي يحتوي على النصوص المشطوبة لتفادي البحث العشوائي في كامل المصنف.
  2. فتح نافذة البحث والاستبدال عبر الضغط على الاختصار الشهير Ctrl + F.
  3. النقر على زر خيارات (Options) لتوسيع معايير البحث وإظهار المحددات المتقدمة.
  4. النقر على زر تنسيق (Format) الواقع على يمين حقل البحث، والولوج إلى تبويب خط (Font) في النافذة المنبثقة، ثم تفعيل خيار يتوسطه خط (Strikethrough) بوضع علامة صح أمامه والضغط على موافق.
  5. النقر على زر البحث عن الكل (Find All)؛ سيقوم إكسيل بإنشاء قائمة سفلية مفصلة تشتمل على كافة الخلايا التي تتطابق مع هذا التنسيق في النطاق المحدد.
  6. النقر داخل القائمة السفلية الناتجة والضغط على مفتاحي Ctrl + A لتحديد كافة النتائج المطابقة دفعة واحدة وبشكل متزامن.
  7. إغلاق نافذة البحث مع بقاء الخلايا المشطوبة محددة، ثم التوجه مباشرة إلى شريط الأدوات الرئيسي وتطبيق لون تعبئة قياسي (Fill Color)، كالأصفر أو الرمادي الفاتح، على كافة تلك الخلايا المحددة.

بمجرد وسم الخلايا المشطوبة بلون خلفية مميز، يصبح الطريق ممهداً لاستخدام أداة التصفية الافتراضية؛ حيث يفتح المحلل سهم التصفية المنسدل في رأس العمود، ويختار خيار التصفية حسب اللون (Filter by Color)، ومن ثم يحدد اللون الذي تم تطبيقه، ليحصل فوراً على مصفوفة مصفاة تحتوي على السجلات المشطوبة دون الحاجة لأي كود برمجي.

7.2 المفاضلة الأكاديمية بين المنهج البرمجي والطرق اليدوية التنسيقية

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

أولاً: عامل الأتمتة والديناميكية: يتفوق المسار البرمجي المعتمد على الدالة المخصصة HasStrikethrough تفوقاً ساحقاً في البيئات التي تتطلب دورات معالجة متكررة وتقارير دورية مستمرة؛ حيث تظل الصيغة الرياضية جاهزة للتقييم بمجرد تحديث البيانات. في المقابل، يُعد أسلوب البحث والاستبدال والتلوين اليدوي إجراءً ثابتاً غير ديناميكي (Static Workaround)؛ فإذا قام المستخدم بشطب صفوف إضافية لاحقاً، فلن تتلون تلقائياً، مما يفرض إعادة تنفيذ خطوات البحث والتلوين اليدوي من البداية عند كل تحديث، وهو ما يستهلك زمناً تشغيلياً مضاعفاً ويزيد من احتمالية السهو والخطأ.

ثانياً: عامل الحوكمة والأمان التقني: تُعد الطريقة اليدوية الخيار الأكثر أماناً وموثوقية في المؤسسات التي تطبق بروتوكولات حماية تمنع فتح وتشغيل ملفات الماكرو، كما أنها تضمن بقاء المصنف بصيغته القياسية .xlsx التي تتميز بسهولة التداول والمشاركة عبر البريد الإلكتروني ومنصات التخزين السحابي دون إثارة تحذيرات الفيروسات البرمجية. ومع ذلك، تبقى هذه الطريقة حلاً إسعافياً محدوداً يصلح للمهام المنفردة لمرة واحدة (One-off Tasks)، بينما تمثل الحلول البرمجية الخيار الهندسي المستدام لتطبيقات قواعد البيانات المتقدمة.

8. التحديات التقنية واستكشاف الأخطاء الشائعة وحلولها المنهجية

8.1 إشكالية عدم التحديث التلقائي للدوال المخصصة عند تعديل التنسيق

يواجه مستخدمو الدوال المعرفة عبر VBA في إكسيل ظاهرة تقنية قد تبدو محيرة للوهلة الأولى: عند كتابة الدالة المخصصة في العمود المساعد وسحبها، تعمل بنجاح تام، ولكن عند الرجوع لاحقاً وتطبيق تنسيق الشطب على خلية جديدة أو إزالة الشطب من خلية قديمة، لا يتغير ناتج الدالة من FALSE إلى TRUE أو العكس بصورة تلقائية فورية كما هو معتاد في صيغ الجمع والحساب التقليدية.

يعود التفسير العلمي لهذه الظاهرة إلى البنية الداخلية لمحرك الحسابات في إكسيل؛ حيث صُمم المحرك ليرصد فقط أحداث تعديل القيم (Value Modification Events)، مثل تغيير رقم أو تعديل نص داخل الخلية، لتشغيل دورة إعادة الحساب التلقائي (Recalculation Cycle). أما تعديل السمات التنسيقية والمظهرية مثل ألوان الخلايا أو تطبيق الشطب، فهو يقع خارج نطاق محفزات الحساب الآلي؛ إذ لا يعتبرها النظام تغييراً في جوهر البيانات يستوجب استنزاف موارد المعالج في إعادة تقييم الصيغ الرياضية.

لمعالجة هذا القصور المنهجي، يتوفر مساران رئيسيان:

  • الحل الحسابي الإجباري اليدوي: يتمثل في الضغط على مفتاح F9 من لوحة المفاتيح لإعادة حساب ورقة العمل النشطة، أو الضغط على التركيبة الشاملة Ctrl + Alt + F9 التي تجبر إكسيل على إجراء فحص جذري وكامل لكافة صيغ المصنف البرمجي دون استثناء، مما يؤدي فوراً إلى تحديث مخرجات الدالة المخصصة لتطابق التنسيقات البصرية الجديدة.
  • الحل البرمجي عبر جعل الدالة متطايرة (Volatile Function): يمكن تعديل الكود البرمجي بإضافة الأمر التوجيهي Application.Volatile في بداية سطر المعالجة ليصبح بالشكل الآتي:

    Function HasStrikethrough(Cell As Range) As Boolean
        Application.Volatile True
        HasStrikethrough = Cell.Font.Strikethrough
    End Function

يجبر هذا الأمر البرمجي تطبيق إكسيل على إعادة تقييم هذه الدالة مع كل حركة حسابية أو إدخال يطرأ في أي مكان داخل ورقة العمل. ومع ذلك، ينبغي التحذير الأكاديمي الصارم من الإفراط في استخدام الدوال المتطايرة في المصنفات الضخمة؛ فجعل آلاف الخلايا متطايرة سيؤدي إلى شلل ملحوظ في سرعة استجابة البرنامج وانخفاض حاد في كفاءة المعالجة الحوسبية للجهاز نتيجة تكرار العمليات الحسابية دون مبرر تشغيلي حقيقي.

8.2 التعامل مع النصوص المشطوبة جزئياً داخل الخلية الواحدة

من أكثر التحديات البنيوية تعقيداً في معالجة الخطوط، حالة الشطب الجزئي (Partial Strikethrough)؛ حيث تحتوي الخلية على جملة أو تركيبة نصية كأن يُكتب مثلاً “المبلغ المعتمد: 5000 7000″، بحيث يتم شطب جزء من النص فقط مع بقاء الأجزاء الأخرى بالتنسيق الطبيعي القياسي.

في هذه الحالة الخاصة، يعجز الكود البسيط Cell.Font.Strikethrough عن إرجاع قيمة منطقية ثنائية واضحة (True أو False). وبدلاً من ذلك، تُرجع الخاصية قيمة غير معينة تُعرف في لغة VBA باسم Null، مما يشير إلى وجود تناقض بنيوي واختلاط في السمات التنسيقية داخل الكائن المفحوص. وإذا لم يتم التعامل مع هذه الحالة برمجياً، فقد ترجع الدالة أخطاء حسابية أو تتجاهل الخلية كلياً أثناء التصفية.

للتغلب على هذه المعضلة وتطوير الكود إلى مستوى احترافي متقدم قادر على تفكيك هذه الحالات الشاذة، يجب اللجوء إلى فحص النص على مستوى الحرف الفردي (Character-Level Inspection) باستخدام خوارزميات التكرار الحلقي (Loops)، كما هو موضح في البنية المطورة الآتية:

Function AdvancedStrikethroughCheck(Cell As Range) As String
    Dim i As Long
    Dim HasStrike As Boolean
    Dim HasNonStrike As Boolean

    If IsNull(Cell.Font.Strikethrough) Then
        ' فحص الحروف بصورة فردية في حالة الشطب المختلط
        For i = 1 To Len(Cell.Text)
            If Cell.Characters(i, 1).Font.Strikethrough = True Then
                HasStrike = True
            Else
                HasNonStrike = True
            End If
        Next i
        If HasStrike And HasNonStrike Then
            AdvancedStrikethroughCheck = "جزئي"
        End If
    ElseIf Cell.Font.Strikethrough = True Then
        AdvancedStrikethroughCheck = "كلي"
    Else
        AdvancedStrikethroughCheck = "لا يوجد"
    End If
End Function

تمنح هذه الدالة المتقدمة المحلل قدرة فائقة على التمييز؛ حيث تفرز الخلايا إلى ثلاث فئات واضحة: “كلي”، و”جزئي”، و”لا يوجد”. يتيح هذا التصنيف الدقيق تصفية الحالات المعقدة وفحص السجلات التي تم تعديل جزء من بنودها دون إلغائها بالكامل، مما يرفع من جودة الرقابة الميدانية والتحليل الإحصائي للمصفوفات الحساسة.

9. تحسين الأداء وإدارة قواعد البيانات الضخمة في برنامج إكسيل

9.1 استراتيجيات تقليل الاستهلاك الحوسبي للدوال البرمجية المخصصة

عند التعامل مع قواعد بيانات مؤسسية ضخمة تتجاوز عشرات الآلاف من السجلات، قد يؤدي استدعاء الدوال البرمجية المخصصة (UDF) إلى إبطاء ملحوظ في أداء البرنامج؛ نظراً لأن محرك VBA يستهلك وقتاً إضافياً في الانتقال بين بيئة الجداول وبيئة المحرر البرمجي عند معالجة كل خلية على حدة. ولتجنب شلل النظام وضمان انسيابية العمليات الحسابية، تبرز مجموعة من الإجراءات الهندسية الوقائية.

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

علاوة على ذلك، يُعد تحويل نتائج العمود المساعد إلى قيم ثابتة استراتيجية بالغة الأهمية عقب الانتهاء من التصفية. بمجرد تنفيذ الدالة وظهور النتائج وتطبيق عامل التصفية المطلوب، يمكن للمحلل نسخ العمود المساعد ثم استخدام أمر لصق كقيم (Paste as Values) فوق نفس النطاق. يزيل هذا الإجراء ارتباط الخلايا البرمجي بمحرر VBA ويحول النتائج إلى نصوص ثابتة، مما يحرر ذاكرة الجهاز ويضمن سرعة التمرير والفرز دون أي عبء حوسبي إضافي.

أما على الصعيد البرمجي المتقدم، فيمكن تطوير وحدات ماكرو تعتمد على مصفوفات الذاكرة الداخلية (Memory Arrays) لمعالجة نطاق البيانات ككتلة واحدة في ذاكرة الوصول العشوائي (RAM) وتحديد حالة الشطب لكل الخلايا دفعة واحدة، ثم إسقاط النتائج في خطوة زمنية موحدة بدلاً من الاستدعاء المتكرر للدالة في كل صف، مما يقلص زمن المعالجة من دقائق إلى أجزاء من الثانية.

9.2 التوافقية الرقمية وحفظ المصنفات عبر الأنظمة المؤسسية المختلفة

تفرض حوكمة النظم التقنية في المؤسسات مراعاة التوافقية الرقمية (Digital Interoperability) عند توزيع المصنفات التي تحتوي على أكواد VBA بين الموظفين والأقسام المختلفة. يجب الإدراك التام بأن الدوال المعرفة عبر VBA لا تعمل إطلاقاً على نسخ الويب من برنامج إكسيل أونلاين (Excel for the Web)؛ حيث تقتصر بيئة السحابة على تشغيل لغة Office Scripts المبنية على TypeScript/JavaScript، مما يعني تعطل العمود المساعد في حال فتح المصنف عبر المتصفح دون التطبيق المكتبي الأصلي.

لضمان استمرارية الأعمال عبر الأنظمة المختلفة، يتعين على محلل البيانات توثيق المصنف بوضوح، ووضع إرشادات إجرائية في ورقة عمل افتتاحية (Read-Me Sheet) توضح للمستخدمين ضرورة تنزيل الملف وفتحه باستخدام تطبيق سطح المكتب (Desktop Application)، بالإضافة إلى التعليمات الخاصة بالسماح بتشغيل الماكرو عبر شريط التحذير الأصفر المنبثق.

كما يُوصى بشدة بتضمين تعليقات توثيقية دقيقة ومكثفة داخل الكود البرمجي في محرر VBA باللغتين العربية أو الإنجليزية. يضمن هذا التوثيق للمطورين والمحللين اللاحقين فهم الغرض المنهجي من الدالة، ومعرفة النطاقات المستهدفة، وكيفية تحديث البنية الخوارزمية في حال طرأت تعديلات مستقبلية على هيكلية السجلات والتقارير المعتمدة داخل المؤسسة.

10. أفضل الممارسات المنهجية لحوكمة البيانات وتوثيق التغييرات

10.1 الانتقال من التنسيق البصري العشوائي إلى الترميز البنيوي للبيانات

على الرغم من النجاح التقني الملموس في حل معضلة التصفية حسب الشطب عبر الدوال البرمجية، إلا أن النقد المنهجي لعلم البيانات يصف الاعتماد على السمات المظهرية كأدوات لتسجيل الحالات التشغيلية بأنه “ممارسة رديئة لإدارة البيانات” (Bad Data Practice). فالتنسيق البصري العشوائي بطبيعته هش وعرضة للخطأ البشري؛ إذ يسهل تطبيقه أو إزالته بطريق السهو دون وجود قيود منطقية تضمن سلامة الإدخال.

Excel filter by strikethrough
Excel filter by strikethrough

يتمثل الانتقال الحضاري والمنهجي في حوكمة قواعد البيانات في استبدال الشطب اليدوي بإنشاء حقل مخصص يسمى عمود الحالة (Status Column). يُدار هذا العمود عبر قواعد التحقق من صحة البيانات (Data Validation) بقوائم منسدلة معيارية تشتمل على خيارات محددة حصراً، مثل: "مكتمل"، "ملغى"، "قيد المراجعة"، و"نشط". يضمن هذا النهج تحويل المعنى الدلالي إلى بيانات هيكلية أصلية تدخل في نسيج قاعدة البيانات دون الحاجة لأي وسيط برمجي لقراءتها.

وللحفاظ على الميزة البصرية الإيجابية للشطب التي تسهل القراءة السريعة، يتم ربط عمود الحالة بقواعد التنسيق الشرطي (Conditional Formatting) التلقائي. فعندما يختار المستخدم كلمة “ملغى” من القائمة المنسدلة، يقوم إكسيل تلقائياً بتطبيق خط الشطب على كامل بيانات الصف المعني. يحقق هذا النموذج التكاملي أفضل ما في العالمين: الحفاظ على التمثيل البصري المريح للعين البشرية من جهة، وتوفير بيانات بنيوية نقية يسهل تصنيفها، وفرزها، واستيعابها فورياً عبر محركات التحليل المتقدمة مثل Power Query دون مواجهة أي قيود تقنية.

10.2 الخلاصة الإجرائية والتوصيات التطبيقية للمحللين والباحثين

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

يمكن تلخيص التوصيات التطبيقية المستخلصة للمحللين في النقاط الآتية:

  • اعتماد الدالة المخصصة (HasStrikethrough) كحل أساسي: يُعد استخدام دوال VBA والعمود المساعد الخيار الأكثر كفاءة وموثوقية للجداول المعقدة والتقارير التي تتطلب معالجة دورية منتظمة.
  • استخدام البحث والتلوين اليدوي في البيئات المقيدة: اللجوء إلى نافذة البحث عن التنسيق واستبداله بالألوان كخيار بديل آمن وسريع في المؤسسات التي تحظر استخدام ملفات الماكرو.
  • إجراء التدقيق المتقاطع (Cross-Validation): التأكد الدائم من عدم إسقاط أي سجلات هامة عن طريق الخطأ بمقارنة مجاميع البيانات قبل وبعد تطبيق مرشحات التصفية.
  • إعادة هندسة تدفق البيانات مستقبلاً: العمل تدريجياً على التخلص من الترميز البصري اليدوي، وبناء أنظمة إدخال منضبطة تعتمد على أعمدة الحالة المحددة والتنسيق الشرطي المؤتمت، ضماناً لاستدامة البنية التحليلية وسهولة إدماجها في منصات ذكاء الأعمال المتقدمة.

المراجع

  • Alexander, M., & Kusleika, R. (2019). Excel 2019 Power Programming with VBA. John Wiley & Sons. https://www.wiley.com/en-us/Excel+2019+Power+Programming+with+VBA-p-9781119514923
  • Microsoft Support. (n.d.). Filter data in a range or table. Microsoft. https://support.microsoft.com/en-us/office/filter-data-in-a-range-or-table-01832226-bc9a-4e63-8579-30b0b8754668
  • Microsoft Learn. (2022). Font.Strikethrough property (Excel). Microsoft. https://learn.microsoft.com/en-us/office/vba/api/excel.font.strikethrough
  • Statology. (2023). How to Filter by Strikethrough in Excel. https://www.statology.org/excel-filter-by-strikethrough/
  • Trump Excel. (2023). How to Filter Strikethrough in Excel. https://trumpexcel.com/filter-strikethrough-excel/
  • Walkenbach, J. (2015). Microsoft Excel 2016 Bible. John Wiley & Sons. https://www.wiley.com/en-us/Excel+2016+Bible-p-9781119067511
★

تقييم هذا المحتوى

5.0 / 5 • 7 تقييمات

اقتباس هذا المقال

looti, M. (2026, أكتوبر 23). كيفية التصفية حسب يتوسطه خط في إكسيل (مع مثال). عرب سايكلوجي. https://arabpsychology.com/statistics/how-to-filter-by-strikethrough-in-excel-with-example/
looti, Mohammed. “كيفية التصفية حسب يتوسطه خط في إكسيل (مع مثال).” عرب سايكلوجي, 23 أكتوبر 2026, https://arabpsychology.com/statistics/how-to-filter-by-strikethrough-in-excel-with-example/.
looti, Mohammed. “كيفية التصفية حسب يتوسطه خط في إكسيل (مع مثال).” عرب سايكلوجي. أكتوبر 23, 2026. https://arabpsychology.com/statistics/how-to-filter-by-strikethrough-in-excel-with-example/.