اذهب إلى المحتوى

البحث في الموقع

المحتوى عن 'مايكروسوفت إكسل'.

  • ابحث بالكلمات المفتاحية

    أضف وسومًا وافصل بينها بفواصل ","
  • ابحث باسم الكاتب

نوع المحتوى


التصنيفات

  • الإدارة والقيادة
  • التخطيط وسير العمل
  • التمويل
  • فريق العمل
  • دراسة حالات
  • التعامل مع العملاء
  • التعهيد الخارجي
  • السلوك التنظيمي في المؤسسات
  • عالم الأعمال
  • التجارة والتجارة الإلكترونية
  • نصائح وإرشادات
  • مقالات ريادة أعمال عامة

التصنيفات

  • مقالات برمجة عامة
  • مقالات برمجة متقدمة
  • PHP
    • Laravel
    • ووردبريس
  • جافاسكربت
    • لغة TypeScript
    • Node.js
    • React
    • Vue.js
    • Angular
    • jQuery
    • Cordova
  • HTML
  • CSS
    • Sass
    • إطار عمل Bootstrap
  • SQL
  • لغة C#‎
    • ‎.NET
    • منصة Xamarin
  • لغة C++‎
  • لغة C
  • بايثون
    • Flask
    • Django
  • لغة روبي
    • إطار العمل Ruby on Rails
  • لغة Go
  • لغة جافا
  • لغة Kotlin
  • لغة Rust
  • برمجة أندرويد
  • لغة R
  • الذكاء الاصطناعي
  • صناعة الألعاب
  • سير العمل
    • Git
  • الأنظمة والأنظمة المدمجة

التصنيفات

  • تصميم تجربة المستخدم UX
  • تصميم واجهة المستخدم UI
  • الرسوميات
    • إنكسكيب
    • أدوبي إليستريتور
  • التصميم الجرافيكي
    • أدوبي فوتوشوب
    • أدوبي إن ديزاين
    • جيمب GIMP
    • كريتا Krita
  • التصميم ثلاثي الأبعاد
    • 3Ds Max
    • Blender
  • نصائح وإرشادات
  • مقالات تصميم عامة

التصنيفات

  • مقالات DevOps عامة
  • خوادم
    • الويب HTTP
    • البريد الإلكتروني
    • قواعد البيانات
    • DNS
    • Samba
  • الحوسبة السحابية
    • Docker
  • إدارة الإعدادات والنشر
    • Chef
    • Puppet
    • Ansible
  • لينكس
    • ريدهات (Red Hat)
  • خواديم ويندوز
  • FreeBSD
  • حماية
    • الجدران النارية
    • VPN
    • SSH
  • شبكات
    • سيسكو (Cisco)

التصنيفات

  • التسويق بالأداء
    • أدوات تحليل الزوار
  • تهيئة محركات البحث SEO
  • الشبكات الاجتماعية
  • التسويق بالبريد الالكتروني
  • التسويق الضمني
  • استسراع النمو
  • المبيعات
  • تجارب ونصائح
  • مبادئ علم التسويق

التصنيفات

  • مقالات عمل حر عامة
  • إدارة مالية
  • الإنتاجية
  • تجارب
  • مشاريع جانبية
  • التعامل مع العملاء
  • الحفاظ على الصحة
  • التسويق الذاتي
  • العمل الحر المهني
    • العمل بالترجمة
    • العمل كمساعد افتراضي
    • العمل بكتابة المحتوى

التصنيفات

  • الإنتاجية وسير العمل
    • مايكروسوفت أوفيس
    • ليبر أوفيس
    • جوجل درايف
    • شيربوينت
    • Evernote
    • Trello
  • تطبيقات الويب
    • ووردبريس
    • ماجنتو
    • بريستاشوب
    • أوبن كارت
    • دروبال
  • الترجمة بمساعدة الحاسوب
    • omegaT
    • memoQ
    • Trados
    • Memsource
  • برامج تخطيط موارد المؤسسات ERP
    • تطبيقات أودو odoo
  • أنظمة تشغيل الحواسيب والهواتف
    • ويندوز
    • لينكس
  • مقالات عامة

التصنيفات

  • آخر التحديثات

أسئلة وأجوبة

  • الأقسام
    • أسئلة البرمجة
    • أسئلة ريادة الأعمال
    • أسئلة العمل الحر
    • أسئلة التسويق والمبيعات
    • أسئلة التصميم
    • أسئلة DevOps
    • أسئلة البرامج والتطبيقات

التصنيفات

  • كتب ريادة الأعمال
  • كتب العمل الحر
  • كتب تسويق ومبيعات
  • كتب برمجة
  • كتب تصميم
  • كتب DevOps

ابحث في

ابحث عن


تاريخ الإنشاء

  • بداية

    نهاية


آخر تحديث

  • بداية

    نهاية


رشح النتائج حسب

تاريخ الانضمام

  • بداية

    نهاية


المجموعة


النبذة الشخصية

تم العثور على 13 نتائج

  1. تُعَد صناعة واجهات الإدخال من أقوى المزايا في إكسل التي تجعلنا قادرين على إدخال بياناتنا من خلال عناصر وأدوات إدخال وقوائم منسدلة، وتنقلها مباشرةً إلى صفحات الإكسل، أي كأننا نُحول الإكسل لبرنامج قواعد بيانات متكامل. تصميم واجهة تفاعلية مع المستخدم User Form يمكننا تصميم واجهة تفاعلية عن طريق محرر الفيجوال بيسك في الإكسل، حيث يمكننا تصميم واجهة إدخال واستعراض بياناتنا من خلاله، وذلك بأن نفتح محرر الشيفرات، ومن القائمة Insert نختار الأمر UserForm، فتظهر لنا النافذة التالية: نلاحظ وجود مجموعة من الأدوات ضمن صندوق الأدوات ToolBox تحتوي على الأزرار وعناصر الإدخال والتحكم التي يمكننا إضافتها إلى مساحة العمل الفارغة بجانبه، والتي يمكننا التحكم بأبعادها من حيث الطول والعرض، وذلك بالسحب من الأطراف. حيث يكون لدينا في الطرف الأيسر للقائمة Properties نافذة الخصائص التي نستطيع من خلالها تعيين كل خصائص الواجهة أو خصائص عناصر الإدخال فيها، وهي قائمة بغاية الأهمية لأننا من خلالها سنُعيّن جميع خيارات العناصر. بعض الأدوات في صندوق ToolBox توجد العديد من الأدوات التي يمكننا التعامل معها لصناعة الواجهات، وتختلف هذه الأدوات بين إصدارات مايكروسوفت أوفيس اختلافًا بسيطًا، ومن أهم هذه الأدوات وأكثرها استخدامًا الأدوات التالية: CheckBox: يتيح هذا العنصر للمستخدم تحديد خيار أو أكثر. ComboBox: يتيح هذا العنصر للمستخدم تحديد عنصر من القائمة المنسدلة. CommandButton: يسمح عنصر التحكم هذا للمستخدم بتنفيذ إجراء معين، حيث يُشغِّل إجراءً فرعيًا منفصلًا. Label: يتيح هذا العنصر عرض النص للمستخدم، ويُستخدم عادةً لعرض نص وصفي بجانب العناصر. ListBox: يسمح عنصر التحكم هذا للمستخدم بالاختيار من قائمة الخيارات الممكنة. +OptionButton: يسمح عنصر التحكم هذا للمستخدم بالاختيار من قائمة الخيارات الممكنة اختيارًا واحدًا فقط. Ref Edi: يسمح عنصر التحكم هذا للمستخدم بتحديد نطاق من الخلايا. TextBox: يتيح هذا العنصر إمكانية عرض النص والسماح للمستخدم بإدخال المعلومات. Frame: يتيح هذا العنصر تجميع العناصر الأخرى معًا. Calendar: يتيح هذا العنصر تضمين تقويم دائم في ورقة عمل. Image: يتيح هذا العنصر إمكانية إضافة رسم أو صورة إلى واجهة المستخدم. SpinButton: يتيح هذا العنصر للمستخدم تحديد قيمة بالنقر فوق زرين، إما لزيادة القيمة أو تقليلها. مثال نريد تصميم واجهة إدخال تحتوي على البيانات الخاصة بموظفي إحدى المنشآت، ونريد مثلًا البيانات التالية: الاسم. الجنس. الوضع الوظيفي. رقم الهاتف. تقييم العمل. الراتب. نرسم عناصر الإدخال ضمن مساحة العمل المخصصة، ويلزمنا في البداية عنصر من النوع TextBox لإدخال الاسم، وعنصر من النوع Label، ونحدد أبعاد كل منهما، حيث يمكننا التحكم بأبعادهما من طول وعرض حسب ما نراه مناسبًا. يمكن تحرير النص الخاص بـ Label عن طريق النقر عليه مرةً واحدةً لتحريره، ثم نحدد النص ونستبدله بما نريد، أو عن طريق القائمة Properties عن طريق الخاصية Caption التي تُعبر عن الاسم الظاهر للمستخدم، ونُغيّر الاسم الذي تحتويه. الآن نرسم العنصر الخاص بالجنس، وبما أن الإجابة تكون أحد اختيارين، فنختار الأداة OptionButton، ونضع لها العنوان بجانبها. ثم نرسم العنصر الخاص بالوضع الوظيفي هنا، ويمكن أن تكون العديد من الخيارات، والإجابة هي أحد هذه الخيارات، لذا الأداة المناسبة هي ComboBox. العنصران رقم الهاتف والراتب عبارة عن TextBox، والعنصر تقييم العمل عبارة عن ComboBox، لذا ننسخ العناصر السابقة مع تغيير عناوينها Label. نُعدل من ترتيب العناصر قليلًا، ونضع كل 3 عناصر في عمود، ونلاحظ أن الأبعاد بالنسبة للعناصر غير متساوية بالكامل، لذا يجب تعديلها لتظهر بنفس الأبعاد وبمظهر أفضل، ولإجراء ذلك نحدد العناصر ذات الشكل المتقارب TextBox وComboBox، ومن القائمة Format الخاصة بتنسيق العناصر نختار الأمر Make Same Size، ومن هنا نجد الخيارات التالية: Width: لجعل العناصر بنفس العرض. Height: لجعل العناصر بنفس الطول. Both: لجعل العناصر بنفس العرض والطول. نختار منها الأمر Both. ثم نُنسق العناصر من خلال محاذاة العناصر في العمود الواحد والسطر الواحد، وذلك من القائمة نفسها Format، حيث نختار الأمر Align، فنحدد العناصر في العمود الواحد ونجعل المحاذاة في المنتصف من الأمر Center، ونحدد عناصر كل صف ونجعل المحاذاة سفليةً من الأمر Bottom، ثم نساوي بين تباعد العناصر، وذلك بتحديد عناصر العمود الواحد، ومن نفس القائمة نختار الأمر vertical Spacing الذي يأخذ القيم التالية: Make Equal: لجعل كل المسافات الأفقية والعمودية بين العناصر بنفس الحجم. Increase: لزيادة المسافة بين العناصر درجةً واحدةً من كل الجوانب. Decrease: لتقليل المسافة بين العناصر درجةً واحدةً من كل الجوانب. Remove: لإزالة المسافة بين العناصر. نختار منها الأمر Make Equal. نُسمي الآن العناصر بأسماء برمجية لاستدعائها عند كتابة الإجراءات واستخدامها فيها، ولإجراء ذلك نحدد العنصر، ومن القائمة Properties عند الخاصية المسماة Name نضع اسمًا مُعبرًا عن العنصر (الاسم اختياري، ولكن يجب ألا يحتوي على فراغات). نسمي العناصر بالأسماء التالية: الاسم = txtName. ذكر = OptMale. أنثى = OptFemale . الوضع الوظيفي = JopStatus. رقم الهاتف = PhoneNumber. تقييم العمل = Rate. الراتب = Salary. إلى الآن لا تحتوي قوائمنا المنسدلة على أية قيم، لذا نحتاج إلى تخصيص قيم مناسبة لها، وذلك باستيراد مجال من الخلايا من صفحة إكسل في ملف العمل، حيث ننشئ ورقة عمل جديدةً، ونضع فيها القيم المحتملة لجميع القوائم التي نعمل عليها ونستوردها لواجهة الإدخال عن طريق الخاصية RowSource في القائمة Properties، ونضع فيها المجال بذكر اسم الصفحة بعده إشارة تعجب (!) بعدها المجال الخاص بهذه القائمة المنسدلة. الآن أصبحت قوائمنا جاهزة، ولكن عند تشغيل الواجهة هنا نلاحظ أنه يمكننا تعبئة عنصر القائمة المنسدلة يدويًا، وذلك الأمر خاطئ، لذا يجب أن نقيد واجهة الإدخال بالمجال الذي استوردناه فقط، وذلك عن طريق الخاصية MatchRequired من القائمة Properties، حيث إن القيمة الافتراضية لها False التي تُمكن المستخدم من إدخال بيانات غير موجودة في القائمة، لذا نضع القيمة True بدلًا منها، وذلك لتقييد إدخالات المستخدم بمحتويات القائمة فقط. نجد في الصورة السابقة أننا نستطيع إدخال قيم من خارج القائمة المنسدلة ضمن العنصر الخاص بالوضع الوظيفي، لأن الإدخال غير مقيد، ولكن لم نستطع إدخال قيمة من خارجها في عنصر التقييم، لأن الإدخالات فيها مقيدة، وأظهر لنا المحرر رسالة خطأ تُفيد بأن القيمة المُدخلة غير مقبولة. لنُصمم الآن عنصر زر يعمل على ترحيل البيانات الموجودة في الوجهة إلى صفحة إكسل والإضافة تراكميًا، أي كلما أضفنا بيانات جديدة وضغطنا زر الإدخال تُرحل البيانات إلى السطر الفارغ أسفل البيانات، ونضع اسمًا برمجيًا له BtnExport. الآن نغير من الاسم البرمجي للواجهة تغييرًا كاملًا، ونضع لها الاسم UserForm، ونغير من الظاهر للمستخدم عن طريق الخاصية Caption. أصبحت واجهة الإدخال جاهزةً للبرمجة وربطها مع خلايا الصفحة التي سنُرحل إليها البيانات، وهو ما سنتعلمه لاحقًا. الخصائص العامة للعناصر في القائمة Properties تحتوي القائمة Properties على خصائص معينة لكل عنصر، حيث تُستخدم لتعيين الميزات أو تحريرها وفقًا لاحتياجات ومتطلبات المستخدم، وللتعديل نضغط على الخاصية ونُعدلها في العمود الأيمن، ومن أهم هذه الخصائص: Name: الاسم البرمجي للعنصر الذي تتعرف عليه الإجراءات عند كتابة الشيفرات البرمجية، ويتكون من 40 حرفًا بحد أقصى. Caption: تُستخدم هذه الخاصية لتحديد الاسم الظاهري للعنصر الذي يظهر في تصميم الواجهة. Height, Width: تُستخدم هذه الخاصية لتعيين ارتفاع وعرض نموذج المستخدم والعناصر الخاصة به، ويمكنك تخصيص الحجم عن طريق إدخاله يدويًا في خاصية الارتفاع والعرض في نافذة الخصائص، وتعيين القيم بالنقاط، ولا يمكن أن تُقبَل القيم السالبة. Value: يكثر استخدام هذه الخاصية مع العنصرين CheckBox وOptionButton، حيث تجعل العنصر مُفعلًا تلقائيًا، أي أنه يكون قيمةً افتراضيةً ويأخذ القيمة 1 أو القيمة True، بمعنى أن العنصر مُفعل افتراضيًا، والقيمة 0 أو القيمة False التي تعني أنه غير مفعل؛ أما في العنصرين TextBox وComboBox، فيمكننا وضع قيمة نصية أو رقمية افتراضية، ولكن يجب الانتباه أن تكون القيمة ضمن خيارات القائمة المنسدلة ومطابقةً للقيمة في صفحة الإكسل تمامًا. AutoSize: تستخدم هذه الخاصية لتحديد ما إذا كان حجم العنصر الذي يعرض المحتوى بالكامل تلقائيًا أم لا، وإذا عُيِّنت هذه الخاصية على القيمة TRUE فسيعمل تلقائيًا على تغيير حجم عنصر التحكم المحدد وفقًا لحجم المحتوى؛ أما بالنسبة للقيمة FALSE (الخيار الافتراضي)، فسيحتفظ بحجم عنصر التحكم كما هو أثناء التصميم. BackColor: تُستخدم هذه الخاصية لتعيين لون الخلفية للعناصر، ولتنفيذ خاصية BackColor يجب التأكد من ضبط نمط الخلفية لخاصية BackStyle على خلفية معتمة. BorderColor: تُستخدم هذه الخاصية لتعيين لون الحدود لـ UserForm والعناصر الخاصة به، ولتطبيق خاصية لون الحدود يجب تعيين الخاصية BorderStyle إلى قيمة غير صفرية. ControlTipText: تُستخدم هذه الخاصية لعرض النص عندما يشير المستخدم ويمرر الماوس فوق العنصر، وهذه الخاصية مفيدة في تثقيف المستخدمين من خلال تقديم نصائح أو تفسيرات حول استخدام العنصر. Font: تحدد هذه الخاصية نوع الخط المستخدم في نموذج المستخدم أو في العناصر، ويمكنك التلاعب بالخط بسهولة عن طريق تحديد اسم الخط الخاص به ونمطه وحجمه. MousePointer: تُستخدم لتحديد الطريقة التي يُعرَض مؤشر الماوس فيها عندما يتحرك فوق العنصر، حيث توجد العديد من الأشكال التي يمكن اختيارها. Visible: تحدد هذه الخاصية إمكانية الرؤية للتحكم في النموذج، فإذا عُيِّن على القيمة المنطقية TRUE (القيمة الافتراضية)، فسيكون العنصر مرئيًا آخر، وإلا بالنسبة للقيمة False فسيختفي العنصر، ويمكن استخدام هذه الخاصية لعرض عنصر مخفي فقط في حالة استيفاء أي شرط، وإلا سيظل العنصر مخفيًا. خاتمة من خلال ما طرحناه نكون استوفينا أهم آليات تصميم الواجهات التي تُعَد من الطرق التي تجعل التعامل مع عمليات إدخال البيانات أكثر متعةً ودقةً وأقل تشتيتًا للمستخدم، حيث سيكون كل تركيزه فقط في بعض الخانات التي يتعامل معها من خلال هذه الواجهة، ولا يتشتت نظره في الكم الهائل من البيانات كما في طريقة الإدخال التقليدية. اقرأ أيضًا المقال السابق: صناعة الدوال الخاصة والتعامل مع الأحداث في مايكروسوفت إكسل VBA استخدام الشيفرات لتنفيذ العمليات الأساسية في مايكروسوفت إكسل VBA استخدام أدوات مايكروسوفت إكسل لتنسيق الخلايا عن طريق الشيفرات VBA الحلقات التكرارية في مايكروسوفت إكسل باستخدام VBA العمليات الشرطية في مايكروسوفت إكسل باستخدام VBA مدخل إلى البرمجة باستخدام VBA في مايكروسوفت إكسل
  2. تعلمنا في الدرس السابق حول تصميم واجهات إدخال البيانات باستخدام مايكروسوفت إكسل VBA كيفية تصميم واجهة إدخال البيانات وتوزيع الكائنات، وتنسيقها وتجهيزها لعملية البرمجة، وكذا ربطها بخلايا الصفحة التي ستُرحَّل إليها البيانات عند الضغط على زر الإدخال. وفي هذا المقال سنتعرف على كيفية برمجة هذه الواجهت باستخدام مايكروسوفت إكسل VBA. كتابة الإجراءات الخاصة بالكائنات لتحرير الشيفرة البرمجية الخاصة بالكائن نضغط على الكائن نقرةً مزدوجةً، لتظهر لدينا النافذة التي نكتب فيها الشيفرات والإجراءات مثل العادة. مثال لفهم آلية البرمجة بالتفصيل سنُبرمج الواجهة التي صممناها مسبقًا، ولكن في البداية يجب تجهيز صفحة استقبال البيانات في ملف الإكسل، فتصبح واجهة الإدخال وصفحة الإكسل كالتالي: والآن سنحرر واجهة كتابة الشيفرات الخاصة بزر الإدخال، ونبدأ بكتابة التعليمات الخاصة بترحيل البيانات إلى صفحة الإكسل، وهنا نلاحظ أن الإجراء الموجود فيها هو إجراء يُنفذ عند النقر على الزر. والآن نُقسّم الشيفرة إلى أجزاء صغيرة ليسهل علينا التفكير في آلية إنشائها، والعمل الفعلي للواجهة هو جمع البيانات التي نُدخلها عبر كائناتها وترحيلها إلى صفحة الإكسل، ووضعها في السطر الأخير، لذا يجب علينا في البداية معرفة كيف يمكننا معرفة رقم السطر الأخير غير الفارغ، ثم نُرحل البيانات للسطر الذي يليه، ولمعرفة رقمه نَعُدّ الأسطر غير الفارغة ضمن الصفحة كالتالي: نُعرّف متغير من النوع integer، أو من النوع long، ونُخزن فيه عدد الأسطر غير الفارغة كما يلي: Private Sub btnAdd_Click() Dim LastRow As Long End Sub نكتب الدالة المسؤولة عن عدّ الخلايا غير الفارغة، وهي الدالة CountA، ولكن لاستدعائها ضمن الإجراء نكتبها بالشكل التالي: LastRow = WorksheetFunction.CountA(Sheets("الموظفون").Range("A:A")) كما نلاحظ تُستدعى الدوال الأساسية في إكسل عن طريق الفيجوال بيسك بأن نضع قبلها التعليمة WorksheetFunction، لكن هنا عند تحديد المجال يجب أن نُعرّف مساره كاملًا ابتداءً من اسم الصفحة كما في التعليمة السابقة، حيث نضع: Sheets("الموظفون").Range("A:A") أي أن المحرر يستدعي الدالة CountA، ويحدد لها المجال الذي ستحصي الخلايا منه، ويُخزن النتيجة في المتغير LastRow. الآن نربط كل كائن في الواجهة مع الخلية المقابلة له في صفحة الإكسل، وذلك كالتالي: Sheets("الموظفون").Cells(LastRow + 1, 1).Value = UserForm.txtName.Value هنا عرّفّنا المسار الذي سنُسند إليه قيمة الكائن، حيث إن التعليمة Cells(value1,value2) لديها وسيطتان، الأولى تُعبر عن رقم السطر والثانية تُعبّر عن رقم العمود، ولدينا هنا رقم السطر هو عبارة عن متغير LastRow الذي يَعُد الخلايا غير الفارغة ونضيف له القيمة 1 لنحصل على موقع أول سطر فارغ بعد البيانات؛ أما UserForm.Name.Value، فتُعبر عن القيمة المُدخلة عن طريق الواجهة. يجب أن لا ننسى أن نتعامل هنا عن طريق الاسم البرمجي، وبنفس الطريقة نُسند باقي الكائنات إلّا الكائنات من النوع OptionButton، وهنا لدينا عدّة قيم للكائن، حيث يجب أن نفحص الكائن هل هو نشط أم لا، وذلك حتى نعوّض قيمة الكائن النشط منها في الخلية الخاصة به، وتكون التعليمات كالتالي: If UserForm.OptMale = True Then Sheets("الموظفون").Cells(LastRow + 1, 3).Value = "Male" Else Sheets("الموظفون").Cells(LastRow + 1, 3).Value = "Female" End If أما التعليمات الخاصة ببقية الكائنات فهي كالتالي: Sheets("الموظفون").Cells(LastRow + 1, 2).Value = UserForm.JobStatus.Value Sheets("الموظفون").Cells(LastRow + 1, 5).Value = UserForm.PhoneNumber.Value Sheets("الموظفون").Cells(LastRow + 1, 6).Value = UserForm.Rate.Value Sheets("الموظفون").Cells(LastRow + 1, 4).Value = UserForm.Salary.Value نلاحظ أن البيانات تبقى موجودةً في الكائنات بعد الإرسال، لذا لا بد من كتابة تعليمات تعمل على تفريغ الكائنات بعد ترحيلها، ولإجراء ذلك نُسند قِيَمًا فارغةً للكائنات بعد عمليات الترحيل، وتكون التعليمات كالتالي: UserForm.txtName.Value = "" UserForm.OptMale = False UserForm.OptFemale = False UserForm.JobStatus.Value = "" UserForm.PhoneNumber.Value = "" UserForm.Rate.Value = "" UserForm.Salary.Value = "" نلاحظ أن العمليات تعمل على أكمل وجه والواجهة تعمل بطريقة جيدة، ولكن لو ضغطنا على زر الإدخال بدون ملء الكائنات بالبيانات، فسنلاحظ أنه سيملأ صفحة الإكسل بسطرٍ فارغ، وذلك يُعَد خطأً برمجيًا كبيرًا. نكتب شروط إدخال للتغلب على الحالة السابقة، لذا نفحص ببساطة جميع الكائنات قبل ترحيل البيانات، فإذا وُجد كائن فارغ فسنوجه المستخدم إلى تعبئته وعدم تركه فارغًا عن طريق رسالة نصية، والتعليمات الخاصة بهذا الجزء من الإجراء كالتالي: If UserForm.txtName.Value = "" Or (UserForm.OptMale = False And UserForm.OptFemale = False) Or_ UserForm.JobStatus.Value = "" Or UserForm.PhoneNumber.Value = "" Or_ UserForm.JobRate.Value = "" Or UserForm.Salary.Value = "" Then_ MsgBox "يُرجى إتمام البيانات" يصبح الإجراء كاملًا بالشكل التالي: Private Sub btnAdd_Click() Dim LastRow As Long LastRow = WorksheetFunction.CountA(Sheets("الموظفين").Range("A:A")) If UserForm.txtName.Value = "" Or UserForm.JobStatus.Value = "" Or (UserForm.OptMale = False And UserForm.OptFemale = False) Or UserForm.PhoneNumber.Value = "" Or UserForm.Rate.Value = "" Or UserForm.Salary.Value = "" Then MsgBox "يُرجى إتمام البيانات" Else Sheets("الموظفون").Cells(LastRow + 1, 1).Value = UserForm.txtName.Value Sheets("الموظفون").Cells(LastRow + 1, 2).Value = UserForm.JobStatus.Value If UserForm.OptMale = True Then Sheets("الموظفون").Cells(LastRow + 1, 3).Value = "Male" Else Sheets("الموظفون").Cells(LastRow + 1, 3).Value = "Female" End If Sheets("الموظفون").Cells(LastRow + 1, 5).Value = UserForm.PhoneNumber.Value Sheets("الموظفون").Cells(LastRow + 1, 6).Value = UserForm.Rate.Value Sheets("الموظفون").Cells(LastRow + 1, 4).Value = UserForm.Salary.Value UserForm.txtName.Value = "" UserForm.OptMale = False UserForm.OptFemale = False UserForm.JobStatus.Value = "" UserForm.PhoneNumber.Value = "" UserForm.Rate.Value = "" UserForm.Salary.Value = "" End If End Sub لتطوير العمل أكثر يمكننا إضافة زر جديد على الواجهة السابقة، وعمله هو حذف البيانات التي أدخلناها للكائنات ولم نُرحلها إلى صفحة الإكسل بعد (أي لم نضغط على زر الإدخال)، ويؤدي فقط الجزء الأخير من الإجراء السابق الخاص بتفريغ الكائنات بعد الإرسال، لذا نُضيف زرًا جديدًا نُسميه حذف البيانات، ونضع له الاسم البرمجي BtnDelete، ويكون الإجراء الخاص به كالتالي: Private Sub BtnDelete_Click() UserForm.txtName.Value = "" UserForm.OptMale = False UserForm.OptFemale = False UserForm.JobStatus.Value = "" UserForm.PhoneNumber.Value = "" UserForm.Rate.Value = "" UserForm.Salary.Value = "" End Sub تعامل واجهات الإدخال مع الأحداث يمكننا توظيف الأحداث في التعامل مع واجهاتنا لتطوير عمل البرنامج، حيث يمكن التعامل مع الواجهة في الحدث كما تُعامل الدوال والتعليمات في الأحداث كما تعلمنا في درس صناعة الدوال الخاصة والتعامل مع الأحداث في مايكروسوفت إكسل VBA، ولا بد من تطبيق ذلك عمليًا لتوضيح الفكرة أكثر. مثال باستخدام الواجهة السابقة نريد تنفيذ إجراء يعمل على إظهار نافذة إدخال البيانات فقط وإخفاء برنامج الإكسل عند فتح الملف، ولإنجاز ذلك نفتح المحرر الخاص بملف العمل، ونختار من أحداثه الحدث الذي يُنفِّذ الأوامر عند فتح الملف، ونضع فيه التعليمات التالية: Private Sub Workbook_Open() Application.Visible = False UserForm.Show End Sub حيث يُخفي الأمر Application.Visible = False ملف الإكسل، ويُظهر الأمر UserForm.Show واجهة الإدخال عند فتح الملف، ويُشغلها. نلاحظ أن الإجراء السابق يؤدي المطلوب، ولكن لدينا هنا خلل بسيط، وهو عند إغلاق واجهة الإدخال، حيث يبقى برنامج الإكسل مفتوحًا ويعمل في الخلفية، ولكنه مخفي. لذا يجب أن نُجهّز حدثًا جديدًا يعمل على حفظ البيانات وإغلاق ملف الإكسل عند إغلاق واجهة إدخال البيانات السابقة، أي أن الحدث خاص بواجهة الإدخال، لذا نكتب التالي: Private Sub UserForm_Terminate() ActiveWorkbook.Save Application.Quit End Sub حيث إن: UserForm_Terminate: هو حدث يُنفّذ عند إغلاق الواجهة. ActiveWorkbook.Save: هو أمر يحفظ ملفات العمل النشطة، وبما أن ملف العمل مرتبط مُسبقًا بالواجهة، فإن الأمر سيُنفذ عليه حتى لو وجدت العديد من ملفات العمل مفتوحةً، لأنه بمجرد النقر ضمن الواجهة يصبح الملف المرتبط بها هو الملف النشط. Application.Quit: أمر إغلاق ملف العمل. لكن يجب الانتباه أنه بمجرد تشغيل هذا الإجراء، فلن نستطيع عرض البيانات من صفحة الإكسل، لذا يجب إضافة إجراء يعمل على فتح البيانات في صفحة الإكسل، ويُنفذ عن طريق زر في الواجهة نفسها. نضيف زرًا جديدًا يُنفذ الإجراء السابق، ونسميه عرض البيانات، ونسميه اسمًا برمجيًا مثل BtnShowData، ونكتب الإجراء المناسب لهذه العملية كالتالي: Private Sub BtnShowData_Click() Application.Visible = True Sheets("الموظفون").Activate UserForm.Hide End Sub خاتمة إن تصميم وبرمجة الواجهات من أجمل المزايا في برمجة الإكسل، حيث يزيد العمل عن طريق الواجهات من دقة البيانات المُدخلة، كما يقلل التعامل مع البيانات -عن طريق واجهات تفاعلية- من عمليات التشتت، وكلما تعمقنا أكثر في تطوير برمجياتنا على إكسل، زاد إنتاجنا وكفاءتنا في تقديم البيانات الدقيقة بالسرعة المطلوبة، لأن برمجة الواجهات تضيف شروطًا كثيرةً على العمل، مما يجعل المستخدم أقل عرضةً للوقوع في أخطاء إدخال البيانات بالطريقة التقليدية. اقرأ أيضًا استخدام أدوات مايكروسوفت إكسل لتنسيق الخلايا عن طريق الشيفرات VBA استخدام الشيفرات لتنفيذ العمليات الأساسية في مايكروسوفت إكسل VBA التفاعل مع المستخدم في مايكروسوفت إكسل باستخدام VBA الحلقات التكرارية في مايكروسوفت إكسل باستخدام VBA العمليات الشرطية في مايكروسوفت إكسل باستخدام VBA مدخل إلى البرمجة باستخدام VBA في مايكروسوفت إكسل
  3. لا شك أننا نتعامل مع الكثير من الدوال في برنامج مايكروسوفت إكسل، فهنالك المئات من الدوال التي تُبسّط علينا العمل دائمًا، ولكن توجد بعض العمليات التي تحتاج إلى بعض الاحتيال عليها للوصول إلى حل المسائل التي تعترضنا، وربما نستخدم خلالها العديد من الدوال المتداخلة مع بعضها البعض لحل المسألة، وباستخدام برمجة المايكروسوفت إكسل عن طريق الفيجوال بيسك يمكننا صناعة دوال خاصة بعملنا، والتي تخدم الوصول لحل المشاكل التي نتعامل معها دومًا بأقصر الطرق. تعرفنا سابقًا على آلية كتابة الإجراءات باستخدام فيجوال بيسك في درس مدخل إلى البرمجة باستخدام VBA في مايكروسوفت إكسل، ووجدنا أن الإجراء من النوع sub-routine يُنفذ أمرًا أو مجموعةً معينةً من الأوامر، وأن الإجراء من النوع Function يُضيف دوال على برنامج مايكروسوفت إكسل للاستخدام الاعتيادي كما لو أنها من ضمن دوال البرنامج الأساسية. صناعة الدوال توجد طريقتان لكتابة الإجراء هما: إجراء مع وسطاء (معطيات) وتكون الشيفرة كما يلي: Function name(arguments) as type Code End Function حيث إن: name: اسم للدالة التي نصنعها، ويُفضل أن يكون الاسم مُعبرًا عن عمل الدالة. arguments: الوسطاء التي ستعمل الدالة مع محتوياتها. type: نوع المُخرَج للدالة التي نصنعها. Code: مجموعة الشيفرات التي ستُنفذها الدالة. مثال لدينا البيانات التالية، ونريد صناعة دالة خاصة تعمل على دمج الاسم الأول مع الأخير للحصول على الاسم الكامل. لدينا وسيطان هنا، هما: الاسم الأول والاسم الأخير من النوع النصي، لذا نكتب الإجراء بالشكل التالي: Function FullName(FirstName As String, LastName As String) As String FullName = FirstName & " " & LastName End Function عند العودة إلى برنامج مايكروسوفت إكسل سنجد أن الدالة أُضيفت إلى الدوال الأساسية فيه، وتعمل مثل باقي الدوال الاعتيادية. مثال لدينا البيانات التالية، ونريد صناعة دالة خاصة تحسب الراتب بعد الزيادة، وذلك وفقًا لتقييم كل موظف. حيث يتقاضى الموظف زيادةً قدرها 0.2 عندما يكون تقييمه أكثر من 7، وزيادةً قدرها 0.1 عندما يكون تقييمه أكثر من 5 وأقل من 7، وزيادةً أخرى قدرها 0.08 عندما يكون أكثر من 1، وزيادةً قدرها 0.04 إذا لم نُسند خانة التقييم للدالة، وعليه يكون الإجراء كالتالي: Function NewSalary(Salary As Currency, Optional Rate As Integer) As Currency If Rate = 0 Then NewSalary = Salary + (Salary * 0.04) ElseIf Rate >= 7 Then NewSalary = Salary + (Salary * 0.2) ElseIf Rate >= 5 Then NewSalary = Salary + (Salary * 0.1) ElseIf Rate >= 1 Then NewSalary = Salary + (Salary * 0.08) End If End Function بتنفيذ الدالة على البيانات السابقة نجد التالي: إجراء بدون وسطاء (معطيات) وتكتب الشيفرة كما يلي: Function name() as type Code End Function حيث إن: name: اسم للدالة التي نصنعها، ويُفضل أن يكون الاسم مُعبرًا عن عمل الدالة. type: نوع المُخرَج للدالة التي نصنعها. Code: مجموعة الشيفرات التي ستُنفذها الدالة. مثال لنَعُد إلى المثال السابق، حيث نريد إضافة عمود يحتوي أرقامًا تعريفيةً عشوائيةً للموظف، لذلك نكتب الإجراء التالي: Function RandCode() As Long RandCode = Rnd() * 10000 End Function عند تنفيذ الدالة على البيانات السابقة فسنحصل على النتيجة التالية: التعامل مع الأحداث تعلمنا في المقالات السابقة كيفية كتابة إجراءات لتنفيذ مجموعة من الأوامر، وذلك بطريقتين: الأولى عندما نطلب منه تنفيذ الإجراء يدويًا، والثانية عن طريق إضافة أزرار تُنفذ الإجراء عند الضغط عليها، لكن في بعض الأحيان نحتاج أن تُنفَّذ هذه الإجراءات آليًا عند وقوع حدث معين، مثل فتح ملف، أو ظهور رسالة ترحيب عند فتح ملف إكسل، أو عند الطباعة، أو عند تعبئة خلية، وهذه الإجراءات تسمى أحداثًا، وهي موجودة في كل لغات البرمجة، ونستطيع برمجة برنامج الإكسل لتنفيذها عند وقوع الحدث. الصيغة العامة لكتابة الأحداث Sub Event_Name (variables) Our code End sub نجد أن الصيغة العامة للحدث هي نفسها للإجراء الروتيني، ولكن يجب تسميتها بأسماء محددة تدل على حدث معين، أي أن الاسم هنا ليس اختياريًا، بل يكون مُعرّفًا عن طريق لغة البرمجة، وتوجد بعض القوانين لكتابة الأحداث وهي: تُكتب الأحداث في محرر الفيجوال بيسك ضمن الأوراق أو ضمن الملف، وليس ضمن model؛ لأن الحدث هو خاص بورقة العمل أو الملف، وبالنقر مرتين على اسم الصفحة أو اسم الملف يفتح المحرر الخاص بالصفحة أو الملف. الحدث خاص، فلا يمكن جعله ضمن المحرر عامًا، ولتنفيذ ذلك توجد قائمة منسدلة تعمل على تبديل الإجراء من عام إلى إجراء خاص بالصفحة أو الملف. اسم الحدث هو اسم معين ليس اختياريًا، أي أن محرر الشيفرات هو من يزودنا به ولا يمكن إنشاؤه، ونُحدد الحدث الذي نريده من القائمة المنسدلة في الزاوية اليمنى من واجهة المحرر. سنتعرف على بعض الأمثلة التي تشرح آلية عمل الأحداث. مثال 1 نريد إنشاء حدث يُظهر رسالة ترحيب عند فتح صفحة معينة، لذا فأول ما نفعله البحث عن الحدث الذي يُنفذ عند فتح الصفحة، وهو مُعرّف بالاسم SheetActivate، وهذا الحدث يعمل على مستوى الملف، ويكون الإجراء كالتالي: Private Sub Workbook_SheetActivate(ByVal Sh As Object) If Sh.Name = "Sheet2" Then MsgBox "hello" End If End Sub حيث إن المتغير sh هو متغير مُعرف في الحدث، يُعبر عن الصفحات كمتغيرات. مثال 2 نريد إظهار نفس الرسالة السابقة عند فتح ملف الإكسل. Workbook_Open: هو الحدث الذي يُنفّذ عند فتح ملف الإكسل، ولذلك نكتب الإجراء التالي: Private Sub Workbook_Open() MsgBox "welcome back" End Sub مثال 3 نريد كتابة إجراء يُضيف الصفحات الجديدة في نهاية صف الصفحات، ولتنفيذ ذلك علينا تقسيم المراحل لعمل الإجراء ومعرفة الأوامر الضرورية لفعل ذلك: Workbook_NewSheet: هو الحدث الذي يُنفذ عند إضافة صفحة عمل جديدة. يجب في البداية أن نعرف عدد الصفحات في الملف، لذا لنُعرّف المتغير sheet_count، ونُخزن فيه قيمة الأمر الذي يحصي عدد الصفحات، وهو الأمر sheet.count. نكتب الأمر المسؤول عن تحريك الصفحة الجديدة لآخر الصف، وهو الأمر التالي: object.move after:=sheets("عدد الصفات في الملف") حيث يُعبّر object هنا عن الصفحة الجديدة، ويُصبح الإجراء كالتالي: Private Sub Workbook_NewSheet(ByVal Sh As Object) Dim sheet_count As Integer sheet_count = Sheet.Count Sh.Move after:=Sheets("sheet_count") End Sub مثال 4 نريد تنفيذ إجراء عند الانتقال من خلية إلى أخرى يتغير لون عمود وسطر تقاطع الخلية، لذا نكتب الإجراء كما يلي: في البداية نريد دالةً تحذف الألوان السابقة عن طريق التعليمة التالية: Cells.Interior.ColorIndex = xlNone حيث تعني القيمة xlNone جعل الخلية بلا لون، وهذه التعليمة تُلغي اللون لكل خلايا الصفحة. الآن نكتب التعليمة الخاصة بجعل خلايا السطر كاملًا تأخذ لونًا موحدًا كالتالي: EntireRow.Interior.Color = RGB(14, 148, 148) ونفس الحالة بالنسبة لإعطاء خلايا العمود لونًا واحدًا، ولكن نُسبق التعليمتين بالأمر Target الذي يُعبر هنا عن مجال الصفحة، ومن هنا يصبح الإجراء بالشكل التالي: Private Sub Worksheet_SelectionChange(ByVal Target As Range) Cells.Interior.ColorIndex = xlNone Target.EntireRow.Interior.Color = RGB(14, 148, 148) Target.EntireColumn.Interior.Color = RGB(14, 148, 148) End Sub أهم الأحداث المرتبطة بملف العمل الأحداث المرتبطة بملف العمل كثيرة، ولكن سنذكر أهمها فيما يلي: Workbook_BeforeSave: الحدث قبل إتمام حفظ الملف. Workbook_BeforePrint: الحدث قبل البدء بالطباعة. Workbook_AfterSave: الحدث بعد إتمام حفظ الملف. Workbook_SheetActivate: الحدث عند تنشيط (فتح) الصفحة (ورقة عمل معينة). Workbook_NewSheet: الحدث عند إضافة ورقة عمل جديدة. Workbook_SheetChange: الحدث عند تعديل ورقة عمل. Workbook_BeforeClose: الحدث قبل إغلاق ملف الإكسل. Workbook_Open: الحدث عند فتح ملف الإكسل. أهم الأحداث المرتبطة بورقة العمل Worksheet_Activate: الحدث عند تنشيط الصفحة. Worksheet_BeforeDelete: الحدث قبل تنفيذ حذف الصفحة. Worksheet_Change: الحدث عند إجراء تغييرات على الصفحة. Worksheet_Deactivate: الحدث عند إلغاء تنشيط الصفحة (الانتقال إلى صفحة أخرى). خاتمة لا تقل الأحداث أهميةً عن الإجراءات التي تعلمناها سابقًا، فلكلٍ منها عملٌ مخصص ضمن الشيفرات، كما تساعد كثيرًا في صناعة البرمجيات بصورة أفضل ومضبوطة أكثر في نفس الوقت، وتوجد الكثير من الأحداث الأخرى التي سنتطرق إليها، والتي سنشرح آلية عملها وقت الحاجة إليها أثناء العمل. اقرأ أيضًا المقال السابق: استخدام أدوات مايكروسوفت إكسل لتنسيق الخلايا عن طريق الشيفرات VBA استخدام الشيفرات لتنفيذ العمليات الأساسية في مايكروسوفت إكسل VBA التفاعل مع المستخدم في مايكروسوفت إكسل باستخدام VBA الحلقات التكرارية في مايكروسوفت إكسل باستخدام VBA العمليات الشرطية في مايكروسوفت إكسل باستخدام VBA مدخل إلى البرمجة باستخدام VBA في مايكروسوفت إكسل
  4. تساعد جداول بيانات جوجل المستخدم على إنشاء جداول بيانات على الإنترنت وتعديلها وتنسيقها ومشاركتها مع الآخرين مجانًا ضمن معايير عالية من الأمن والحماية، كما تتيح لك جداول بيانات جوجل إمكانية عرض بياناتك من خلال مخططات ورسوم بيانية ملونة. إلى جانب توفيرها لك خيارات الصيغ والجداول المحورية والتنسيق الشرطي، وتسهيل الكثير من المهام الشائعة لجداول البيانات. يمكنك الدخول إلى جداول بياناتك وإنشائها وتعديلها سواء من هاتفك المحمول أو حاسوبك الشخصي، حيث تتميز جداول بيانات جوجل بأنها لا تجعلك مضطرًا للنقر على حفظ في كل مرة تجري فيها تعديلات على بياناتك، بل تُحفظ جميع التغييرات تلقائيًا أثناء الكتابة والتعديل، كما يمكنك العودة إلى سجلات النسخ السابقة بعرض الإصدارات القديمة من جدول البيانات ذاته، ومعرفة تاريخ التعديل والمستخدم الذي عدّل على البيانات. يمنحك جوجل إمكانية فتح ملفات مايكروسوفت إكسل باستخدام جداول بيانات جوجل، كما يمنحك إمكانية تحويل ملفات مايكروسوفت إكسل إلى جداول بيانات جوجل والعكس. إنشاء ملف جداول بيانات جوجل لإنشاء جدول بيانات جوجل، عليك اتباع الخطوات التالية: أدخل إلى تطبيق جوجل درايف، وسجّل الدخول باستخدام بريدك الإلكتروني وكلمة المرور. اضغط على زر "جديد" لإنشاء ملف جديد. ستظهر لك مجموعة من الخيارات لإنشاء الملفات والمجلدات. يتيح لك جوجل درايف خيارات إنشاء مجلد جديد أو ملف جديد، كما يتيح لك إمكانية تحميل ملفات أو مجلدات موجودة على جهازك. يمكنك أيضًا ترتيب ملفاتك في مجلدات، بحيث يمكنك إنشاء مجلدًا ثم إضافة الملف بداخله. ولإنشاء ملف جدول بيانات، اضغط على خيار "جداول بيانات Google". ستظهر لك الواجهة التالية لجداول بيانات جوجل، وهي شبيهة بملفات مايكروسوفت إكسل التي تتكون من مجموعة من الصفوف والأعمدة مع رقم لكل صف بدءًا من الرقم 1، وحرفًا لكل عمود بدءًا من الحرف A. يظهر الملف المتواجد في أعلى يمين الصفحة بعنوان "جدول بيانات بدون عنوان". اضغط على العنوان لتحريره، وأضف عنوانًا للملف وليكن "بيانات الموظفين 2021". تنسيق الخلايا والبيانات قبل بدء إضافة البيانات في الجدول، سنحوّل اتجاه ورقة العمل من اليمين إلى اليسار، وذلك باستخدام أيقونة تغيير اتجاه ورقة العمل والموجودة في الشريط الرئيسي العلوي للتطبيق. لاحظ أن اتجاه ورقة العمل أصبح من اليمين إلى اليسار وأصبح عمود A في الجهة اليمنى من الصفحة. أضف البيانات التالية للموظفين والتي تشمل الرقم المتسلسل والاسم الأول واسم العائلة والراتب الشهري والراتب السنوي. حدّد البيانات واختر خيار "توسيط" ضمن خيارات المحاذاة، وذلك لتوسيط كافة البيانات في منتصف الخلايا. حدد عناوين الأعمدة واختر خيار تنسيق "غامق". حدد عناوين الأعمدة، واختر محاذاة رأسية للوسط لعناوين الأعمدة لضمان محاذاتها في منتصف الخلية رأسيًا. أضف تنسيق عملة الدولار الأمريكي لقيمة الراتب الشهري والسنوي للموظف، وذلك بتحديد أعمدة الراتب الشهري والسنوي، ومن ثم اضغط على خيار "رقم" من قائمة تنسيق واختيار عملة "دولار أمريكي"، عندها ستلاحظ إضافة رمز عملة الدولار ($) للخلايا. من قائمة تنسيق، اختر "تبديل الألوان"، وعندها ستظهر قائمة جديدة تحتوي عدة خيارات لتنسيق ألوان الجدول. بإمكانك اختيار نمط جاهز من الأنماط التلقائية، كما يمكنك أيضًا تحديد خيارات رأس أو تذييل في حال احتوى جدول البيانات في ملفك على رأس وتذييل، وذلك لتخصيصهم بتنسيق خاص. وبإمكانك تخصيص نمط باختيار ألوان مخصصة لرأس الجدول والخلايا وذلك بتحديد ثلاثة خيارات. الخيار الأول هو لون الرأس، والخيارين الثاني والثالث هما خيارات ألوان تعبئة خلايا الجدول. بعد تحديد الألوان اضغط على زر "تم"، ويمكنك إلغاء التنسيق وذلك بالضغط على خيار "إزالة الألوان البديلة". اختر الألوان التي تناسبك إما من الأنماط التلقائية أو المخصصة. الآن أصبح لدينا تنسيق متكامل للخلايا والبيانات مثل الشكل التالي: التنسيق الشرطي نفترض أننا نريد تنسيق قيم الراتب السنوي بناءً على التصنيفات التالية: الراتب الذي قيمته تساوي أو تزيد عن 14000$، تنسيق تعبئة الخلايا بلون أحمر فاتح. الراتب الذي تقل قيمته عن 10000$، تنسيق تعبئة الخلايا بلون أخضر فاتح. الراتب الذي تقل قيمته عن 8000$، تنسيق تعبئة الخلايا بلون أصفر فاتح. ولتنفيذ ذلك اذهب إلى قائمة التنسيق، واختر "تنسيق شرطي". ستظهر لك قائمة بعنوان "قواعد التنسيق الشرطي"، والتي ستضيف فيها القواعد التي على أساسها ستُنسَق الخلايا. أضف قاعدة التنسيق ونمط التنسيق للحالات الثلاثة واضغط على زر "تم". ستلاحظ أن قيم خلايا الراتب السنوي نُسِقَت تبعًا لقيمتها وحسب الشروط التي أضفناها. يمكن تطبيق العديد من الشروط للتنسيق، ويمكنك الإطلاع على القائمة التالية التي تحتوي على كافة شروط التنسيق، والتي يمكن تطبيقها على أنواع مختلفة من البيانات، مثل النصوص والتاريخ وليس فقط القيم الرقمية. تنسيق رقم مخصص عدّل عنوان العمود E ليكون الراتب السنوي (2021)، ثم أضِف عمودين جديدين مثل الشكل التالي. العمود الأول هو الراتب السنوي في عام 2020 والعمود الثاني يحتوي على الفارق بين الراتبين أي الفارق بين راتب الموظف في عام 2020 وعام 2021، لملاحظة التغيّر في الراتب بين العامين. أضف القيم الثلاثة التالية في أحد الخلايا في الملف، والتي يمثّل كل منها رقم ترميز لأحد الحروف أو الرموز في جهاز الحاسوب. سنحصل باستخدام دالة char على رمز كل رقم من الأرقام الثلاثة، حيث تقبل دالة char رقمًا وتُرجِع الحرف أو الرمز المقابل له. طبّق صيغة المعادلة مثل الشكل التالي وستلاحظ ظهور رمز السهم العلوي ▲ في الخلية. كرّر الدالة على الرقمين الثاني والثالث، وستلاحظ ظهور الرموز مشابهةً للشكل التالي. نريد الآن إضافة تنسيق خاص لعمود "الفارق بين الراتبين" يمثّل الحالات التالية: في حال كان الفارق موجبًا (أي أن الموظف حصل على زيادة في عام 2021، فأصبح راتب 2021 أكبر من راتب 2020)، فسيظهر رمز ▲ في الخلية بجانب الرقم بلون أخضر. في حال كان الفارق سالبًا (أي أن الموظف حصل على خصم في عام 2021 فأصبح راتب 2021 أقل من راتب 2020)، فسيظهر رمز ▼ في الخلية بجانب الرقم بلون أحمر. في حال كان الفارق صفر (أي أن الموظف لم يحصل على أي زيادة أو نقصان في عام 2021 فبقي راتبه كما هو)، فسيظهر رمز ▬ في الخلية بجانب الرقم بلون أزرق. حدد عمود "الفارق بين الراتبين ثم من قائمة "التنسيق"، اضغط على خيار "رقم"، ومن ثم "مزيد من التنسيقات"، ومن ثم "تنسيق رقم مخصص". أدخل التنسيق المخصص التالي للرقم، وهو عبارة عن ثلاثة قيم تفصلها فاصلة منقوطة (;)، حيث تمثّل كل قيمة من القيم الثلاثة لون النص في في الخلية وقيمة الخلية ورمز الخلية حسب قيمتها. والقيم الثلاثة هي كالتالي: القيمة الأولى من اليسار هي تنسيق النص باللون الأخضر [color50] والذي يمكنك استبداله باسم [green]. لاحظ أن اسم اللون أو رقمه يُضاف بين قوسين مربعين [ ]، وهنا ستُنسَّق الخلية باللون الأخضر وذلك في حال كان الرقم موجبًا (0). تعني الصفر هنا رقمًا موجبًا، وسيُضاف بجانب الرقم رمز السهم العلوي. لإضافة السهم، انسخه من ورقة العمل من الخلية L3. تعني المسافة بين الرقم 0 والرمز أنه في ورقة العمل سيظهر الرقم والرمز بينهما مسافة واحدة. القيمة الثانية من اليسار هي تنسيق النص باللون الأحمر [color3] ويمكنك استبداله باسم [red]. ستُنسّق الخلية باللون الأحمر وذلك في حال كان الرقم سالبًا (0-). الصفر هنا تعني رقمًا سالبًا، وسيضاف بجانب الرقم رمز السهم السفلي. لإضافة السهم، انسخه من ورقة العمل من الخلية L4. القيمة الثالثة هي قيمة (0) ولون تنسيقها أزرق. في هذه الحالة إذا لم يكن الرقم موجبًا أو سالبًا فستظهر إشارة – بجانب الرقم، مع إضافة تنسيق النص باللون الأزرق. أدخل القيمة المخصصة واضغط على زر "تطبيق". ستلاحظ ظهور إشارة السهم العلوي بجانب القيم الموجبة مع تنسيق لون الخط بلون أخضر، كما ستلاحظ ظهور إشارة السهم السفلي بجانب القيم السالبة مع تنسيق لون الخط بلون أحمر، كما ستلاحظ تنسيق لون القيمة صفر بلون أزرق مع ظهور إشارة – بجانب الرقم. مشاركة جدول البيانات يمكنك مشاركة الملف مع مستخدمين آخرين للاطلاع عليه أو للتعديل عليه وذلك من خلال زر "مشاركة". يتيح لك جوجل إمكانية مشاركة الرابط مباشرةً مع المستخدمين، أو مشاركة الملف عن طريق البريد الإلكتروني. تنزيل الملف يتيح لك جوجل إمكانية تنزيل الملف على جهازك بعدة صيغ، وهي صيغة مايكروسوفت إكسل وصيغة مستند ods ومستند PDF وصفحة ويب وملف قيم مفصولة بفواصل csv، وملف قيم مفصولة بعلامات جدولة tsv. لتنزيل الملف اضغط على خيار "تنزيل" من قائمة ملف، ومن ثم اختر الصيغة التي ترغب بتحميلها. خاتمة تحدثنا في هذا الدرس عن تطبيق جداول بيانات جوجل، والتي تتيح للمستخدمين إمكانية إنشاء جداول بيانات على الإنترنت وتعديلها ومشاركتها مع مستخدمين آخرين عن طريق مشاركة الرابط الإلكتروني، أو إرسالها عبر البريد الإلكتروني. لقد أنشأنا جدولًا للبيانات ونسّقنا الخلايا والبيانات باستخدام أدوات تنسيق ورقة العمل والخلايا والخطوط والنصوص والأرقام، كما أضفنا تنسيقًا لتبديل الألوان للخلايا، وطبّقنا التنسيق الشرطي لقيم الخلايا والتنسيق الرقمي المخصص. أنشئ الآن ملفًا جديدًا لجداول بياناتك وأضف بياناتك ونسّقها وشارك الملف مع زملائك لتحريره أو الاطلاع عليه. اقرأ أيضًا إنشاء الجداول والمخططات المحورية باستخدام إكسل اونلاين 365 أدوات البيانات في إكسل أونلاين 365 إنشاء خطة عمل باستخدام إكسل 365 أونلاين تبويب إدراج ومزايا المشاركة والتعليقات في مايكروسوفت إكسل أونلاين 365 دوال التاريخ والوقت الأكثر استخداما في مايكروسوفت إكسل أونلاين 365 مدخل إلى تطبيق مايكروسوفت أوفيس إكسل 365 أونلاين
  5. يتيح الإكسل للمستخدمين إدخال مجموعة ضخمة من البيانات والتي تتكون من الصفوف والأعمدة، كما يحتاج المستخدم أن يُعِد تقاريرًا بناءً على هذه البيانات للاستفادة القصوى منها. تتضمن هذه التقارير إحصائيات تلخّص البيانات وتحلّلها وتنظّمها، بحيث قد تكون هذه الملخصات مجاميع أو متوسطات أو الحصول على أعلى قيمة أو أقل قيمة أو عدد أو إحصائيات أخرى. يُعَد الجدول المحوري Pivot Tables في الإكسل أحد أهم الوظائف التي تساعد في عرض البيانات وتلخيصها بدقة وبسرعة وباتباع خطوات بسيطة وسهلة. ويفضّل المستخدمون استعمال الجداول المحورية، لأنها لا تؤثّر على البيانات الأصلية ولا تغيّرها، بل إنّ أي تحديث في البيانات ينعكس مباشرةً على الجداول المحورية بدقة وبسهولة. الجداول المحورية هي جداول تتكون من صفوف وأعمدة وصفحات وحقول بيانات، لكنها توفّر ميزة تحريك البيانات وتغيير ترتيبها للحصول على النتائج المطلوبة، كما ترتبط المخططات المحورية Pivot Chart ارتباطًا وثيقًا بالجداول المحورية Pivot Tables، حيث أنه يمكن للمستخدم إنشاء المخططات المحورية بناءً على الجداول المحورية التي ينشئها. سنتعرّف في هذا المقال على كيفية إنشاء وإدارة الجداول المحورية وكذلك المخططات المحورية. تجهيز ملف البيانات نفترض أن لدينا البيانات التالية والتي سنطبّق عليها موضوع الجداول المحورية. افتح حسابك في مايكروسوفت وأنشئ ملفًا جديدًا باستخدام مايكروسوفت إكسل 365 أونلاين. أعد تسمية الملف، ثم أضف البيانات في ورقة العمل الأولى ونسّق البيانات تنسيقًا مناسبًا. تمثّل البيانات السابقة مجموعةً من الطلبات لعدد من الزبائن من دول مختلفة، وتشمل البيانات رقم وتاريخ الطلب ورقم الزبون واسمه ودولته وتصنيف الطلب والسعر الكلي له. تحتوي البيانات على مجموعة من التصنيفات وهي أحذية واكسسوارات ومأكولات وملابس وأثاث، بينما تحتوي الدولة على مجموعة من الخيارات وهي فلسطين والأردن والسعودية ولبنان ومصر. لنفترض أننا نريد أن نجيب عن الأسئلة التالية: ما هو السعر الكلي للطلبات من كل تصنيف؟ ما هو السعر الكلي للطلبات من تصنيف "ملابس"؟ ما هو السعر الكلي للطلبات لكل تصنيف في كل دولة على حدة؟ ما هو عدد الطلبات من كل دولة؟ للإجابة على الأسئلة التالية بسهولة يمكننا استخدام الجداول المحورية. وقبل بدء العمل على البيانات، يجب أن نتأكد من عدة نقاط: وجود عنوان لكل عمود من أعمدة البيانات مثل رقم الطلب وتاريخ الطلب. عدم وجود أعمدة فارغة من البيانات. عدم وجود صفوف فارغة من البيانات. عدم وجود خلايا مدمجة ضمن خلايا البيانات. الجداول المحورية سنتعرف على كيفية إنشاء الجداول المحورية بأشكال مختلفة وكذلك كيفية تنسيقها بسهولة. أساسيات إنشاء الجدول المحوري لإدراج جدول محوري، اختر Pivot Table من تبويب "إدراج". سيظهر لك مربع حوار يطلب منك إنشاء جدول محوري. يشمل مربع الحوار اختيار نطاق البيانات المراد تحليلها وفي المثال هو نطاق A1:A101 ضمن ورقة العمل الأولى، كما سيطلب منك مربع الحوار اختيار المكان الذي تريد إدراج تقرير الجدول المحوري فيه. يتيح لك الإكسل خيارين، الخيار الأول إدراجه في ورقة عمل جديدة وهو الأفضل لترتيب الجدول المحوري وفصله على ورقة عمل البيانات، والخيار الثاني إدراجه في ورقة عمل موجودة مُسبقًا في الملف. بعد اختيار ورقة عمل جديدة والضغط على "موافق"، ستفتح لك مباشرةً ورقة عمل جديدة مماثلة للشكل التالي، والتي تحتوي في جانبها الأيمن على خيارات حقول الجداول المحورية، مثل اختيار الحقول وعوامل التصفية والأعمدة والصفوف والقيم، كما تلاحظ وجود جدول البيانات المكوّن من صفوف وأعمدة في الجانب الأيسر من الورقة، مدرجًا فيه شكل توضيحي للجدول المحوري. خيارات حقول الجداول المحورية هي: اختيار الحقول: يمكنك اختيار حقل أو أكثر لاستخدامه في الجدول المحوري. عوامل التصفية: يمكنك تطبيق تصفية البيانات على حقل أو أكثر من الحقول. الأعمدة: يمكنك تحديد أعمدة الجدول المحوري، ولتحديد الأعمدة نسحب أحد الحقول باستخدام الفأرة إلى منطقة الأعمدة. الصفوف: يمكنك تحديد صفوف الجدول المحوري، ولتحديد الصفوف نسحب أحد الحقول باستخدام الفأرة إلى منطقة الصفوف. القيم: يمكنك تحديد المعادلات التي سنستخدمها في الجدول المحوري مثل المجموع والمعدل العام والعدد وغيرها. عند إدراج الجدول المحوري، ستلاحظ ظهور تبويب جديد باسم "Pivot Tables". يحتوي هذا التبويب على العديد من الخيارات للتحكّم في الجداول المحورية. تأكّد من تفعيل خيار قائمة الحقول لظهور القائمة الجانبية "حقول Pivot Tables" التي أشرنا لها في الصورة السابقة. عند إجراء أي تعديل على البيانات الأصلية، يجب الضغط على أيقونة "تحديث الكل"، وذلك لتحديث الجدول المحوري؛ أمّا في حال تغيير نطاق البيانات كاملًا، فيجب عليك الضغط على أيقونة "تغيير مصدر البيانات" وتحديد النطاق الجديد للبيانات. حساب المجموع الكلي للطلبات من كل تصنيف حدّد حقلي "التصنيف" و"السعر الكلي"، وبما أن التصنيف سيكون هو الصف في الجدول المحوري، اسحب التصنيف في منطقة الصفوف، بينما السعر الكلي سيمثّل القيمة، حيث أننا نريد حساب السعر الكلي للطلبات من كل تصنيف، لهذا اسحب السعر الكلي في منطقة القيم. ستلاحظ الناتج التالي في جهة الجانب المحوري، حيث أن دالة القيم تحسب عددًا وليس مجموعًا. يجب أن نعدّل القيمة التلقائية "عدد من السعر الكلي" ونستبدلها بقيمة "مجموع السعر الكلي". لتطبيق ذلك، اضغط على "القيم"، واختر "إعدادات حقل القيم"، واختر تلخيص القيمة حسب "مجموع". ستلاحظ أن الناتج أصبح مجموعًا بدلًا من عدد، وأنه حسب مجموع السعر الكلي لكل تصنيف على حدة، وكذلك حسب المجموع الكلي لكافة التصنيفات والذي يساوي 4927. حساب المجموع الكلي للطلبات من تصنيف ملابس لتصفية البيانات والحصول على مجموع تصنيف "ملابس" فقط، يمكنك سحب حقل "التصنيف" إلى عوامل التصفية، ومن ثم تصفية التصنيفات وتحديد "ملابس". ستلاحظ أن الجدول سيعرض فقط السعر الكلي لتصنيف ملابس فقط. لتغيير نص "مجموع من السعر الكلي"، اضغط مرةً أخرى على "إعدادات حقل القيم"، وعدّل "الاسم المخصص" وليكن "السعر الكلي للتصنيف". حساب السعر الكلي للطلبات لكل تصنيف في كل دولة على حدة يمكننا أيضًا حساب السعر الكلي لكل تصنيف في كل دولة من الدول الموجودة ضمن البيانات على حدة. ولتطبيق ذلك حدّد حقول الدولة والتصنيف والسعر الكلي. اسحب حقلي الدولة والتصنيف إلى منطقة الصفوف، واحسب مجموع السعر الكلي في منطقة القيم. ستلاحظ أن الجدول المحوري أظهر لك كل التصنيفات في كل دولة على حدة. فعلى سبيل المثال دولة الأردن قد حسب فيها مجموع السعر الكلي لكل تصنيف على حدة، كما حسب أيضًا السعر الكلي لطلبات الدولة. إذا نقلنا حقل "الدولة" إلى خانة الأعمدة بدلًا من الصفوف، فسنلاحظ أن كل اسم من أسماء التصنيفات أصبح في صف منفصل، ومقابل كل تصنيف يظهر إجمالي السعر لكل تصنيف لكل دولة على حدة، كما يُظهر الجدول إجمالي السعر (الإجمالي الكلي) لكل تصنيف في كافة الدول، وكذلك الإجمالي الكلي للطلبات من التصنيفات المختلفة في كل دولة. يمكنك أيضًا نقل الدولة لمنطقة الصفوف، ونقل التصنيف لمنطقة الأعمدة ولاحظ النتيجة. عدد الطلبات من كل دولة للحصول على عدد الزبائن لكل دولة، اختر حقل الدولة واسحبه لمنطقة "الصفوف"، ومن ثم اسحبه أيضًا إلى منطقة "القيم"، وتلقائيًا سيحسب عدد الزبائن لكل دولة، حيث أنه يحسب تلقائيًا قيمة العدد في خيار القيم. ستحصل على النتيجة التالية: تنسيق الجدول المحوري يمكنك تنسيق الجدول المحوري باستخدام أدوات التنسيق في الإكسل، أو بإمكانك تنسيقه مباشرةً من تبويب "Pivot Table" بتطبيق أحد الأنماط الجاهزة للتنسيق. اختر أحد الأنماط وطبقّها على الجدول المحوري. المخططات المحورية لإدراج مخطط للجدول المحوري الأول (حساب المجموع الكلي للطلبات من كل تصنيف) توجه إلى قائمة إدراج واختر نوع المخطط المناسب وليكن مخططًا عموديًا. ستلاحظ أن المخطط العمودي يمثّل السعر الكلي لكل تصنيف على حدة. ولإنشاء هذا المخطط بدون الجداول المحورية سيحتاج المستخدم إلى استخدام الدوال واستخراج السعر الكلي لكل تصنيف على حدة ومن ثم رسم الجدول، وهذا يؤكد على أهمية الجداول المحورية ودورها في تسهيل عمل المستخدم في استخراج البيانات وتحليلها. ويمكنك تنسيق المخطط باستخدام أدوات التنسيق في الإكسل، مثل أدوات لون التعبئة ولون الخط وتنسيق الأشكال. خاتمة تعرّفنا في هذا الدرس على مفهوم الجداول المحورية Pivot Tables وأهميتها في تحليل وتلخيص البيانات، كما تعلّمنا كيفية إنشاء الجداول المحورية. شرحنا آلية التعامل مع خيارات الحقول، مثل تحديد الحقول وعوامل التصفية والأعمدة والصفوف والقيم والفرق بينها. كما تعلّمنا كيفية تصميم الجداول المحورية والتحكّم في إعداداتها. تعرّفنا في هذا الدرس أيضًا على إنشاء مخططات محورية بناءً على الجداول المحورية. وبهذا يمكنك الآن استخدام الجداول المحورية لتحليل وتلخيص بياناتك الضخمة لإعداد التقارير بغض النظر عن حجم البيانات، وذلك بوقت قصير وبدون جهد مع ضمان دقة البيانات. اقرأ أيضًا أدوات البيانات في إكسل أونلاين 365 إنشاء خطة عمل باستخدام إكسل 365 أونلاين الدوال النصية في مايكروسوفت إكسل 365 أونلاين تبويب إدراج ومزايا المشاركة والتعليقات في مايكروسوفت إكسل أونلاين 365 دوال التاريخ والوقت الأكثر استخداما في مايكروسوفت إكسل أونلاين 365 مدخل إلى تطبيق مايكروسوفت أوفيس إكسل 365 أونلاين
  6. تعلمنا في مقال استخدام الشيفرات لتنفيذ العمليات الأساسية في مايكروسوفت إكسل VBA كيفية تنفيذ إجراءات عمل بعض الأدوات عن طريق الشيفرات البرمجية، وسنكمل في هذا المقال شرح عمل الأدوات التالية عن طريق الشيفرات البرمجية: تنسيق الخلايا. تنسيق الخطوط. إضافة حدود للخلايا. مسح محتويات الخلايا. إضافة خلايا أو صفوف أو أعمدة. تغيير حجم خط الخلية نستخدم لتغيير حجم خط الخلية التعليمة التالية: expression.Font.Size = "قيمة حجم الخط الذي نريده" حيث تعبّر expression عن الكائن الذي سنتعامل معه، وفي الغالب يكون من النوع Range بدون ذكر اسم الملف والصفحة اللذين يحويان هذا النطاق، إلا إذا كان تنفيذ الشيفرة في غير الصفحة النشطة أو في غير الملف النشط، أي أنها تصبح بالشكل التالي: Range("عنوان الخلية").Font.Size = "قيمة حجم الخط الذي نريده" والقيمة الافتراضية لحجم الخط هي 11. جعل خط الخلية عريضا نستخدم لذلك التعليمة التالية: Range("عنوان الخلية").Font.Bold = True or False حيث إن القيمة True للخط العريض، والقيمة False للخط العادي، وهي القيمة الافتراضية. تغيير لون خط الخلية ويمكن تنفيذ ذلك بعدة طرق، وهي: عن طريق الاسم الصريح للون، والتعليمة كالتالي: Range("عنوان الخلية").Font.Color = vbColor حيث إن القيمة الافتراضية للون الخط هي vbBlack. عن طريق رقم الفهرس للون، والتعليمة كالتالي: Range("عنوان الخلية").Font. ColorIndex = "الرقم المرجعي للون" حيث تكون القيمة الرقمية للون بين الرقم 1 والرقم 56 وفق المرفق بالصورة التالية، والقيمة الافتراضية للون الخط هي 1. عن طريق نظام الـ RGB للألوان: الفكرة الأساسية من نظام RGB هي القدرة على إعادة إنتاج أي لون آخر بناءً على نسب تداخل ثلاثة ألوان أساسية: الأحمر R والأخضر G والأزرق B، حيث إن وجود هذه الألوان معًا بقيمتها الكاملة 255 ينتج اللون الأبيض، بينما غياب قيمتها لتصل إلى 0 ينتج اللون الأسود. هذا النوع من أنظمة الألوان ضوئي بالكامل، لذا فهو مثالي للشاشات وأجهزة العرض المختلفة، ونتلاعب بقيم كل من الألوان الأساسية للحصول على أي لون آخر قد نريده، وفي العادة تتراوح شدة كل لون ضمن مجال من 0 حتى 255. ويُعَد نظام ألوان RGB نظام إضافة، حيث تعني كل قيمة مضافة لأحد الألوان المزيد من الضوء، أي أن الألوان ذات القيم الكبرى (في كل من R وG وB) أفتح، بينما تلك التي تمتلك قيمًا دُنيا أقتم. والتعليمة التي تحدد لون الخط هي كالتالي: Range("عنوان الخلية").Font. Color = RGB(0,0,0) تغيير لون الخلية وذلك عن طريق التعليمة: Range("عنوان الخلية").Cells.Interior.ColorIndex = "الرقم المرجعي للون" محاذاة النصوص كما نعلم لدينا نوعان من المحاذاة للنصوص، وهما: المحاذاة الأفقية، والمحاذاة العمودية. المحاذاة الأفقية تحدد موضع النص من الخلية أفقيًّا، والتعليمة الخاصة بها هي: Sub alignment_H() expression.HorizontalAlignment = type End Sub حيث تأخذ type إحدى القيم التالية: xlHAlignLeft محاذاة النص يسار الخلية. xlHAlignRight محاذاة النص يمين الخلية. xlHAlignCenter محاذاة النص منتصف الخلية. المحاذاة العمودية تحدد موضع النص من الخلية أفقيًّا، والتعليمة الخاصة بها هي: Sub alignment_V() expression. VerticalAlignment= type End Sub حيث تأخذ type إحدى القيم التالية: xlVAlignTop محاذاة النص أعلى الخلية. xlVAlignBottom محاذاة النص أسفل الخلية. xlVAlignCenter محاذاة النص منتصف الخلية. تفعيل الخلية أو الصفحة لجعل الخلية أو الصفحة نشطةً (مُفعَّلةً) نستخدم التعليمة التالية: Sub active() expression. Activate End Sub تغيير عرض الخلية نستخدم لذلك التعليمة التالية: Range("عنوان الخلية").ColumnWidth = "قيمة عرض الخلية الذي نريده " حيث إن القيمة الافتراضية لعرض الخلية هي 8.43. مثال نريد إنشاء الخلية A2 التي تحوي القيمة 5000، والخلية B1 التي تحوي القيمة 48، ونريد جعل الخط عريضًا حجمه 20، ولونه أبيض، ولون خلفية الخلية أخضر داكنًا، وجعل المحتوى يتوسط الخلايا، ولذلك نكتب الإجراء التالي: Sub example() Range("A2") = "5000" Range("B2") = "48" Range("A2:B2").Font.Bold = True Range("A2:B2").Font.Size = 20 Range("A2:B2").Font.Color = RGB(255, 255, 255) Range("A2:B2").Cells.Interior.ColorIndex = 10 Range("A2:B2").HorizontalAlignment = xlHAlignCenter End Sub إضافة حدود للخلية نستخدم لذلك التعليمة التالية: Range("عنوان الخلية").Borders(direction).LineStyle = type حيث إن: direction: نُحدد عن طريقها مكان الحدود للخلية، حيث تأخذ القيم التالية: XlDiagonalDown لوضع خط يقطع الخلية إلى مثلثين يبدأ من الزاوية اليسرى للخلية. XlDiagonalUp لوضع خط يقطع الخلية إلى مثلثين يبدأ من الزاوية اليمنى للخلية. XlEdgeBottom لوضع خط للخلية من الأسفل. XlEdgeLeft لوضع خط للخلية من اليسار. XlEdgeRigh لوضع خط للخلية من اليمين. XlEdgeTop لوضع خط للخلية من الأعلى. XlInsideHorizonta لوضع خطوط أفقية للخلايا، لكن يجب أن يحوي المجال عدة أعمدة، وتكون الخطوط للخلايا بين بداية المجال ونهايته. XlInsideVertical لوضع خطوط عمودية للخلايا، لكن يجب أن يحوي المجال عدة أعمدة، وتكون الخطوط للخلايا بين بداية المجال ونهايته. LineStyle: تحدد شكل الخط الذي سنضعه للخلية، ويأخذ القيم التالية: XlContinuous الخط الاعتيادي (خط متصل). Xldash الخط عبارة عن مجموعة شَرْطَات (متقطع) بالشكل التالي ------- XlDashDot الخط عبارة عن مجموعة متتابعة بالشكل، شَرْطَة تليها نقطة. XlDashDotDot الخط عبارة عن مجموعة متتابعة بالشكل، شَرْطَة تليها نقطتان. XlDot الخط منقط بالشكل التالي …….. XlDouble الخط عبارة عن خطين عاديين فوق بعضهما. XlLineStyleNone لإلغاء تنسيق الحدود الموجودة بالخلية. XlSlantDashDot الخط عبارة عن مجموعة متتابعة بالشكل، شَرْطَة مقطوعة بشكل مائل تليها نقطة. ولإضافة حدود من كافة الاتجاهات للخلية، نكتب الصيغة السابقة كالتالي: Range("عنوان الخلية").Borders.LineStyle = type تغيير ثخانة حدود الخلية نستخدم لذلك التعليمة التالية: Range("عنوان الخلية").Borders.value = "قيمة ثخانة الحدود للخلية" حذف محتويات الخلايا يمكن حذف محتويات الخلايا بعدة طرق، ومنها استخدام الأمر Delete والأمر Clear والأمر ClearContents والأمر ClearFormats، ولكلٍ منها عمل مخصص. الأمر Delete يُستخدم لحذف الخلايا مع مكانها ضمن البيانات، ويؤدي استعمال هذا الأمر إلى إزاحة الخلايا المتبقية باتجاه مكان الخلايا المحذوفة، والشكل العام لصيغة الأمر هو: Sub Delete() Rang("الخلايا أو النطاق الذي نريد حذفه").Delete (Shift) End Sub حيث إن shift وسيط اختياري يُحدد مكان إزاحة الخلايا، ويأخذ القيم التالية: xlShiftToLeft إزاحة الخلايا المتبقية لموضع الخلايا المحذوفة من اليسار، وهي القيمة الافتراضية. xlShiftUp إزاحة الخلايا المتبقية لموضع الخلايا المحذوفة من الأسفل. مثال بالعودة إلى المثال السابق نريد حذف الخانات من A1:A3، وذلك باستخدام الطرق السابقة، ولذلك نكتب التعليمات التالية: Sub Delete() Range("A1:A3").Delete End Sub الأمر Clear يُستخدم لحذف بيانات الخلية وتنسيقاتها مع الحفاظ على موضع البيانات، والشكل العام لصيغة الأمر: Sub Clear() Range("الخلايا أو النطاق الذي نريد حذفه").Clear End Sub مثال لنجرب نفس المثال السابق، فنكتب الإجراء كالتالي: Sub Clear() Range("A1:A3").Clear End Sub الأمر ClearContents يُستخدم لحذف البيانات، ولكن هذا الأمر يُحافظ على موضع وتنسيق الخلية، والشكل العام لصيغة الأمر هو: Sub Clear_Contents () Range("الخلايا أو النطاق الذي نريد حذفه"). ClearContents End Sub مثال نُطبِّق الأمر على مثالنا السابق، فنكتب الإجراء التالي: Sub Clear_Contents () Range("A1:A3"). ClearContents End Sub الأمر ClearFormats يُستخدم لحذف تنسيق الخلية مع إبقاء المحتوى، والشكل العام لصيغة الأمر هو: Sub Clear_Contents () Range("الخلايا أو النطاق الذي نريد حذفه"). ClearFormats End Sub مثال نُطبِّق الأمر على مثالنا السابق، فنكتب الإجراء التالي: Sub Clear_Contents () Range("A1:A3"). ClearFormats End Sub إدراج خلايا أو أسطر أو أعمدة التعليمة المسؤولة عن الإدراج هي التعليمة Insert إدراج خلايا نُدرج خلايا جديدةً عن طريق الأمر التالي: Sub insert() expression. Insert (Shift) End Sub حيث يحدد الوسيط Shift اتجاه إدراج البيانات، ويأخذ القيم التالية: xlShiftDown تُدرج خلايا أسفل النطاق المحدد. xlShiftToRight تُدرج خلايا يمين النطاق المحدد. مثال نريد إدراج خلايا ضمن بياناتنا في الجدول التالي، بحيث تكون الخلايا المضافة للأعلى ضمن النطاق A1:B5: نكتب الإجراء التالي: Sub Insert() Range("A1:B5").Insert xlShiftDown End Sub إدراج أسطر أو أعمدة نُدرجها عن طريق الأمر التالي: Sub insert() expression. Insert End Sub مثال نريد إدراج 3 صفوف ضمن بياناتنا في جدول البيانات السابق، ولذلك نكتب الإجراء التالي: Sub Insert() Range("2:5").Insert End Sub نلاحظ أنه أُضيفت 3 أسطر ابتداءً من السطر رقم 2، وأن بقية البيانات أُزيحت للأسفل. ولإضافة أعمدة سنتبع نفس الأسلوب، ولكن المجال يتضمن أعمدةً فقط، وبفرض أننا نريد إضافة عمود واحد يكون الإجراء كالتالي: Sub Insert() Range("A:A").Insert End Sub هنا تُزاح البيانات نحو اليسار في النسخة الإنجليزية، وإلى اليمين في النسخة العربية. خاتمة توجد العديد من التعليمات الجزئية التي تُشكل اللَّبنة الأساسية لبناء التطبيقات، لذا يتوجب علينا فهم آلية عمل التطبيق، وتقسيمه لأجزاء ومهام صغيرة، ثم البحث عن التعليمات التي تنفذ هذه المهام، حيث تطرقنا لأهمها، وسنستوفي شرح ما يصادفنا من أوامر خلال المقالات القادمة أثناء صناعة البرمجيات الصغيرة. اقرأ أيضًا التفاعل مع المستخدم في مايكروسوفت إكسل باستخدام VBA الحلقات التكرارية في مايكروسوفت إكسل باستخدام VBA العمليات الشرطية في مايكروسوفت إكسل باستخدام VBA مدخل إلى البرمجة باستخدام VBA في مايكروسوفت إكسل
  7. يمكننا تنفيذ الأوامر التي تنفذها الأدوات على برنامج إكسل باستخدام الشيفرات البرمجية، مثل إضافة صفحات وتنسيق الخطوط والخلايا والعديد من العمليات، وفيما يلي أهم الأوامر التي نستخدمها في إنشاء التطبيقات: إضافة صفحة عمل جديدة. تحديد الخلايا. عمليتا النسخ واللصق. إلغاء تحديد الخلايا المنسوخة. عمليتا القص واللصق. إسناد قيمة إلى خلية معينة. إضافة صفحة عمل جديدة نُضيف صفحات جديدةً عن طريق التعليمة التالية: Sub add_sheet () Worksheets.add End Sub تُضاف الصفحة بالاسم الافتراضي بهذه الطريقة، وذلك حسب الترقيم الافتراضي (… ,sheet1, sheet2, sheet3)؛ أما إذا أردنا وضع اسم معين للصفحة، فيمكننا ذلك عن طريق التعليمة التالية: Sub add_sheet() Worksheets.add.name = name End Sub حيث تُعبر name عن اسم اختياري للصفحة. تحديد الخلايا يمكننا تحديد خلية أو مجموعة من الخلايا عن طريق التعليمة التالية: Sub selection() Range("عنوان الخلية").Select End Sub عمليتا النسخ واللصق لدينا عدة حالات يمكن استخدامها لنسخ ولصق الخلايا: النسخ واللصق مباشرة تختلف الآلية هنا باختلاف مكان لصق البيانات المنسوخة، ولدينا عدة أشكال: اللصق في نفس الصفحة. اللصق في صفحة أخرى. اللصق في ملف آخر. اللصق في نفس الصفحة الأوامر المسؤولة عن العمليتين هي: Sub Range_Copy_paste() Range("الخلية التي نريد نسخها").Copy Range("الخلية التي سنلصق فيها المحتوى المنسوخ") Range("المجال الذي نريد نسخه").Copy Range("المجال الذي سنلصق فيه المحتوى المنسوخ") Range("المجال الذي نريد نسخه").Copy Range("بداية مجال اللصق للمحتوى المنسوخ") End Sub نلاحظ وجود فراغ يفصل بين التعليمة Range(" ").Copy والتعليمة الخاصة باللصق، ويجب أن تكونا في نفس السطر البرمجي. مثال لدينا البيانات التالية، ونريد نسخ الخلايا إلى أماكن مختلفة في نفس الصفحة، لذا نكتب الإجراء التالي: Sub Range_Copy_paste() Range("A1").Copy Range("C1") Range("A1:A3").Copy Range("D1:D3") Range("A1:A3").Copy Range("D1") End Sub نلاحظ أن اللصق يحصل بكامل ما تحتويه الخلية من تنسيقات ومعادلات وبيانات. اللصق في صفحة أخرى لاستعمال هذه الطريقة للنسخ من صفحة واللصق في صفحة أخرى تكون التعليمات كما يلي: Sub Range_Copy_paste_in_other_sheet() Worksheets("الصفحة التي سننسخ منها البيانات").Range("الخلية التي نريد نسخها").Copy Worksheets("الصفحة التي سننسخ البيانات إليها").Range("الخلية التي سنلصق فيها المحتوى المنسوخ") End Sub اللصق في ملف آخر نتعامل مع النسخ من ملف إكسل إلى آخر بنفس الأسلوب، وتكون التعليمات كالتالي: Sub Range_Copy_paste_in_other_workbook() Workbooks("اسم الملف الذي سننسخ منه البيانات.xlsx")_ .Worksheets("الصفحة التي سننسخ منها البيانات").Range("الخلية التي نريد نسخها").Copy_ Workbooks("اسم الملف الذي سننسخ إليه البيانات.xlsx")_ .Worksheets("الصفحة التي سننسخ البيانات إليها").Range("الخلية التي سنلصق فيها المحتوى المنسوخ") End Sub مثال لدينا البيانات التالية، ونريد نسخها مرةً إلى صفحة أخرى ومرةً إلى ملف آخر، لذا نكتب الإجراء التالي: Sub Range_Copy_paste_in_other_sheet() Worksheets("Sheet1").Range("A1").Copy Worksheets("Sheet2").Range("A1") Workbooks("Book1.xlsx").Worksheets("Sheet1").Range("A1").Copy _ Workbooks("Book2.xlsx").Worksheets("Sheet1").Range("A1") End Sub النسخ واللصق عن طريق الإسناد يمكننا هنا جعل خلية تأخذ قيمة خلية أخرى عن طريق الإسناد، وتكون التعليمات كالتالي: Sub Paste_Values_Examples() Range("الخلية التي نريد النسخ إليها").Value = Range("الخلية التي نريد نسخها").Value Range("المجال الذي نريد نسخه").Value = Range("المجال الذي سنلصق فيه المحتوى المنسوخ").Value End Sub ونتعامل مع النسخ من صفحة إلى أخرى ومن ملف إلى آخر بنفس الأسلوب. مثال بالعودة إلى المثال السابق نريد نسخ البيانات في نفس الصفحة، ومرةً أخرى في صفحة ضمن نفس الملف، ومرةً ثالثةً في ملف آخر مستقل، لذا تكون لدينا التعليمات كالتالي: Sub Paste_Values_Examples() النسخ واللصق ضمن نفس الصفحة Range("C1").Value = Range("A1").Value Range("D1:D3").Value = Range("A1:A3").Value النسخ واللصق في صفحة أخرى Worksheets("Sheet2").Range("A1").Value = Worksheets("Sheet1").Range("A1").Value النسخ واللصق في ملف آخر Workbooks("file2.xlsm").Worksheets("Sheet1").Range("A1").Value _ =Workbooks("file1.xlsm").Worksheets("Sheet1").Range("A1").Value End Sub نلاحظ في هذه الطريقة أن اللصق يكون للقيمة فقط، ويتجاهل التنسيقات بشكل كامل. النسخ واللصق الخاص يمكننا نسخ البيانات واستعمال اللصق الخاص -كما في مايكروسوفت إكسل- باستعمال التعليمات التالية: عند النسخ واللصق في نفس الصفحة Sub PasteSpecial_Examples() Range("الخلية التي نريد نسخها").Copy Range("الخلية التي نريد لصق المحتوى فيها").PasteSpecial Paste: = type_of_paste End Sub عند النسخ واللصق في صفحة أخرى Sub PasteSpecial_Examples() Worksheets("اسم الصفحة التي تنسخ منها البيانات").Range("المجال الذي نريد نسخه").Copy Worksheets("اسم الصفحة التي سنلصق فيها البيانات").Range("المجال الذي سنلصق فيه البيانات").PasteSpecial Paste: = type_of_paste End Sub عند النسخ واللصق في ملف آخر Sub PasteSpecial_Examples() Workbooks("اسم الملف الذي ننسخ منه البيانات.xlsx").Worksheets("اسم الصفحة").Range("المجال الذي نريد نسخه").Copy Workbooks("اسم الملف الذي سننسخ إليه البيانات.xlsx")_ .Worksheets("الصفحة التي سننسخ البيانات إليها").Range("الخلية التي سنلصق فيها المحتوى المنسوخ")_ .PasteSpecial Paste: = type_of_paste End Sub حيث تُعبر type_of_paste عن نوع اللصق الخاص الذي نريده، وفيما يلي أهم أشكاله: xlPasteAll لصق الخلايا مع التنسيقات. xlPasteAllExceptBorders لصق الخلايا مع التنسيقات عدا حدود الخلية. xlPasteColumnWidths لصق عرض العمود المنسوخ. xlPasteComments لصق التعليقات. xlPasteFormats لصق التنسيقات فقط. xlPasteFormulas لصق المعادلات أو الدوال المستخدمة في خلايا المصدر. xlPasteFormulasAndNumberFormats لصق المعادلات أو الدوال المستخدمة في خلايا المصدر بالإضافة لتنسيقات الأرقام. xlPasteValidation لصق عمليات التحقق من صحة البيانات. xlPasteValues لصق المحتوى فقط بدون أية تنسيقات أو معادلات. مثال لنَعُد إلى المثال السابق وننسخ الخلية A1، ثم نُلصق البيانات بشكل خاص في خلايا العمود D باستعمال بعض الأنواع السابقة من اللصق الخاص، لذا نكتب التعليمات التالية: Sub PasteSpecial_Examples() Range("A1").Copy Range("D1").PasteSpecial Paste:=xlPasteAll Range("D3").PasteSpecial Paste:=xlPasteAllExceptBorders Range("D5").PasteSpecial Paste:=xlPasteFormats Range("D7").PasteSpecial Paste:=xlPasteValues End Sub نعيد كتابة الإجراء الخاص بالمثال السابق بدون التعليمة Paste:= لنجده يعمل دون أية أخطاء: Sub PasteSpecial_Examples() Range("A1").Copy Range("D1").PasteSpecial xlPasteAll Range("D3").PasteSpecial xlPasteAllExceptBorders Range("D5").PasteSpecial xlPasteFormats Range("D7").PasteSpecial xlPasteValues End Sub إلغاء تحديد الخلايا المنسوخة كما وجدنا في المثال السابق، بقي التحديد يحيط بالخلية المنسوخة مسبقًا بعد الانتهاء من عمليتي النسخ واللصق، ولإلغاء التحديد نضيف التعليمة التالية إلى الشيفرة: Sub PasteSpecial_Examples() Application.CutCopyMode = False End Sub تأخذ التعليمة إما القيمة True التي تُبقي التحديد وهي القيمة الافتراضية، أو القيمة False التي تُلغيه. عمليتا القص واللصق يمكننا إجراء عملية القص بنفس الطريقة المباشرة لعملية النسخ، كما يلي: Sub Range_Copy_paste() Range("الخلية التي نريد نسخها").Cut Range("الخلية التي سنلصق فيها المحتوى المنسوخ") Range("المجال الذي نريد نسخه").Cut Range("المجال الذي سنلصق فيه المحتوى المنسوخ") Range("المجال الذي نريد نسخه").Cut Range("بداية مجال اللصق للمحتوى المنسوخ") End Sub ويمكن تنفيذ اللصق في صفحة أخرى، أو في ملف آخر مثل عملية النسخ. مثال لنَعُد إلى المثال السابق حيث نريد قص 7 خلايا من العمود A ولصقها في عمود آخر، ثم قصها مرةً أخرى ولصقها في الصفحة الثانية، كما نريد قص 7 خانات من العمود B ولصقها في الملف الثاني، لذا تكون التعليمات كالتالي: Sub Paste_Values_Examples() Range("A1:A7").Cut Range("D1") Worksheets("Sheet1").Range("D1:D7").Cut Worksheets("Sheet2") _ .Range("A1") Workbooks("file1.xlsm").Worksheets("Sheet1").Range("B1:B7").Cut _ Workbooks("file2.xlsm").Worksheets("Sheet1").Range("A1") End Sub إسناد قيمة إلى خلية معينة نستطيع إسناد قيمة إلى خلية؛ إما بإسناد قيمة مباشرة، أو بإسناد قيمة مساوية لقيمة خلية أخرى، كالتالي: إسناد قيمة مباشرة عن طريق التعليمة التالية: Range("عنوان الخلية") = "القيمة التي نريد إسنادها" إسناد قيمة مساوية لقيمة خلية أخرى عن طريق التعليمة التالية: Range("عنوان الخلية") = Range("عنوان الخلية التي سنُسند قيمتها للخلية الأخرى").value مثال لنطبق التعليمتين السابقتين على بياناتنا، بحيث نُسند قيمة الخلية B5 إلى الخلية A3، ونسند القيمة أحمد في الخلية A10، لذا نكتب الإجراء التالي: Sub attribution() Range("A3") = Range("B5").Value Range("c10") = 61 End Sub خاتمة تُعَد هذه الأوامر -رغم صغر حجمها وأفعالها البسيطة- من الركائز الأساسية والمهمة في صناعة برمجيات الإكسل عن طريق الفيجوال بيسك، بغض النظر عن حجم البرنامج وعدد العمليات التي يؤديها بشكلٍ دائم، لذا لا بد لنا من فهم عملها بطريقة صحيحة، ومعرفة خصائصها وآلية تكوين أجزاء الشيفرات البرمجية عن طريقها. اقرأ أيضًا التفاعل مع المستخدم في مايكروسوفت إكسل باستخدام VBA الحلقات التكرارية في مايكروسوفت إكسل باستخدام VBA العمليات الشرطية في مايكروسوفت إكسل باستخدام VBA مدخل إلى البرمجة باستخدام VBA في مايكروسوفت إكسل
  8. تُعَد أدوات البيانات من مميزات الإكسل الهامة في تبويب "البيانات"، حيث تساعد أدوات البيانات المستخدم على بناء صفحات تفاعلية، كما أنها تساعد المستخدِم في إدخال بيانات صحيحة وموثوقة وتقلِّل نسبة الخطأ إلى حدٍّ كبير. ويمكن للمستخدم أن يزيل البيانات المكررة بسهولة وبخطوات بسيطة، كما يمكنه تحويل النصوص إلى مجموعة من الأعمدة دون استخدام الدوال. لنتعرف أكثر على خصائص أدوات البيانات سنطبِّق المثال التالي، ومن خلاله سنتعرف على الخصائص التالية: إزالة التكرارات. التحقق من صحة البيانات. التعبئة السريعة. تحويل النصوص إلى أعمدة. سجِّل دخولك إلى حسابك في مايكروسوفت، ثم أنشئ ورقة عمل على إكسل 365 أونلاين، وأدرج فيها البيانات ونسقها تنسيقًا مناسبًا. 1. إزالة التكرارات يجب أن تحتوي قاعدة البيانات على حقل فريد لا يتكرر، ليكون محدِّدًا ومميِّزًا لكل صف في الجدول. ويُعَد رقم الهوية هو الحقل الفريد الذي لا يتكرر في هذا المثال، فلا يمكن العثور على طالبَين أو أكثر لهم نفس رقم الهوية. للتأكد من وجود تكرارات في البيانات؛ سنستخدم خاصية "التنسيق الشرطي" في تبويب "الرئيسية"، وهنا حدِّد القيم في عمود رقم الهوية للتأكد من وجود تكرارات. بعد تحديد القيم، اختر التنسيق الشرطي، ثم اختر قواعد تمييز الخلايا، بعدها اختر خيار قيم متكررة. اختر تنسيقًا مناسبًا للخلايا التي تحتوي على قيم مكررة، ولتكن تعبئتها باللون الأحمر الفاتح مع نص أحمر داكن. ستلاحظ أن رقمَيِ الهوية في السجلين الثاني والثالث قد طُبِّق عليهما تنسيق الخلايا المكررة. دقِّق في السجل وستلاحظ أنهما لنفس الشخص، حيث تتطابق فيهما قيم جميع الحقول. يحتوي الإكسل في تبويب "البيانات" على خاصية مميزة لإزالة التكرارات. حدِّد البيانات التي تريد إزالة التكرارات منها، واضغط على أيقونة إزالة التكرارات، حيث ستفتح لك نافذة تطلب منك تحديد عمود أو أكثر من الأعمدة التي تريد البحث فيها عن قيم متكررة، وهنا تأكد من تحديد خيار "تحتوي البيانات على رؤوس"، للتأكد من أن الإكسل قد ميَّز عنوان كل عمود، وسنختار فقط "رقم الهوية"، والذي على أساسه سنحدد هل توجد تكرار في البيانات أم لا، ثم نضغط على "موافق". ستظهر لك نافذة تخبرك أنه قد عثر على قيمة متكررة واحدة وأزالها، وأنه قد تبقى في ورقة العمل 19 قيمة فريدة، أي غير مكررة. تُعَد هذه الميزة مهمةً جدًّا خاصةً عند وجود عدد هائل من البيانات في ورقة العمل، حيث سيكون من الصعب جدًّا تدقيق كل سجل وموازنته بالسجلات الأخرى. لاحظ أن التنسيق الشرطي مفيد في تمييز القيم المكررة ومعرفتها، لكن لا يحذفها؛ بينما خاصية إزالة التكرارات تساعدك في إزالة القيم المكررة بسهولة. ولاحظ أن اسم "دعاء عصام نائل" قد حُذف من ورقة العمل، وهنا أَعِدْ ترقيم البيانات باستخدام التعبئة التلقائية. 2. التحقق من صحة البيانات قد تحتمل عملية إدخال البيانات على جهاز الحاسوب الكثير من الأخطاء، وخاصةً عندما تريد مشاركة الملف مع أشخاص آخرين، ولذلك يوفِّر الإكسل خاصية "التحقق من صحة البيانات"، والتي تعمل على التأكد من صحة البيانات قبل إدخالها في الملف، حيث تعمل هذه الخاصية على تقييد نوع البيانات، وتقييد القيم التي يدخلها المستخدم في الخلايا. تتعدد طُرق التحقق من صحة البيانات حسب طبيعة البيانات، فهناك بيانات نصية وبيانات رقمية، وبيانات تتعلق بالوقت والتاريخ، وبيانات نريد عرضها، مثل قائمة منسدلة بدلًا من إدخالها بواسطة المستخدم. اختر أيقونة "التحقق من صحة البيانات" من تبويب "البيانات". ستلاحظ أن نافذة التحقق من صحة البيانات تحتوي على ثلاثة خيارات، هي الآتية: الإعدادات: تسمح لك هذه الخاصية بتحديد نوع البيانات وإضافة القيود لها. حيث يمكنك إنشاء قائمة منسدلة بخيارات محددة، مثل أن يختار المستخدم خيار التخصص، فيختار تكنولوجيا معلومات أو هندسة حاسوب أو هندسة معمارية أو هندسة مدنية، أو تقييد الأرقام والتواريخ بتحديد قيمة دنيا وقيمة قصوى، أو تقييد النصوص بتحديد عدد الحروف المسموح إدخالها في خلية مثلًا على الأقل 10 حروف وعلى الأكثر 30 حرفًا، كما يمكن تقييد الخلايا استنادًا إلى صيغ أو قيم مخصصة يحددها المستخدم. رسالة إدخال: يمكن للمستخدم اختيار عرض رسالة إدخال عندما يحدد المستخدم الخلية وهي رسالة إرشادية للمستخدمين حول نوع البيانات وقيودها. تظهر هذه الرسالة بالقرب من الخلية، وتختفي عندما تنتقل إلى خلية أخرى. تنبيه إلى الخطأ: وهي الرسالة التي تظهر للمستخدم عند وجود خطأ في الإدخال، وقد تكون رسالة خطأ أو رسالة تنبيه. لفهم آلية عمل التحقق من صحة البيانات، سنطبِّق مجموعة من الأمثلة كالتالي: أ. التحقق من طول النص مع رسالة إدخال وتنبيه إلى الخطأ نريد وضع قيد على عمود الاسم الثلاثي كاملًا بأن يكون الاسم الثلاثي على الأقل 10 حروف، ولتطبيق ذلك اختر "طول النص" من خيار "السماح" في الإعدادات، وحدد أن تكون البيانات المدخلة في الخلية على الأقل 10 حروف. سنضيف رسالة إدخال، وهنا أضف عنوان الرسالة وليكن "الاسم الثلاثي"، ثم أضف رسالة الإدخال "على الأقل 10 حروف". أضف تنبيهًا إلى الخطأ، وهنا سنختار نوع التنبيه "حظر". أضف عنوانًا واسمًا للتنبيه، ثم اضغط "موافق". لاحظ ظهور رسالة الإدخال عند وضع المؤشر على خلايا عمود الاسم الثلاثي، وهي فقط رسالة إرشادية للمستخدم. حاول إدخال اسم أقل من 10 حروف ولاحظ رسالة الخطأ. لاحظ أن أيقونة التنبيه هي "إيقاف"، وبالتالي لن يسمح لك بإدخال قيمة خاطئة أي قيمة أقل من 10 حروف، وسيطلب منك إعادة المحاولة أو إلغاء القيمة التي أدخلتها. حدّد عمود الاسم الثلاثي وأَعِدْ عملية التحقق من صحة البيانات، واختر نوع التنبيه "تحذير" بدلًا من "حظر". أدخل قيمةً خاطئةً في خلايا الاسم الثلاثي، ولاحظ تغيير أيقونة التنبيه إلى "تحذير" بدلًا من "إيقاف". ويمكنك ملاحظة أن أمامك خيارين أحدهما إلغاء الأمر، أو متابعة الأمر وإدخال القيمة في الخلية، أي أن الرسالة فقط تحذيرية لكنه سيقبل القيمة. ب. إنشاء قائمة لاسم الجامعة واسم المنطقة سننشئ قائمةً منسدلةً لخيار الجامعة، حيث تتيح للمستخدم اختيار اسم الجامعة بدلًا من إدخاله من لوحة المفاتيح. حدد عمود الجامعة، واختر خيار "القائمة". سنحدد الآن نطاق البيانات التي ستظهر في القائمة، لهذا أضف القيم "أسماء الجامعات" التي تريد أن تظهر في القائمة في ورقة العمل نفسها أو في ورقة عمل جديدة، وحدِّده في خانة المصدر. تأكد من تحديد خيار "قائمة منسدلة في الخلية" واضغط على "موافق". ستلاحظ ظهور القائمة المنسدلة، وفيها أسماء الجامعات وهنا ما عليك سوى الضغط على الخيار المناسب من القائمة. طبِّق نفس الفكرة السابقة على عمود "المنطقة"، على أن تحتوي القائمة المنسدلة على الخيارات التالية: شمال غزة وغزة والوسطى ورفح وخان يونس. ج. التحقق من المعدل مثل قيمة عشرية يمكننا تقييد إدخال قيمة المعدل الجامعي؛ حيث إن قيمة المعدل الجامعي للخريج لن تقل عن 50.0 ولن تزيد عن 99.9. يمكن تطبيق ذلك باختيار خيار "عشري"، وتحديد الحد الأدنى 50.0 والحد الأقصى 99.9. د. التحقق من القيم المخصصة لنفترض أننا نريد تقييد إدخال رقم الهوية، على أن يكون طوله 10 حروف وأن يبدأ بـ "80-"، ولتحديد طول النص سنستخدم دالة LEN على أن يكون طول النص 10. حاول إدخال قيمة أقل من 10، وستلاحظ أن الإكسل سيرفض عملية الإدخال وسيُظهِر لك رسالة خطأ. سنضيف دالة LEFT لتحديد أن أول ثلاثة حروف هي قيمة "-80"، وسنجمع الدالتين في دالة واحدة باستخدام دالة AND التي ستتحقق من صحة ناتج الدالتين Left وLen. حاول إدخال قيم صحيحة وأخرى خاطئة في عمود الهوية ولاحظ الفرق. إذا كنت لا تريد إدخال "-" في رقم الهوية، وتريد من المستخدم إدخال أرقام فقط؛ فيمكنك استخدام دالة ISNUMBER. لاحظ أنه في حال أدخلت حرفًا ضمن الرقم، فسيرفض الإكسل القيمة وسيُظهِر رسالة خطأ. يمكنك إلغاء خاصية التحقق من صحة البيانات التي طبقتها على مجموعة من الخلايا، وذلك بتحديد الخلايا التي تريد إلغاء الخاصية عنها، ثم الضغط على "التحقق من صحة البيانات"، واختيار "مسح الكل". 3. التعبئة السريعة تُعَد التعبئة السريعة من الخصائص المهمة في الإكسل التي تساعدك على توليد البيانات بسرعة، وهنا لنفترض أن لدينا قيم الاسم الأول والاسم الثاني، ونريد توليد بريد إلكتروني بالصيغة التالية: firstName_secondName_h@live.com. هنا ما عليك سوى كتابة البريد الإلكتروني للسجل الأول، ثم تحديد العمود واختيار "تعبئة سريعة" ضمن تبويب "البيانات"، وستلاحظ تعبئة خلايا البريد الإلكتروني حسب الصيغة المُحدَّدة. 4. تحويل النص إلى أعمدة لنفترض أننا نريد تقسيم عمود الاسم الثلاثي إلى ثلاثة أعمدة هي عمود الاسم الأول، وعمود الاسم الثاني، وعمود اسم العائلة. حدد عمود الاسم الثلاثي واختر "نص إلى أعمدة" ضمن تبويب "البيانات". يطلب منك الإكسل تحديد مُحدِّد البيانات، أي ما هو الفاصل بين الاسم الأول والثاني واسم العائلة في الاسم الثلاثي. اختر "المسافة" فهي التي تفصل بينهم، ثم لاحظ النتيجة في المعاينة واضغط موافق. ستلاحظ الآن أن لديك ثلاثة أعمدة؛ حيث إن العمود الأول فيه الاسم الأول، والعمود الثاني فيه الاسم الثاني، والعمود الثالث فيه اسم العائلة. خاتمة لقد تعرفنا في هذا الدرس على أدوات البيانات في إكسل أونلاين 365، والتي تشمل إزالة التكرارات والتحقق من صحة البيانات والتعبئة السريعة وتحويل النص إلى أعمدة. وقد ميَّزنا القيم المكررة باستخدام التنسيق الشرطي، ثم تعرفنا على طريقة إزالة التكرارات بتحديد القيمة التي تبحث عن تكرارها في ورقة العمل. كما تعرفنا على طرق التحقق من صحة البيانات بإضافة القيود للبيانات وتحديد نوعها، مثل البيانات الرقمية والبيانات النصية وبيانات التاريخ والوقت والبيانات المُخصَّصة بصيغة محددة، وتعرفنا أيضًا على طريقة التعبئة السريعة للبيانات، وطريقة تحويل نص إلى مجموعة من الأعمدة بناءً على مُحدِّدات معينة من المسافات والفواصل. اقرأ أيضًا مدخل إلى تطبيق مايكروسوفت أوفيس إكسل 365 أونلاين إنشاء خطة عمل باستخدام إكسل 365 أونلاين تبويب إدراج ومزايا المشاركة والتعليقات في مايكروسوفت إكسل أونلاين 365 دوال قواعد البيانات في مايكروسوفت اكسل 365 أونلاين الدوال الشائعة في مايكروسوفت إكسل أونلاين 365
  9. تساعدنا خطة العمل على تقسيم العمل إلى مجموعة من المهام، ومعرفة الشخص المسؤول عن كل مهمة. كما تساعدنا على معرفة تاريخ بداية ونهاية كل مهمة لمتابعتها أولًا بأول. ويمكننا أيضًا من خلالها تحديد الموظفين العاملين على المهام، وسعر ساعة العمل لكل منهم، وعدد الساعات التي سيقضيها الموظف في عمل المهمة. ومع كل هذا تساعدنا خطة العمل أيضًا على معرفة أدوات العمل وأسعارها وأي تكاليف إضافية. في المثال التالي سننشئ خطة عمل بسيطة باستخدام إكسل 365 أونلاين، وسنستخدم مميزات الإكسل المختلفة والدوال المناسبة لجعل خطة العمل ديناميكية، وستحصل في نهاية تطبيق هذا المقال على خطة عمل مشابهة للشكل التالي، وسنطبق فيها الخطوات التالية: إنشاء وتنسيق نموذج خطة العمل. إضافة تاريخ بداية ونهاية لكل مهمة وحساب عدد الأيام (المدة) لكل مهمة. حساب إجمالي سعر الموظفين والأدوات المستخدمة والتكاليف الإضافية في كل مهمة وإجمالي سعر المهام. حساب الميزانية الفعلية لكل مهمة. موازنة الميزانية الفعلية لكل مهمة مع الميزانية المخصصة لها. تحديد العجز في كل مهمة على حدة إن وجد، وفي المشروع عمومًا. تحديد حالات المهمات (مكتملة أو قيد العمل أو متأخرة أو لم تبدأ بعد). إضافة تاريخ اليوم واسم المشروع. إدراج شكل بياني يمثِّل الميزانية الفعلية للمهام المكتملة. 1. إنشاء وتنسيق نموذج خطة العمل أنشئ ورقة عمل باستخدام مايكروسوفت إكسل 365 أونلاين، وأعد تسمية الملف باسم مناسب، وليكن "خطة العمل". أضف البيانات التالية في ورقة العمل. نسِّق بيانات ورقة العمل، وهنا بإمكانك اختيار حجم الخط المناسب ونوعه ولونه وتعبئة الخلايا بلون مناسب. استخدم خاصية الدمج والتوسيط للخلايا التي تحتاج إلى دمج وتوسيط، مثل خلية الموظفين والأدوات وتكاليف إضافية. أضف حدودًا للجدول، واختر شكل الحد المناسب واللون المناسب. حاذِ النص داخل الخلايا للوسط والمنتصف، أي اجعله في منتصف الخلية رأسيًّا وأفقيًّا. يمكنك إخفاء عرض العناوين (أسماء الأعمدة والصفوف)، كما يمكنك إخفاء عرض خطوط الشبكة وذلك من تبويب "عرض". أدخل قيم عمود رقم المهمة بحيث تكون من 1 إلى 10. وهنا أدخل أول قيمتين، ثم اسحب بالسهم لتعبئة باقي الخلايا تعبئة تلقائية. بهذا سيكون لديك الآن ما يشبه الشكل التالي، ويمكنك استخدام ألوان مختلفة إذا أردت. 2. إضافة تاريخ بداية ونهاية كل مهمة وحساب مدة كل منها حدِّد خلايا تاريخ البداية وتاريخ النهاية، ثم اختر تنسيق "تاريخ" من خيارات تنسيق الأرقام. يمكنك اختيار تنسيق تاريخ طويل أو تاريخ قصير. أضف تاريخ البداية وتاريخ النهاية لكل مهمة. احسب المدة لكل مهمة، وذلك باستخدام دالة التاريخ والوقت DAYS. تستقبل هذه الدالة قيمتين، اولاهما هي تاريخ النهاية، أما ثانيهما فهي تاريخ البداية، وتحسب المدة (أي عدد الأيام بين التاريخين). بعد حساب المدة للمهمة الأولى، اسحب بزر الفأرة لتطبيق الدالة على كل المهام وحساب مدة كل مهمة. احسب مجموع الأيام وذلك باستخدام دالة SUM، بعدها ضع المؤشر في الخلية المناسبة، ثم طبِّق الدالة للحصول على مجموع المدة لكل المهام، وستحصل على مجموع يساوي 572 يومًا. 3. حساب إجمالي سعر الموظفين في كل مهمة وإجمالي سعر المهام أدخل سعر الساعة وعدد الساعات لكل مهمة/موظف. احسب إجمالي السعر لكل مهمة بضرب سعر الساعة في عدد الساعات لكل مهمة، وطبِّق على المهمة الأولى، حيث ستحصل على قيمة تساوي 400. حدد الخلية واسحب بزر الفأرة لتطبيق عملية الضرب على كل المهام. احسب مجموع سعر المهام باستخدام دالة SUM، وضع المؤشر في الخلية المناسبة التي ستحسب فيها المجموع وطبِّق الدالة، حيث ستحصل على مجموع قيمته 1992. لإضافة تنسيق الدولار "$" للخلايا التي تحتوي على أرقام عملات مثل خلايا سعر الساعة، حدد الخلايا التي تريد إضافة علامة الدولار لها (يمكنك تحديد كل الأعمدة مع استمرار الضغط على مفتاح CTRL من لوحة المفاتيح)، ثم اختر "$" من خيارات تنسيق الأرقام، وعندها ستلاحظ إضافة علامة الدولار على كل الخلايا التي حددتها. بنفس الطريقة السابقة، احسب مجموع الأدوات ومجموع التكاليف الإضافية. 4. حساب الميزانية الفعلية لكل مهمة احسب الميزانية الفعلية لكل مهمة بجمع قيم مجموع أسعار الموظفين ومجموع سعر الأدوات ومجموع سعر التكاليف الإضافية، والتي يمكنك جمعها كاملةً مباشرة باستخدام إشارة الجمع "+"، أو بإمكانك استخدام دالة المجموع SUM. بعد حساب الميزانية الفعلية للمهمة الأولى، اسحب الخلية بزر الفأرة لتطبيق العملية على باقي المهام، ثم احسب مجموع الميزانية الفعلية باستخدام دالة SUM. أدخل الميزانية المرصودة مسبقًا لكل مهمة من المهمات، وأضف تنسيق "$" للخلايا. 5. موازنة الميزانية الفعلية لكل مهمة مع الميزانية المخصصة لها لموازنة الميزانية الفعلية لكل مهمة مع الميزانية المخصصة لها، سنطرح الميزانية الفعلية من الميزانية المخصصة فعلًا. فإذا كانت الميزانية المخصصة لك هي 1000 دولار مثلًا وميزانيتك الفعلية هي 1200 دولار، فذلك يعني وجود عجز بقيمة 200 دولار، أي هناك 200 دولار قد زادت في المصاريف عن الميزانية المخصصة لك. احسب عملية الطرح للمهمة الأولى، واسحب الدالة بزر الفأرة للتطبيق على باقي المهام لحساب الفارق بين الميزانيتين. 6. تحديد العجز في كل مهمة على حدة إن وجد وفي المشروع عموما سنستخدم خاصية التنسيق الشرطي لتمييز المهمات التي فيها عجز، أي التي زادت فيها الميزانية الفعلية عن الميزانية المرصودة. وستظهر هذه القيم في عمود "الميزانية – الميزانية الفعلية" بقيمة سالبة، لأن قيمة الميزانية الفعلية أكبر من قيمة الميزانية. لتطبيق ذلك اختر "تنسيق شرطي" من تبويب "الرئيسية"، ومن ثم اختر "قواعد تمييز الخلايا"، بعدها اختر "أصغر من"، و أدخل القيمة "صفر" أي أنه سيحدد القيم السالبة، وسنختار لها تنسيق "تعبئة باللون الأحمر الفاتح مع نص أحمر داكن". ستلاحظ أن تنسيق الخلايا التي فيها قيم سالبة أصبحت ملونةً باللون الأحمر. لتأكيد تمييز المهام التي فيها عجز، سنضيف كلمة "عجز" في عمود "حالة الميزانية" للمهام التي زادت ميزانيتها الفعلية عن الميزانية المرصودة، وذلك باستخدام الدالة الشرطية IF. أدرج دالة، واختر دالة IF من فئة شائعة الاستخدام. حدد الشرط في الدالة الشرطية، وهو ضرورة أن تكون قيمة "الميزانية – الميزانية الفعلية"، وهي خلية S5 أقل من صفر. وفي حال كانت أقل من صفر، فسيُدرج كلمة "عجز". طبِّق الدالة على كل المهام وستحصل على النتيجة التالية. 7. تحديد حالات المهمات افتح ورقة عمل جديدة وأدرج فيها القيم التالية: لم تبدأ بعد. مكتملة. قيد العمل. متأخرة. عُد إلى ورقة العمل الأولى (أي ورقة خطة العمل)، وحَدِّد عمود "الحالة"، ثم اختر "التحقق من صحة البيانات" من تبويب "البيانات". حدد قيمة السماح التي يجب أن تكون "القائمة" -أي قائمة منسدلة-، ويمكنك إضافة رسالة إدخال ورسالة تنبيه إلى الخطأ. ضع المؤشر في مربع المصدر، ومن ثم اذهب إلى ورقة العمل التي أدرجت فيها قيم حالات المهمة، وحَدِّد القيم. حدد أي خلية في عمود الحالة، وستلاحظ أنه بإمكانك اختيار الحالة؛ حيث ستلاحظ وجود قائمة منسدلة بدلًا من إدخال القيمة كتابةً بنفسك، وهو ما يُقلِّل فرصة الخطأ، ويضمن استخدام القيم الأربعة فقط. يمكنك إضافة تنسيق شرطي للخلايا بتنسيق كل كلمة من كلمات الحالة بلون محدد. فمثلًا: تعبئة حالة مكتمل بلون أخضر. يمكن تطبيق ذلك بالضغط على "النص الذي يحتوي على" من خيارات التنسيق الشرطي وإضافة كلمة مكتمل، كما يمكنك إضافة التنسيق الذي تراه مناسبًا للحالات الأخرى، وهي: قيد العمل. متأخرة. لم تبدأ بعد. 8. إضافة تاريخ اليوم واسم المشروع أضف اسمًا مناسبًا لمشروعك. أضف تاريخ اليوم على أن يُحدَّث تلقائيًّا باستخدام دالة التاريخ والوقت NOW. 9. إدراج شكل بياني يمثل الميزانية الفعلية للمهام المكتملة حدد أسماء المهام المكتملة، ثم حَدِّد الميزانية الفعلية لكل منها، واختر إدراج شكل بياني عمودي من قائمة إدراج. نسِّق الشكل البياني، وليكن مثل الشكل التالي: خاتمة بهذا ستكون خطة العمل قد أصبحت جاهزةً الآن، وبإمكانك إضافة مهام إضافية أو تعديل أي قيم، وسيعمل الإكسل مباشرةً على إعادة الحسابات ديناميكيًّا دون أن يتطلب منك إعادة الحسابات بنفسك. لقد تعلمنا في هذا الدرس طريقة إنشاء وتصميم خطة عمل باستخدام إكسل 365 أونلاين، حيث أدرجنا خطة العمل ونسقناها وأدرجنا فيها البيانات، واستخدمنا الدوال المختلفة للحسابات، مثل حساب الميزانية الفعلية للمشروع، وذلك بِعَدّ حساب أجور الموظفين وأسعار الأدوات والتكاليف الإضافية. استطعنا تمييز المهام التي فاقت فيها الميزانية الفعلية الميزانية المرصودة لها، مما تسبب في عجز مالي، فاستخدمنا التنسيق الشرطي والدالة الشرطية IF لتمييزها، كما استخدمنا دوال التاريخ والوقت مثل دالة NOW، لإدراج التاريخ والوقت الحاليين، وكذلك دالة DAYS لتحديد عدد الأيام لكل مهمة بعد معرفة تاريخ بداية ونهاية كل مهمة، وبهذا يمكنك الآن إنشاء وتصميم خطط لأعمالك بسهولة، مما يوفِّر عليك الوقت والجهد، ويساعدك في متابعة المهام والميزانية أولًا بأول. اقرأ أيضًا الدوال النصية في مايكروسوفت إكسل 365 أونلاين دوال قواعد البيانات في مايكروسوفت اكسل 365 أونلاين الدوال الشائعة في مايكروسوفت إكسل أونلاين 365 دوال التاريخ والوقت الأكثر استخداما في مايكروسوفت إكسل أونلاين 365
  10. تعرَّفنا في مقال أكثر الدوال شيوعًا على أكثر الدوال شيوعًا في مايكروسوفت إكسل 365 أونلاين، وسنتعرف في هذا المقال على مجموعة الدوال النصية في الإكسل. وفي البداية يمكنك أن تدرج دالةً من تبويب "إدراج" ولاحظ الدوال الموجودة في فئة "نصية". يحتوي الإكسل على مجموعة من الدوال النصية التي تساعد على معالجة النصوص مثل دمج النصوص وإيجاد طول النص واستبداله وغيرها من طرق معالجة النصوص، وسنتعرف في هذا المقال على الدوال التالية: CONCAT: دمج مجموعة من النصوص في نص واحد. TRIM: إزالة المسافات من النصوص مع الحفاظ على مسافة واحدة بين الكلمتين. TEXT: تنسيق الأرقام وتحويلها إلى نصوص. SEARCH: البحث عن قيمة نصية داخل قيمة نصية أخرى، ولكنها لا تتحسس حالة الأحرف. FIND: البحث عن قيمة نصية داخل قيمة نصية أخرى، ولكنها تتحسس حالة الأحرف. LOWER: تحويل نص إلى أحرف صغيرة. UPPER: تحويل نص إلى أحرف كبيرة. ** PROPER**: تغيير الحرف الأول إلى حرف كبير في كل كلمة من قيمة نصية. LEN: إرجاع عدد الأحرف في قيمة نصية. LEFT: إرجاع الأحرف الموجودة في أقصى اليسار من قيمة نصية. RIGHT: إرجاع الأحرف الموجودة في أقصى اليمين من قيمة نصية. SUBSTITUTE: استبدال نص قديم بنص جديد في قيمة نصية. للتعرف على دوال النصوص، أنشئ ورقة عمل جديدة على مايكروسوفت إكسل أونلاين 365، وأدرج البيانات التالية ونسِّق الجدول، ومن ثم سنبدأ بتطبيق الدوال لإيجاد القيم المطلوبة. 1. دالة CONCAT تدمج هذه الدالة مجموعةً من النصوص في نص واحد. لدينا في المثال قيم الاسم الأول واسم الأب واسم العائلة، ونريد الحصول على الاسم الثلاثي كاملًا، وهنا سنستخدم دالة CONCAT لدمج الأسماء الثلاثة. لاحظ أن صيغة الدالة تستقبل مجموعةً من النصوص. أدرج الدالة لدمج الأسماء الثلاثة. ستلاحظ أن نتيجة الدالة هي دمج الأسماء الثلاثة لكن بدون مسافات بين الأسماء. عدِّل الدالة وذلك بإدراج مسافة (تُعَد المسافة نصًّا) بين كل اسم والاسم الذي يليه. سنحصل على الاسم الثلاثي كاملًا مثل الشكل التالي: لتطبيق الدالة على باقي السجلات، حدِّد الخلية التي طبقت عليها الدالة، واسحب المربع الأخضر للأسفل حتى آخر صف، أو اضغط على المربع ضغطتين متتاليتين بالفأرة. ستلاحظ الناتج النهائي للدالة بعرض الاسم الثلاثي كاملًا لكل السجلات. 2. دالة TRIM لاحظ أن عمود المنطقة يحتوي على العديد من المسافات الإضافية، فمثلًا منطقة "شمال غزة" تحتوي على أكثر من مسافة بين الكلمتين، وبعض الخلايا في عمود المنطقة يحتوي على مسافات إضافية قبل أو بعد النص. هذه المسافات تُسبِّب أخطاء في البيانات ويجب معالجتها. لإزالة المسافات الزائدة بين كلمتين في النص أو قبل النص أو بعده، سنستخدم دالة TRIM التي تستقبل نصًّا، وتُرجِعه بدون مسافات مع الإبقاء على مسافة واحدة بين الكلمتين. لاحظ النتيجة بأن "شمال غزة" أصبحت تحتوي على مسافة واحدة فقط بين كلمتي "شمال" و"غزة". حدد الخلية التي طبَّقت عليها الدالة، واسحب الدالة لتطبيقها على عمود المنطقة كاملًا وستحصل على النتيجة التالية: أَخْفِ عمود المنطقة الأول الذي يحتوي على مسافات زائدة، وذلك بالضغط على اسم العمود "F"، ثم اضغط بالزر الأيمن للفأرة، وهنا ستظهر لك قائمة اختر منها "إخفاء الأعمدة". 3. دالة TEXT تستقبل هذه الدالة أرقامًا وتحوِّلها إلى نصوص بتنسيق محدد. تحتاج هذه الدالة قيمتين هما القيمة الرقمية التي تريد تحويلها إلى نص، وشكل التنسيق الذي تريده للنص. سنحوِّل قيم المعدل الجامعي في عمود المعدل الجامعي إلى صيغة مئوية مع وجود رقمين بعد العلامة العشرية، وللحصول على هذا التنسيق سنستخدم 0.00%. ستلاحظ أن قيمة المعدل الجامعي تحولت إلى قيمة نسبة مئوية مع وجود رقمين بعد العلامة العشرية، وهنا حدِّد الخلية الأولى التي طبقت عليها الدالة، واسحب الدالة للتطبيق على باقي السجلات. ستلاحظ أن ورقة العمل أصبحت بالشكل التالي بعد تطبيق الجزء الأول من المطلوب. 4. دالة SEARCH لتطبيق الجزء الثاني من المطلوب، لدينا اسم باللغتين العربية والإنجليزية، الاسم بالعربية هو "كريم سعيد إبراهيم أحمد"، والاسم بالإنجليزية هو "Kareem Said Ibrahim Ahmed". تساعدك دالة SEARCH على البحث عن نص داخل نص آخر، وتُرجِع رقم موضع بدء النص الذي تبحث عنه، وتستقبل هذه الدالة قيمتين إجباريتين وهما النص الذي تريد البحث عنه، والنص الذي تريد البحث بداخله. سندخل النص الذي سنبحث عنه في خلية "البحث عن (عربي)" وهي الخلية L5، بينما سنبحث عنها في الاسم الرباعي العربي وهي الخلية L3، وستظهر النتيجة في "النتيجة Search". تلقائيًّا وبدون إدخال قيمة بحث، سيظهر الناتج "1". أدخل الآن الكلمة التي تريد البحث عنها ولتكن كلمة "سعيد"، حيث سيظهر في النتيجة رقم "6". ابدأ بِعَدّ الحروف في الاسم الرباعي، فحرف "ك" هو الحرف رقم "1"، بينما حرف "س" هو الحرف رقم "6" في الاسم. انتبه أن المسافة تُعَد حرفًا. 5. دالة FIND تساعدك دالة FIND على البحث عن نص داخل نص آخر، وتُرجع رقم موضع بدء النص الذي تبحث عنه. تستقبل هذه الدالة قيمتين إجباريتين، وهما النص الذي تريد البحث عنه، والنص الذي تريد البحث بداخله. تختلف هذه الدالة عن دالة SEARCH بأنها تتحسس حالة الحرف (حرف صغير أو كبير)، بينما دالة SEARCH لا تتحسس الحروف. اكتب القيمة التي تريد البحث عنها في مربع "البحث عن (إنجليزي)" وهي الخلية L7، وسنبحث في الاسم الإنجليزي الموجود في الخلية L4، وستظهر النتيجة في خلية النتيجة (Find). ابحث عن كلمة said، وستُرجِع الدالة !VALUE# أي أنها لم تجد الكلمة. استبدل الكلمة التي تبحث عنها بـ Said على أن يكون حرف S حرفًا كبيرًا، وستُرجِع الدالة رقم "8"، وهو رقم موضع الحرف في الاسم، حيث إن حرف "K" هو الحرف رقم "1"، بينما حرف "S" هو الحرف رقم "8". انتبه أن المسافة تُعَد حرفًا. 6. دالة LOWER تستقبل هذه الدالة نصًّا، وتُرجِع النص بحروف صغيرة. طبِّق الدالة على الاسم الإنجليزي في خلية L4، وستلاحظ أن الدالة تُرجِع الاسم كاملًا لكن بحروف صغيرة. 7. دالة UPPER تستقبل هذه الدالة نصًّا، وتُرجِع النص بحروف كبيرة. طبِّق الدالة على الاسم الإنجليزي الموجود في خلية L4، وستلاحظ أن الدالة تُرجِع الاسم كاملًا لكن بحروف كبيرة. 8. دالة PROPER تستقبل هذه الدالة نصًّا، وتُرجِع النص بحروف كبيرة لأول حرف في كل كلمة. طبِّق الدالة على الاسم الإنجليزي في خلية L4، ستلاحظ أن الدالة تُرجِع الاسم كاملًا لكن بحروف كبيرة لأول حرف بداية كل كلمة. غيِّر حالة الحروف في الاسم الإنجليزي، وطبِّق الدالة وتأكد من النتيجة. 9. دالة LEN تستقبل هذه الدالة نصًّا، وتُرجِع عدد الحروف في النص أي طوله. طبِّق الدالة على الاسمين العربي والإنجليزي لحساب طول النص، وستظهر النتيجة كالتالي: 10. دالة LEFT تستقبل هذه الدالة نصًّا، وتُرجِع الأحرف الموجودة في أقصى يسار النص. سنطبِّق هذه الدالة على الاسمين العربي والإنجليزي لملاحظة الفرق في آلية عملها مع النصوص العربية والنصوص الإنجليزية. نبدأ بالاسم العربي؛ سنطبِّق الدالة على الاسم العربي في الخلية L3، أينما ستلاحظ أن الدالة تُرجِع حرف "ك"، وهو الحرف الأول من الاسم الأول من الجهة اليمنى لأن النص عربي. تُرجِع الدالة حرفًا واحدًا تلقائيًّا، لكن الدالة تستقبل متغيرًا ثانيًا اختياريًّا، وهو عدد الحروف التي تريد إرجاعها من الدالة. فمثلًا لو حددنا 3 حروف؛ فستُرجِع الدالة "كري" أي أول ثلاثة حروف للاسم الأول من الجهة اليمنى. طبِّق نفس الدالة على الاسم الإنجليزي ولاحظ النتيجة، حيث ستُرجِع الدالة حرف "K" وهو الحرف الأول من الاسم الأول من الجهة اليسرى. وإذا حددنا استرجاع ثلاثة حروف، فستُرجِع الدالة "Kar". 11. دالة RIGHT تعمل هذه الدالة بنفس آلية عمل دالة LEFT ولكنها ستُرجِع أقصى حرف من الجهة اليمنى في النص الإنجليزي، بينما ستُرجِع أقصى حرف من الجهة اليسرى في النص العربي. طبِّق الدالة على الاسمين ولاحظ النتيجة. ويكون ناتج دالة اليمين للنصين العربي والإنجليزي على النحو الآتي: 12. دالة SUBSTITUTE تُستخدم هذه الدالة لاستبدال نص بنصٍّ آخر. نفترض أننا سنستبدل اسم "Ahmed" باسم "Abed"، وهنا سنحدد ثلاث قيم، حيث تكون القيمة الأولى هي "النص الذي سأبحث فيه عن النص الذي سأستبدله" وهو الاسم الإنجليزي في الخلية L4؛ أما القيمة الثانية فهي "النص الذي سأستبدله" وهو "Ahmed"، والقيمة الثالثة هي "النص الجديد" وهو "Abed". خاتمة تعرَّفنا في هذا المقال على مجموعة من الدوال النصية التي تساعد في معالجة النصوص في إكسل 365 أونلاين، كما تعرفنا على دالة دمج النصوص CONTACT، وتعرفنا أيضًا على دالة TEXT التي تساعدنا على تحويل القيم الرقمية إلى نصوص مع إضافة تنسيق خاص لها، ودالة TRIM التي تُزيل المسافة من النصوص؛ ثم تعرفنا على مجموعة من الدوال التي تعالج النصوص الإنجليزية مثل دوال LOWER وUPPER وPROPER التي تغيِّر حالة الحروف، وأن بإمكاننا البحث عن النصوص باستخدام دوال SEARCH وFIND، أو البحث عن جزء معين من النص وإرجاعه باستخدام دوال RIGTH وLEFT. وفي الختام تعرفنا على دالة SUBSTITUE التي تساعدنا على استبدال نص بآخر بسهولة. اقرأ أيضًا دوال قواعد البيانات في مايكروسوفت اكسل 365 أونلاين الدوال الشائعة في مايكروسوفت إكسل أونلاين 365 تبويب إدراج ومزايا المشاركة والتعليقات في مايكروسوفت إكسل أونلاين 365 دوال التاريخ والوقت الأكثر استخداما في مايكروسوفت إكسل أونلاين 365
  11. قواعد البيانات هي مجموعة من البيانات المنطقية المترابطة مع بعضها البعض، حيث تتكون قاعدة البيانات من جدول أو أكثر. ويحتوي الجدول على صف واحد أو أكثر يُسمى الصف بالسجل، في حين تمثل أعمدة البيانات الحقول، كما يحتوي الصف الأول من البيانات على تسميات كل عمود. يحتوي الإكسل على مجموعة من دوال قواعد البيانات والتي تسهِّل البحث والتصفية داخل قواعد البيانات. سنشرح في هذا الدرس مجموعةً من دوال قواعد البيانات، وهي: Dcount: تَحسُب هذه الدالة عدد الخلايا التي تحتوي على أرقام تحقق الشرط المحدد في عمود السجلات في قاعدة البيانات. DcountA: تَحسُب هذه الدالة عدد الخلايا غير الفارغة في عمود السجلات في قاعدة البيانات، والتي تحقق الشرط المحدد. Dsum: تجمع هذه الدالة الأرقام في عمود السجلات في قاعدة البيانات والتي تُحقِّّق الشروط التي حددتها. Daverage: تحصل هذه الدالة على متوسط القيم في عمود بإحدى القوائم، أو في قاعدة بيانات تطابق الشروط المعينة. Dproduct: تضرب هذه الدالة القيم في عمود السجلات في قاعدة البيانات، والتي تُحقق الشروط التي حددتها. Dmax: تُرجِع هذه الدالة أكبر رقم في عمود من سجلات قاعدة البيانات، والتي تحقق الشروط التي تحددها. Dmin: تُرجِع هذه الدالة أصغر رقم في عمود من سجلات قاعدة البيانات، والتي تحقق الشروط التي تحددها. Dget: تستخرج هذه الدالة سجلًّا واحدًا يحقق الشروط التي حددتها من قاعدة بيانات. لتوضيح الدوال السابقة؛ سنشرح المثال التالي والذي يشمل إجمالي مبيعات في سنوات مختلفة لعدة مناطق. أدرج الجدول السابق في ورقة العمل في الإكسل، [نسِّقها](رابط مقال مدخل إلى مايكروسوفت إكسل أونلاين). أولا: إنشاء قاعدة البيانات سننشئ قاعدة البيانات والتي تتكون من عناوين البيانات (م. والفرع والسنة وإجمالي المبيعات) بالإضافة إلى البيانات، حيث أن قاعدة البيانات في الشكل التالي تقع في النطاق A1:D14. ثانيا: إنشاء نموذج البحث سننشئ هنا نموذج البحث الذي من خلاله سنبحث داخل قاعدة البيانات، حيث يمكننا البحث عن الفرع أو السنة أو إجمالي المبيعات. نلاحظ أن عناوين الجدول هي نفسها عناوين جدول البيانات السابق، وسيكون نموذج البحث في النطاق F1:H2. ثالثا: إنشاء نموذج النتائج ننشئ نموذج النتائج والذي سنطبِّق فيه دوال قواعد البيانات. بهذا نكون قد جهَّزنا ورقة العمل التي تحتوي على قاعدة البيانات ونموذج البحث ونموذج النتائج، والذي يتمثَّل في دوال قواعد البيانات، وسنبدأ بتطبيق الدوال. ستكون ورقة العمل بالشكل التالي: رابعا: تطبيق دوال قواعد البيانات أدرج دالة من تبويب إدراج، واختر فئة "قاعدة بيانات" للوصول إلى جميع دوال قواعد البيانات. 1. دالة Dcount عند إدراج الدالة سنلاحظ أن الدالة تحتاج لثلاث قيم هي database وfield وcriteria. سنلاحظ أن هذه القيم الثلاثة هي ذاتها في كل الدوال، ولكن ستختلف قيمة field على حسب الناتج الذي نريده. والقيم الثلاثة هي: database: وهي قاعدة البيانات، وفي المثال هي نطاق الخلايا A1:D14 الذي حددناه مسبقًا بما يحتويه من رقم تسلسلي وفرع وسنة وإجمالي مبيعات. field: وهو الحقل أو العمود الذي سنبحث عنه أو نوازنه (أي الذي ستستخدمه الدالة). يمكن إدخال تسمية العمود مع تضمينها بين علامتي اقتباس مزدوجتين، مثل "الفرع" أو "السنة"، أو رقم (بدون علامات اقتباس) يمثل موضع العمود في القائمة 1 للعمود الأول، و2 للعمود الثاني، وهكذا. وبما أن دالة Dcount تَحسُب عدد الخلايا التي تحتوي على أرقام، فسنحسب عمود "إجمالي المبيعات". criteria: وهي نطاق البحث والذي يمثل نطاق الخلايا التي ستحتوي على الشروط التي نحددها. وفي المثال التالي نطاق البحث هو نطاق الخلايا F1:H2. سنلاحظ أن الناتج يساوي 13، وهو العدد الكلي للبيانات في الجدول. يمكننا استبدال D1 بـ "إجمالي المبيعات" أو بالرقم 4، وهو رقم عمود "إجمالي المبيعات"، حيث إن عمود "م." هو العمود رقم 1. سندخل الآن شرطًا في نموذج البحث، ولنفترض أننا نبحث عن عدد الخلايا التي إجمالي المبيعات فيها أكبر من 5000. سنلاحظ أن العدد سيتغير إلى 4، وهو العدد الفعلي للفروع التي إجمالي المبيعات فيها أكثر من 5000. يمكننا إضافة شروط أخرى، ولنفترض أننا نريد إجمالي المبيعات أكبر من 5000 ولكن فقط لمنطقة "غزة". سنلاحظ تغيُّر القيمة إلى 1 لأنه لا توجد إلَّا قيمة واحدة أعلى من 5000 في إجمالي مبيعات منطقة غزة. 2. دالة Dcounta هذه الدالة تشبه دالة Dcount، ولكنها تحسب عدد الخلايا التي تحتوي على نصوص. فمثلًا نريد حساب عدد السجلات في عمود الفرع، لهذا سنطبِّق الدالة كالتالي (نلاحظ أن قيمة field هي "الفرع"، بينما قيم criteria وdatabase كما هي). سنحصل على قيمة 13 وهي عدد السجلات الكلي في حقل الفرع. ندخل شرطين في نموذج البحث وهما فرع "رفح" وسنة "2019"، أي أنه سيحسب فقط عدد السجلات التي ينطبق عليها الشرطان معًا لا شرط واحد، والآن سندقِّق في قاعدة البيانات وسنلاحظ أن السجل رقم 13 هو الوحيد الذي يتحقق فيه الشرطان (رفح و2019)؛ لذلك فإن نتيجة الدالة هي 1 أي سجل واحد فقط. 3. دالة Daverage تُرجِع هذه الدالة المتوسط الحسابي لمجموعة من القيم، حيث يمكننا في المثال الحصول على المتوسط الحسابي لإجمالي المبيعات. نلاحظ أن database وcriteria كما هما في الأمثلة السابقة؛ حيث إننا نعمل على نفس قاعدة البيانات ونفس نموذج البحث. سنحدد field بأنه "إجمالي المبيعات" للحصول على متوسط القيم لإجمالي المبيعات. سنحصل على قيمة 7627.15 وهي قيمة المتوسط الحسابي لجميع قيم إجمالي المبيعات في العمود. سنخصص البحث للحصول على إجمالي المبيعات للفرع الذي يحتوي على حرفي "غز" وقد تسبقه مجموعة من الحروف وقد تليه مجموعة من الحروف. نعبِّر عن ذلك باستخدام إشارة النجمة (غز)، وبالتالي سيبحث عن "غزة" وعن "شمال غزة". نلاحظ أن العدد الكلي لنتائج البحث هو 7، والمتوسط الحسابي هو 11121.86 كما في الشكل التالي. 4. دالة Dsum تُرجِع هذه الدالة مجموع مجموعة من القيم، حيث سنستخدم في هذا المثال القيمة 4 لتحديد العمود الرابع بدلًا من تحديد نص "إجمالي المبيعات"، وكلاهما يعطي نفس النتيجة النهائية. سنلاحظ أن المجموع الكلي لإجمالي المبيعات هو 99153، وبإمكاننا التأكد منه باستخدام دالة sum. نخصِّص البحث للحصول فقط على مجموع المبيعات التي تقل قيمتها عن 1000، فسنحصل على نتيجة 600 وهي مجموع القيمتين 100 و500 لمنطقتي رفح كما يتضح في الشكل التالي. 5. دالة Dmin تُرجِع هذه الدالة أصغر قيمة ضمن مجموعة من القيم، ومكننا تطبيق الدالة للحصول على أصغر قيمة في عمود "إجمالي المبيعات". وسنطبِّق الدالة مثلما بالشكل التالي، وسنحصل على قيمة 100. يمكننا تخصيص البحث للحصول على أقل قيمة في إجمالي المبيعات في سنة 2016 فقط، وسنحصل على قيمة 3000 وهي لمنطقة خان يونس. 6. دالة Dmax تُرجِع هذه الدالة أكبر قيمة ضمن مجموعة من القيم، ويمكننا تطبيق الدالة للحصول على أكبر قيمة في عمود "إجمالي المبيعات". وسنطبِّق الدالة كما بالشكل التالي وسنحصل على قيمة 65263. يمكننا تخصيص البحث للحصول على أكبر قيمة في إجمالي المبيعات في سنة 2016 فقط، حيث سنحصل على قيمة 5000 وهي لمنطقة خان يونس. نلاحظ وجود قيمتين لإجمالي المبيعات في 2016 وهما 3000 و5000، وعند الموازنة بينهما للحصول على القيمة الكُبرَى، فسنحصل على القيمة 5000. 7. دالة Dproduct تُرجِع هذه الدالة حاصل الضرب لمجموعة من القيم التي نحددها. فإذا أردنا الحصول على حاصل ضرب قيم "إجمالي المبيعات" فسنحصل على القيمة التالية. يمكننا تحديد ثلاثة شروط، وهي: فرع شمال غزة والسنة أقل من 2019، وإجمالي مبيعات أكبر من 500، وحساب حاصل ضرب إجمالي المبيعات للسجلات التي تحقق الشروط الثلاثة. لدينا سجلان يحققان الشروط الثلاثة، وهما سجل رقم 2 وسجل رقم 10، أي سنحسب حاصل ضرب 2500 و1203، وسنحصل على قيمة 3007500. 8. دالة Dget تُرجِع هذه الدالة سجلًّا واحدًا يحقق الشرط المطلوب. ولهذا سنُدخِل قيمة إجمالي المبيعات، ونطلب من الدالة استرجاع اسم الفرع الذي يحقق هذه القيمة. أي أننا إذًا سنحدد "الفرع" ضمن field في الدالة وهي القيمة التي نريد استرجاعها. سنُدخِل إجمالي مبيعات 1555 مثلًا، وسنحصل على "غزة"؛ حيث تعود قيمة المبيعات هذه لفرع غزة. يمكننا تغيّير قيمة إجمالي المبيعات وعندها سنلاحظ الفرق في النتيجة. خاتمة لقد تعرفنا في هذا الدرس على مجموعة من دوال قواعد البيانات في الإكسل 365 أونلاين. حيث تُستخدم هذه الدوال لتصفية وتلخيص القيم في قواعد البيانات التي تتكون من مجموعة من السجلات والحقول المترابطة مع بعضها البعض. ويمكننا الآن إنشاء قاعدة البيانات على الإكسل؛ ومن ثم إنشاء نموذج البحث واستخدام الدوال المختلفة للحصول على مجموع القيم أو عددها أو الحصول على أكبر قيمة أو أقل قيمة، كما يمكننا حساب المتوسط الحسابي لمجموعة من الأرقام. كل هذه العمليات يمكن إجراؤها ضمن الشروط التي نحددها، وسنحصل على النتيجة بسهولة وسرعة باستخدام الدوال البسيطة. اقرأ أيضًا مدخل إلى تطبيق مايكروسوفت أوفيس إكسل 365 أونلاين دوال التاريخ والوقت الأكثر استخداما في مايكروسوفت إكسل أونلاين 365 تبويب إدراج ومزايا المشاركة والتعليقات في مايكروسوفت إكسل أونلاين 365
  12. يحتوي برنامج الإكسل على مئات الدوال التي نحتاجها في حياتنا في مختلف المجالات، مثل دوال النصوص ودوال الرياضيات ودوال الإحصاء ودوال قواعد البيانات، وكذلك دوال التاريخ والوقت. سنتحدث في هذا المقال عن مجموعة من دوال التاريخ والوقت في الإكسل. ولاستيعاب وفهم الدوال بسهولة، سنطبِّق المثال التالي بالإجابة على مجموعة من الأسئلة: ما هو تاريخ اليوم؟ ما هو تاريخ اليوم مع التوقيت الآن؟ ما هو الشهر الحالي من السنة؟ ما هو تاريخ اليوم من الشهر؟ ما هي السنة الحالية؟ هل يمكن تحديد قِيَم يوم وشهر وسنة، ومن ثم الحصول على قيمة تاريخ كاملًا في خلية واحدة بصيغة تاريخ؟ هل يمكن الحصول على قيمة تاريخ مستقبلي؟ على سبيل المثال: ما هو التاريخ بعد شهرين من اليوم؟ ما هو اليوم من أيام الأسبوع؟ هل يمكن تحديد قِيَم الساعة والدقيقة والثواني والحصول على قيمة الساعة كاملةً مع تحديد هل هي صباحًا أم مساءً؟ هل يمكن حساب عدد أيام عملك عن طريق تحديد تاريخ بدء عملك ونهايته؟ للإجابة على الأسئلة السابقة، سنستخدم دوال التاريخ والوقت. أدرج الجدول التالي في ورقة العمل في الإكسل، بعد ذلك نسِّقها، وابدأ بتطبيق الخطوات لكل دالة للحصول على النتائج. أساسيات التعامل مع دوال التاريخ والوقت بدايةً يجب أن تعلم بعض أساسيات التعامل مع دوال التاريخ والوقت في الإكسل، وهي: التأكد من أن صيغة الخلية التي تحتوي على تاريخ هي صيغة "تاريخ" وليست صيغة "عام"، وذلك من خيارات تنسيق الأرقام في تبويب الصفحة الرئيسية. يمكنك تغيير طريقة عرض التاريخ باختيار "تنسيقات إضافية للأرقام" من خيار "تنسيق الأرقام". ضمن فئة "التاريخ"، تأكد من اختيار التقويم الميلادي من خيار "نوع التقويم"، وبإمكانك تغييره إذا أردت استخدام التقويم الهجري. كما يمكنك اختيار الصيغة المناسبة للتاريخ مثل اختيار تاريخ قصير مشابه لـ 7/19/2021، أو تاريخ طويل مثل 19 يوليو 2021. كذلك بإمكانك اختيار عرض التوقيت أو إخفائه، إلى جانب عرض خيارات الصباح am والمساء pm أو إخفاؤها. يتعامل الإكسل مع أيام الأسبوع من القيمة 1 حتى القيمة 7، حيث يَعُد الإكسل يوم "الأحد" هو اليوم رقم "1" في الأسبوع، بينما يُعَد يوم "السبت" هو اليوم الأخير في الأسبوع وقيمته "7". حيث: يتعامل الإكسل مع الشهور من القيمة 1 حتى القيمة 12ـ أي أن شهر يناير هو شهر 1، وشهر ديسمبر هو شهر 12. يتعامل الإكسل مع أيام الشهر من القيمة 1 حتى القيمة 31. يتعامل الإكسل مع الساعات من القيمة 0 حتى القيمة 23. يتعامل الإكسل مع الدقائق من القيمة 0 حتى القيمة 59. يتعامل الإكسل مع الثواني من القيمة 0 حتى القيمة 59. سنبدأ الآن بتطبيق المثال باستخدام دوال التاريخ والوقت، فللحصول على تاريخ اليوم كاملًا (اليوم والشهر والسنة)، أو جزء منه مثل الحصول على اليوم فقط أو الشهر فقط، سنستخدم دوال التاريخ المختلفة. أدرج دالةً من تبويب إدراج واختر فئة "التاريخ والوقت" للوصول إلى كل دوال التاريخ والوقت. 1. دالة today تُرجِع هذه الدالة التاريخ الحالي بصيغة تاريخ، فهي لا تأخذ أي قيم، بل تكتفي فقط بإرجاع التاريخ الحالي. وهنا اكتب الدالة في خلية النتيجة ولاحظ النتيجة التي ستظهر، فإذا كان التاريخ الذي نطبِّق فيه المثال هو 19 يوليو 2021، فستظهر النتيجة بهذا التاريخ. وأنت ستُظهر النتيجة لديك بالتاريخ الذي تطبِّق فيه المثال. يمكنك تغيير التاريخ من تاريخ قصير إلى تاريخ طويل، وذلك من إعدادات التاريخ، حيث ستحصل على 19 يوليو 2021 بدلًا من 7/19/2021. 2. دالة now تُرجِع هذه الدالة التاريخ والوقت الحاليين بتنسيق الوقت والتاريخ. لاحظ أن هذه الدالة لا تستقبل أي قِيَم، بل تُرجع قيمة التاريخ والوقت فقط. يمكنك تخصيص الناتج للحصول فقط على الوقت وإخفاء التاريخ، كما يمكنك إضافة خيار عرض ص (صباحًا) أو م (مساءً)، وذلك من قائمة تنسيق الأرقام – فئة مخصص. 3. دوال month وday وyear للحصول على تاريخ اليوم من حيث الشهر فقط (أي: يوليو)، أو اليوم فقط (أي: 19)، أو السنة فقط (أي: 2021)؛ استخدِم دالة month للحصول على الشهر ودالة day للحصول على اليوم ودالة year للحصول على السنة. تستقبل هذه الدوال التاريخ، وتُرجع القيمة المطلوبة سواءً كانت يومًا أو شهرًا أو سنة. يمكنك تطبيق هذه الدالة على أي تاريخ في ورقة العمل وليس فقط على تاريخ اليوم، مثل التاريخ 31 يناير 2022، ويمكنك الحصول على السنة فقط بتحديد التاريخ داخل الدالة فتصبح كالتالي: 4. دالة date هذه الدالة تعمل عكس الدوال السابقة، أي أنها تستقبل ثلاث قِيَم (اليوم والشهر والسنة)، وتُرجع قيمة التاريخ بصيغة تاريخ. بينما الدوال الثلاثة السابقة day وmonth وyear تستقبل التاريخ وتُرجع القيمة (اليوم أو الشهر أو السنة). سنعطي هذه الدالة قيمة 19 لليوم، وقيمة 7 للشهر (أي: يوليو)، وقيمة 2021 للسنة. وللحصول على التاريخ كاملًا في خلية واحدة بصيغة تاريخ؛ تأخذ الدالة القيم بالترتيب التالي (إجباريًّا)، ولا يمكن تغيير الترتيب وإلَّا ستحصل على تاريخ خاطئ: القيمة الأولى: السنة القيمة الثانية: الشهر القيمة الثالثة: اليوم 5. دالة edate تُستخدم هذه الدالة للحصول على تاريخ مستقبَلي، وذلك بتحديد عدد الشهور التي تريد إضافتها على التاريخ. وتأخذ هذه الدالة قيمتين أولاهما هي التاريخ المحدد، أما الثانية فهي عدد الشهور التي نريد إضافتها. ستلاحظ أن النتيجة هي تاريخ 19/9/2021 وهو تاريخ اليوم مُضافًا إليه شهران. لقد طبَّقنا في المثال السابق إضافة شهرين على تاريخ اليوم، حيث يمكنك إضافة شهور على تاريخ محدد مسبقًا في ورقة العمل وليس فقط على تاريخ اليوم، كما يمكنك تحويل التاريخ لتاريخ طويل إذا كنت ترغب بعرض اسم الشهر واليوم من أيام الأسبوع. 6. دالة weekday تُستخدم دالة weekday لتحديد رقم اليوم من أيام الأسبوع. وبما أن اليوم الإثنين فإن نتيجة الدالة ستكون الرقم 2 كما ذكرنا مسبقًا، لأن الإكسل يَعُد يوم الأحد هو اليوم الأول من أيام الأسبوع ورقمه 1، وبالتالي فإن يوم الإثنين رقمه 2. يمكننا تحويل الرقم السابق (2) إلى نص (الإثنين) باستخدام الدالة النصية text. إذا كنت تستخدم التاريخ باللغة الإنجليزية، فستحصل على النتيجة التالية Mon: إذا غيَّرت صيغة الدالة، واستبدلت ddd بـ dddd أي أربعة حروف بدلًا من ثلاثة، فستحصل على كلمة Monday كاملة لا مختصرة. 7. دالة time سنحدد القِيَم التالية في صورة أرقام، على النحو: الساعة الثالثة، والدقيقة الثلاثون، وخمسة وخمسون ثانية. يمكننا الحصول على الساعة بالضبط حسب القِيَم السابقة وذلك باستخدام دالة time، حيث تستقبل هذه الدالة ثلاث قِيَم بالترتيب وهي الساعة والدقيقة والثانية، وهنا سنحصل على الساعة 03:30 ص. 8. دالة days تُستخدم هذه الدالة لإرجاع عدد الأيام بين تاريخين، وعليه تستقبل الدالة تاريخين على الترتيب، تاريخ النهاية وتاريخ البداية وتحسب عدد الأيام بين هذين التاريخين. فلنفترض أنك تريد حساب عدد أيام عملك، وكان تاريخ بداية عملك 1 يناير 2021 بينما تاريخ نهاية عملك 31 مارس 2021. طبِّق الدالة على تاريخي البداية والنهاية، حيث ستجد أن عدد أيام عملك 89 يومًا، وهنا غيِّر تاريخ البداية وتاريخ النهاية لقِيَم أخرى ولاحظ الفرق. لقد تعرَّفنا في هذه المقالة على مجموعة من الدوال الخاصة بالتاريخ والوقت في الإكسل، مثل دالة الحصول على التاريخ الحالي today ودالة الحصول على التاريخ والوقت الحاليين now، وكذلك دوال الحصول على اليوم والشهر والسنة وأيام الأسبوع من تاريخ محدد، وهي day وmonth وyear وweekday على التوالي. كما تعلَّمنا كيفية الحصول على التاريخ كاملًا إذا كانت لدينا القِيَم المختلفة لليوم والشهر والسنة وذلك باستخدام دالة date. وتعلَّمنا أيضًا كيفية تحديد تاريخ مستقبَلي موازنةً بتاريخ معين، وبإمكاننا تحويل القيمة العددية لأيام الأسبوع لقيمة نصية عربية أو إنجليزية باستخدام الدالة النصية text، كما تعرَّفنا على دالة days والتي تحسب عدد الأيام بين تاريخين وذلك بتحديد تاريخ البداية وتاريخ النهاية. اقرأ أيضًا دوال التاريخ الأساسية في اكسل دوال الوقت الأساسية في اكسل كيفية تطبيق خاصية التحقق من صحة البيانات على الخلايا في اكسل 7 دوال لتطبيق إجراءات مختلفة على النصوص في اكسل
  13. سنتعرف في هذه المقالة على الدوال الشائعة في إكسل أونلاين 365. ولإدراج دالة؛ فانقر على أيقونة الدالة في تبويب إدراج. بعد النقر عليها سيظهر لك مربع حوار يطلب منك اختيار فئة الدالة وانتقاء الدالة التي ستستخدمها، وستظهر لك تلقائيًا فئة "شائعة الاستخدام" وهي الدوال شائعة الاستخدام في الإكسل، والتي تتضمن فئات دوال عديدة مثل الدوال المالية ودوال النصوص ودوال المالية وغيرها. سنشرح في هذه المقال فئةً "شائعة الاستخدام". ما هي الدوال شائعة الاستخدام؟ SUM: مجموع القيم في نطاق يحتوي على الأرقام. AVERAGE: المتوسط الحسابي في نطاق يحتوي على الأرقام. COUNT: حساب عدد الخلايا الموجودة في نطاق يحتوي على أرقام. MAX: أكبر قيمة موجودة في مجموعة من القيم في نطاق يحتوي على أرقام. MIN: أصغر قيمة موجودة في مجموعة من القيم في نطاق يحتوي على أرقام. STDEV.S: تقدير الانحراف المعياري استنادًا إلى نموذج. IF: التأكد من تحقق الشرط وإرجاع قيمة معينة عند TRUE (تحقق الشرط)، وأخرى عند FALSE (عدم تحقق الشرط). SUMIF: جمع الخلايا المحددة بشرط أو معيار معطى. COUNTIF: حساب عدد الخلايا في نطاق يحقق الشرط أو المعيار المعطى. VLOOKUP: البحث عن قيمة في العمود في أقصى اليسار من جدول، ثم إرجاع قيمة في نفس الصف من عمود يحدده المستخدم. لفهم هذه الدوال، سنطبّقها على المثال التالي من البيانات: المطلوب، حساب القيم التالية: مجموع الرسوم الدراسية للطلاب. المعدل العام لمعدلات الطلبة. عدد الطلاب. أعلى معدل جامعي. الانحراف المعياري للمعدلات. الحالة لكل طالب (الطالب ناجح إذا كان معدله 50 فما فوق). مجموع الرسوم الدراسية (الأكبر من 500). عدد الطلاب من "جامعة الأزهر". البحث عن المعدل الجامعي لأي طالب عن طريق معرفة رقم هويته. في البداية يجب أن تتأكد من وضع المؤشر داخل الخلية التي ستظهر فيها نتيجة الدالة. 1. مجموع الرسوم الدراسية للطلاب لحساب مجموع الرسوم الدراسية للطلاب سنتبع الخطوات التالية: للحصول على مجموع الرسوم الدراسية سنستخدم دالة Sum. نضع المؤشر داخل الخلية M2. من تبويب إدراج سنختار دالة. نختار دالة Sum. لاحظ أن الدالة تطلب مجموعة من الأرقام number 1 وnumber 2 لتجمعهم. نحدد عمود الرسوم الدراسية والذي يمثّل من الخلية G2 حتى الخلية G16. يظهر مجموع الرسوم الدراسية والذي يساوي 7393. 2. المعدل العام لمعدلات الطلبة (الوسط الحسابي) لحساب المعدل العام لمعدلات الطلبة سنتبع الخطوات التالية: للحصول على مجموع الرسوم الدراسية سنستخدم دالة Average. نضع المؤشر داخل الخلية M3. من تبويب إدراج نختار دالة. نختار دالة Average. لاحظ أن الدالة تطلب مجموعة من الأرقام number 1 وnumber 2 لحساب الوسط الحسابي. نحدد عمود الرسوم الدراسية والذي يمثّل من الخلية F2 حتى الخلية F16. يظهر الوسط الحسابي لمعدلات الطلبة والذي يساوي 69.5. حاول تطبيق ذات الدالة لحساب المتوسط الحسابي للرسوم الدراسية للطلاب. 3. عدد الطلاب لحساب عدد الطلاب سنتبع الخطوات التالية: للحصول على عدد الطلاب سنستخدم دالة Count. نضع المؤشر داخل الخلية M4. من تبويب إدراج سنختار دالة. نختار دالة Count. لاحظ أن الدالة تطلب مجموعة من القيم value 1 وvalue 2 لعدّهم. نحدد عمود الرسوم الدراسية والذي يمثّل من الخلية F2 حتى الخلية F16، ويمكنك أيضًا تحديد عمود المعدل الجامعي بدلًا من عمود الرسوم الدراسية، لكن انتبه إلى أن دالة Count تَعُد فقط الخلايا التي تحتوي على أرقام، فلا يمكنك مثلًا تحديد عمود الاسم. يظهر عدد الطلاب والذي يساوي 15. 4. أعلى معدل جامعي لحساب أعلى معدل جامعي سنتبع الخطوات التالية: للحصول على أعلى معدل جامعي سنستخدم دالة Max. نضع المؤشر داخل الخلية M5. من تبويب إدراج، نختار دالة. نختار دالة Max. لاحظ أن الدالة تطلب مجموعة من الأرقام number 1 وnumber 2 لموازنتهم وإرجاع أعلى قيمة فيهم. نحدد عمود المعدل الجامعي والذي يمثّل من الخلية F2 حتى الخلية F16. سيظهر أعلى معدل جامعي والذي يساوي 94.2. 5. أقل معدل جامعي لحساب أقل معدل جامعي سنتبع الخطوات التالية: للحصول على أقل معدل جامعي سنستخدم دالة Min. نضع المؤشر داخل الخلية M6. من تبويب إدراج، نختار دالة. نختار دالة Min. لاحظ أن الدالة تطلب مجموعة من الأرقام number 1 وnumber 2 لموازنتهم وإرجاع أقل قيمة فيهم. نحدد عمود المعدل الجامعي والذي يمثّل من الخلية F2 حتى الخلية F16. يظهر أعلى معدل جامعي والذي يساوي 50.98. 6. الانحراف المعياري للمعدلات لحساب الانحراف المعياري للمعدلات سنتبع الخطوات التالية: للحصول على الانحراف المعياري للمعدلات سنستخدم دالة STEDV.S. نضع المؤشر داخل الخلية M7. من تبويب إدراج، نختار دالة. نختار دالة STEDV.S. لاحظ أن الدالة تطلب مجموعة من الأرقام number 1 وnumber 2 لحساب الانحراف المعياري. نحدد عمود المعدل الجامعي والذي يمثّل من الخلية F2 حتى الخلية F16. يظهر الانحراف المعياري للمعدلات والذي يساوي 50.98. 7. مجموع الرسوم الدراسية لحساب مجموع الرسوم الدراسية الأكبر من 500، سنتبع الخطوات التالية: للحصول على مجموع الرسوم الدراسية (الأكبر من 500) سنستخدم دالة SumIf، حيث أننا هنا نريد مجموع قيم لكن بشرط معين. نضع المؤشر داخل الخلية M7. من تبويب إدراج، نختار دالة. نختار دالة SumIf. ستلاحظ أن هذه الدالة تحتاج قيمتين، نطاق الخلايا التي تريد جمعها (عمود الرسوم الدراسية) وهي range، والشرط الذي ستحدده والشرط هنا (الأكبر من 500) وهو criteria، ويُفصل بينهم بالفاصلة (,). نحدد عمود الرسوم والذي يمثّل من الخلية G2 حتى الخلية G16، ونضيف الشرط “>500”. لا تنسَ علامات التنصيص عند إضافة الشرط. يظهر مجموع الرسوم الدراسية (الأكبر من 500) والذي يساوي 5167. 8. عدد الطلاب من جامعة الأزهر لحساب عدد الطلاب الذين يدرسون في جامعة الأزهر، سنتبع الخطوات التالية: للحصول على عدد الطلاب من جامعة الأزهر سنستخدم دالة CountIf، حيث أننا هنا نريد عدد مجموعة من القيم، لكن بشرط معين. نضع المؤشر داخل الخلية M8. من تبويب إدراج، نختار دالة. نختار دالة CountIf. ستلاحظ أن هذه الدالة تحتاج قيمتين، نطاق الخلايا التي تريد عددها (الجامعة/الكلية) وهي range، والشرط الذي ستحدده والشرط هنا "جامعة الأزهر" وهو criteria، ويُفصل بينهم بالفاصلة (,). نحدد عمود الرسوم الذي يمثّل من الخلية E2 حتى الخلية E16، ونضيف الشرط "جامعة الأزهر". يظهر عدد الطلاب من جامعة الأزهر والذي يساوي 2. 9. الحالة لكل طالب لتحديد حالة كل طالب (راسب أو ناجح)، سنتبع الخطوات التالية: لتحديد حالة كل طالب سنستخدم دالة If. إذا كان معدل الطالب أكبر من أو يساوي 50 فإن الطالب ناجحًا، غير ذلك فإن الطالب يُعَد راسبًا. نضع المؤشر داخل أول خلية في عمود الحالة وهو H2. لاحظ هنا أننا سنحصل على حالة أول طالب فقط، ثم سنطبّق على باقي الطلبة. من تبويب إدراج، نختار دالة. نختار دالة If. ستلاحظ أن هذه الدالة تحتاج 3 قيم: Logical test: هو الشرط الذي يوازن بين قيمتين، ففي هذا المثال مثلًا، سوف نوازن معدل الطالب بالقيمة 50، فهل معدل الطالب أكبر من أو يساوي 50 أم لا؟ وذلك لتحديد الطالب ناجحًا أم راسبًا. والشرط هنا إذًا هو معدل الطالب >=50 ونكتبها كالتالي F2>=50. F2 هي الخلية التي تحتوي على معدل أول طالب في ورقة العمل. Value if true: هي القيمة التي ستُرجع في الخلية إذا تحقق الشرط. والقيمة هنا هي "ناجح". Value if false: هي القيمة التي ستُرجع في الخلية إذا لم يتحقق الشرط. والقيمة هنا هي "راسب". سنحصل على حالة أول طالب وهي "ناجح". لتطبيق الدالة على باقي الطلبة ومعرفة حالتهم؛ ضع المؤشر على الخلية واسحب المربع الأخضر للأسفل لتطبيق الدالة على باقي الخلايا، وستلاحظ أن كافة الطلبة حالتهم "ناجح". تتميّز دول الإكسل، بأنها ديناميكية أي أن ناتجها يتغير بتغيّر قيم الخلايا. حاوِل تغيير المعدل الجامعي لأول ثلاثة طلاب في ورقة العمل للقيم التالية 40 و50 و30، ولاحظ تغيّر نتيجة الحالة. 9. البحث عن المعدل الجامعي لأي طالب عن طريق معرفة رقم هويته أشهر دوال البحث في الإكسل هي دالة Vlookup. لاستخدام هذه الدالة يجب أن تكون القيمة التي تميّز البيانات (القيمة الفريدة التي لا تتكرر) موجودةً في العمود الأول من ورقة العمل، وفي المثال التالي القيمة المميّزة للطالب في مثالنا هي رقم الهوية. لإنشاء دالة البحث سنتبع الخطوات التالية: أنشئ ورقة عمل جديدة وانسخ فيها البيانات على أن يكون عمود رقم الهوية هو العمود الأول في ورقة العمل. افترض أن العمود الأول في ورقة العمل (رقم الهوية) هو عمود رقم 1، والعمود الثاني في ورقة العمل (الاسم الأول) هو عمود رقم 2، وهكذا. أنشئ نموذج البحث الخاص بك، والذي سنبحث فيه عن المعدل الجامعي لأي طالب بمعرفة رقم هويته. تُعَد خلية رقم الهوية K4 هي الخلية التي سنكتب فيها رقم الهوية الذي نبحث عنه، وبالتالي لا نُدرج فيها دالة؛ أما خلية المعدل الجامعي فهي التي ستظهر تلقائيًا عند إدخال رقم الهوية. وبالتالي سنُدرج الدالة في خلية المعدل الجامعي وهي L4. نضع المؤشر داخل خلية L4. من تبويب إدراج، نختار دالة. نختار دالة Vlookup. ستلاحظ أن هذه الدالة تحتاج 4 قيم: قيمة البحث Lookup value: القيمة التي تريد البحث عنها والتي تسمى قيمة البحث، وهنا هي خلية رقم الهوية K4. قيمة البحث Table array: النطاق الذي تقع فيه قيمة البحث. تذكّر أنه يجب أن تكون قيمة البحث دائمًا في العمود الأول في نطاق الدالة لكي تعمل بطريقة صحيحة. وهنا نطاق البيانات هو A2:I6. لاحظ أن عناوين الجدول ليست ضمن النطاق. رقم العمود في النطاق Col index num: وهو رقم العمود في النطاق الذي يحتوي على القيمة المرجعة. العمود الذي يحتوي على القيمة المرجعة هو (المعدل الجامعي)، ورقمه 6. بحث المدى Range lookup: يمكنك تحديد TRUE إذا كنت تريد تطابقًا تقريبيًا للقيمة المرجحة، أو FALSE إذا كنت تريد تطابقًا تامًا. إذا لم تحدد أي شيء فستكون القيمة الافتراضية هي TRUE. ستلاحظ أن نتيجة الدالة هي #N/A في حال كانت خلية رقم الهوية فارغة. أدخل رقم هوية أحد الطلاب، وستلاحظ ظهور معدله الجامعي في خلية المعدل الجامعي. تعرفنا في هذه المقالة على الدوال الشائعة في إكسل أونلاين 365 وهي Sum وAverage وCount وSumIf وCountIf وVlooup وIf وMin وMax وSTEDV.S، كما تعرفنا على فائدة كل دالة منهم وطريقة كتابتها والعناصر التي تحتويها. وبهذا بات بإمكانك الآن استخدام هذه الدوال مع بياناتك للحصول على نتائج سريعة لتقاريرك، مثل مجموع قيم معينة وأعلى قيمة وأقل قيمة، والبحث عن قيمة محددة والمتوسط الحسابي، وعدد قيم وعدد قيم حسب شرط محدد. اقرأ أيضًا مدخل إلى تطبيق مايكروسوفت أوفيس إكسل 365 أونلاين تبويب إدراج ومزايا المشاركة والتعليقات في مايكروسوفت إكسل أونلاين 365 7 دوال لتطبيق إجراءات مختلفة على النصوص في اكسل دوال الوقت الأساسية في اكسل
×
×
  • أضف...