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

إذا كنتَ قادرًا على استخدام دالة IF متداخلة، أو إدارة آلاف الصفوف من البيانات، أو استكشاف خطأ #REF! المزعج في مايكروسوفت إكسل، فتهانينا – لقد برمجتَ لسنوات دون أن تدري.
قد تُوحي لك كلمة “مبرمج” بأشخاص يجلسون أمام شاشات خضراء معقدة وأكواد غامضة، لكن الخبر السار هو أن القفزة الذهنية اللازمة لبناء نموذج إكسل عملي ومعقد هي نفس التفكير الذي يُحرك تطوير البرمجيات الاحترافي. الأمر لا يتعلق بتعلم لغة جديدة، بل بإدراك مهارات البرمجة المتقدمة التي تمتلكها بالفعل، بفضل برنامج جداول البيانات الذي تستخدمه يوميًا.
البرمجة مقابل الترميز: هناك فرق

الترميز هو ترجمة حل منطقي إلى صيغة قابلة للقراءة بواسطة الحاسوب. يتضمن ذلك كتابة تعليمات باستخدام قواعد لغوية محددة (مثل جافا سكريبت أو بايثون). ولأن أجهزة الحاسوب تعمل حرفيًا، يركز الترميز على الالتزام الصارم بهذه القواعد – فوضع فاصلة واحدة في غير موضعها يعني عدم قدرة الآلة على تنفيذ التعليمات.
من ناحية أخرى، البرمجة هي عملية متقدمة تشمل تصميم الحل، وصياغة بنية البيانات، وتحليل المشكلة، واختبار الأخطاء.
قد يكون الترميز مطلوبًا في برنامج Excel إذا كنت تُنشئ نموذجًا ماليًا معقدًا عن طريق كتابة وحدات ماكرو VBA أو نص برمجي بلغة بايثون. ومع ذلك، حتى مع الصيغ القياسية، فأنت تُعرّف هياكل البيانات وتُدير تدفق التنفيذ – وهما عمليتان برمجيتان أساسيتان.
نوعان من البرمجة في إكسل
في إكسل، تستخدم نموذجين من البرمجة: وظيفي وإجرائي.
عندما تكتب صيغة بسيطة مثل =SUM(A1:A10)، فأنت تطرح سؤالاً، وتُعيد الخلية الإجابة دون تغيير أي شيء آخر. هذه هي البرمجة الوظيفية. أما عند تسجيل ماكرو، فتنتقل إلى البرمجة الإجرائية بإخبار إكسل: “أولاً، افعل هذا. ثم، افعل ذاك. وأخيرًا، احفظ هذا”. وهنا غالبًا ما تتخطى الحدود إلى البرمجة الفعلية.
| النموذج البرمجي | التعريف في البرمجة | المقابل في Excel |
|---|---|---|
| Functional وظيفي | التقييم الحاسوبي للوظائف الرياضية دون تغيير الحالة أو التسبب في أي آثار جانبية. | الصيغ مثل SUMIFS أو XLOOKUP تأخذ المدخلات وتعيد المخرجات دون التأثير على بقية محتويات الورقة. |
| Procedural إجرائي | تنظيم الكود في سلسلة من الخطوات التي تغيّر حالة النظام. | الماكروز وVBA عبارة عن تعليمات واضحة تعمل خطوة بخطوة لتعديل القيم، نسخ البيانات، وأتمتة العمليات المعقدة. |
غالبًا ما يمزج Excel بين هذين النموذجين. على سبيل المثال، عند استخدام Power Query، تكون لغة M وظيفية – كل خطوة هي دالة تُطبّق على النتيجة السابقة. أما واجهة المستخدم، فهي إجرائية – حيث ترى قائمة بالخطوات المطبقة، وتُحدّد إجراءً تسلسليًا لتنظيف بياناتك وتحويلها.
ملاحظة
تنويه: يُعدّ تصنيف Excel “لغة برمجة” موضوع نقاش في مجتمع علوم الحاسوب. يجادل البعض بأنه أداة متخصصة في مجال مُحدّد، بينما يقول آخرون إن محركاته المنطقية القوية تجعله مكتملًا بمعادلة تورينج. في النهاية، إتقانك للمنطق والتصميم هو ما يُميّزك كمبرمج.
جدول بياناتك هو بيئة برمجة
تحتوي معظم جداول بيانات Excel المُعقدة على العناصر الأساسية للغة البرمجة. في الجدول أدناه، قمتُ بربط بعض أدوات ومفاهيم Excel المألوفة وربطها مباشرةً بنظيراتها في علوم الحاسوب:
| أداة Excel | مثال من Excel | المقابل البرمجي | مثال برمجي | أوجه التشابه |
|---|---|---|---|---|
| Cell reference مرجع خلية | A1 | Variable متغيّر | rate = 0.05 | كلاهما يخزّن قطعة من البيانات يمكن الرجوع إليها والتعامل معها. |
| Number format تنسيق الأرقام | Date أو Currency | Data type نوع البيانات | int, float, string | كلاهما يحدد كيفية تخزين البيانات وعرضها وطريقة تعامل الأنظمة معها حسابيًا. |
| Formula صيغة | =A1+B1 | Expression تعبير | x + y | كلاهما جزء من كود يتم تقييمه ليعطي قيمة محددة. |
| Function دالة | =XLOOKUP(…) | Function or method دالة أو طريقة | def find_user(…) | كلاهما وحدات منطقية قابلة لإعادة الاستخدام تأخذ مُدخلات وتُرجع ناتجًا. |
| IF function دالة IF | =IF(A1>10,”Yes”,”No”) | If-else statement شرط if-else | if (x > 10) {…} | كلاهما يحدد مسارًا شرطيًا: إذا كان الشرط صحيحًا افعل كذا، وإلا افعل كذا. |
| AND/OR | =AND(A1>0,A1<5) | Boolean logic منطق بولياني | (x > 0) && (x < 5) | كلاهما يجمع شروطًا متعددة للتحكم في التدفق المنطقي للعمليات. |
| Dynamic array formula صيغة المصفوفة الديناميكية | =SORT(A1:A10) | Array or list مصفوفة أو قائمة | [1, 5, 2].sort() | كلاهما يطلب من النظام تنفيذ عملية على مجموعة كاملة من البيانات دفعة واحدة. |
| Named range نطاق مُسمّى | Tax_Rate | Named variable متغيّر مُسمّى | TAX_RATE = 0.25 | كلاهما يعطي اسمًا واضحًا للبيانات لتسهيل الفهم والصيانة. |
| Errors أخطاء | #DIV/0! | Bugs or exceptions أخطاء أو استثناءات | try/except | كلاهما أخطاء أثناء التشغيل تتطلب التتبع لتحديد مصدر المشكلة. |
| Macro/VBA | Sub MyMacro() | Subroutine روتين فرعي | function calculate_report() {…} | كلاهما كتل برمجية مُخصّصة تنفذ سلسلة محددة من الإجراءات. |
لماذا هذا الاكتشاف البرمجي مهم بالنسبة لك

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

إن إدراكك لخبرتك في برمجة Excel لا يعني بالضرورة استعدادك لوظيفة مطور لغة ++C عالية المستوى في Google أو Goldman Sachs! مع ذلك، هذا ليس سببًا لتجاهل مهاراتك. بل قد يكون بمثابة إشارة إلى اتجاه جديد محتمل في المستقبل.
خصص بعض الوقت لفهم قيود Excel، حتى تعرف الأدوات التي يمكنك استخدامها لاحقًا لتوسيع مهاراتك البرمجية:
- النطاق والحجم: لم يُصمم Excel عادةً للاستخدام على مستوى المؤسسات. جداول البيانات المعقدة سرعان ما تصبح بطيئة وغير موثوقة – وهو قيد تستطيع معظم لغات البرمجة التغلب عليه.
- التحكم الأصلي في الإصدارات: على الرغم من إمكانية رؤية التعديلات وعكسها في Excel باستخدام أدوات “إظهار التغييرات” أو “سجل الإصدارات”، إلا أن البرمجة الاحترافية تستخدم Git، الذي يتتبع التغييرات، ويسمح بالتفرع، ويُمكّن المطورين من دمج الإصدارات والتراجع عنها، مما يُسهّل التدقيق بشكل كبير.
- تصحيح الأخطاء: على الرغم من أن إكسل يحتوي على أدوات تدقيق الصيغ، إلا أنه يفتقر إلى أدوات التشخيص المتطورة التي تتميز بها بيئات التطوير المتكاملة (IDEs)، مثل نقاط التوقف، والتنفيذ التدريجي، ومفتشي الذاكرة.
- الحواجز اللغوية: على الرغم من أن معرفة دوال وصيغ إكسل المعقدة مهارة أساسية تُهيئك لمهام برمجة أكثر تعمقًا، إلا أنك لا تزال بحاجة إلى تخصيص الوقت للانتقال إلى لغة برمجة جديدة.
الفرق الأكبر بين مستخدم إكسل المتمرس والمبرمج المحترف ليس كبيرًا كما تظن. لقد أتقنت المنطق بالفعل – كل ما تبقى هو تعلم بناء الجملة. قبل أن تدرك ذلك، ستجد نفسك أمام لينوس تورفالدز!
يتجاوز استخدام Excel فكرة الجداول البسيطة ليصبح أداة تعتمد على منطق يشبه البرمجة في كل خطوة. بناء المعادلات، استخدام الدوال الشرطية، إنشاء نماذج التحليل، وإدارة البيانات كلها مهارات ترتبط مباشرة بأساسيات التفكير البرمجي. إدراك هذا الارتباط يسهّل الانتقال إلى لغات البرمجة الفعلية ويمنح المستخدم ثقة أكبر بقدراته التقنية. ما يُعتقد أنه مجرد استخدام للأدوات المكتبية هو في الحقيقة ممارسة عملية لمفاهيم البرمجة بطريقة سلسة وواضحة.
