
مقدمة حول أتمتة Google Sheets
يُعد Google Sheets أداة قوية بحد ذاته، لكن المهام المتكررة قد تستهلك الكثير من الوقت الثمين. يجد العديد من المحترفين أنفسهم يعيدون نفس الخطوات مرارًا مثل تنسيق التقارير، وتنظيف البيانات، وإنشاء الملخصات، أو تحديث جداول البيانات بنفس الإجراءات في كل مرة. هنا يأتي دور الأتمتة.
تتيح لك أتمتة Google Sheets باستخدام الماكرو وApps Script تسجيل الإجراءات أو كتابة نصوص برمجية بسيطة لتنفيذ المهام تلقائيًا. وبدلًا من تكرار 10 أو 20 خطوة يدويًا كل يوم، يمكنك تشغيل ماكرو أو سكربت لإتمام العمل خلال ثوانٍ.
يشرح هذا الدليل كيفية عمل الماكرو وApps Script، ومتى تستخدم كل طريقة، وكيف تبني أتمتة عملية تناسب سير العمل الحقيقي في الشركات.
فهم الماكرو في Google Sheets
الماكرو هو تسجيل للإجراءات التي تقوم بها داخل جدول البيانات. يقوم Google Sheets بتحويل هذه الإجراءات إلى كود Apps Script يمكن تشغيله لاحقًا.
تُعد الماكرو مناسبة للمهام مثل:
- تطبيق تنسيق موحد
- تنظيف البيانات أو تحويلها
- فرز المعلومات وتصفيتها
- تشغيل العمليات الحسابية المتكررة
- إعداد التقارير
مثال على استخدام الماكرو
تخيل تقرير مبيعات أسبوعي يتطلب منك:
- تثبيت صف العناوين
- تطبيق تنسيق العملة على أعمدة الإيرادات
- فرز الصفوف حسب قيمة المبيعات
- إضافة صف للمجموع
بدلًا من تكرار هذه الخطوات كل أسبوع، يمكن للماكرو تنفيذها فورًا.
كيفية تسجيل ماكرو في Google Sheets
يُعد تسجيل الماكرو أسهل طريقة للبدء في الأتمتة لأنه لا يتطلب أي معرفة بالبرمجة.
خطوات تسجيل ماكرو
- افتح ملف Google Sheets.
- انقر على Extensions في القائمة.
- اختر Macros.
- اضغط على Record Macro.
- نفّذ الإجراءات التي تريد أتمتتها.
- انقر Save عند الانتهاء.
- أعطِ الماكرو اسمًا وحدد اختصارًا اختياريًا.
بعد الحفظ، يمكنك تشغيل الماكرو في أي وقت من قائمة الماكرو أو باستخدام الاختصار المحدد.
ما الذي يحدث في الخلفية
عند تسجيل ماكرو، يقوم Google Sheets تلقائيًا بإنشاء دالة Apps Script. على سبيل المثال، قد ينتج عن ماكرو بسيط لتنسيق البيانات كود مثل:
function formatSalesReport() {
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange("A1:E1").setFontWeight("bold");
sheet.getRange("D:D").setNumberFormat("$#,##0.00");
}
يخبر هذا السكربت Google Sheets بالإجراءات التي يجب تنفيذها بالضبط.
تعديل الماكرو للحصول على تحكم أكبر
من مزايا الماكرو أنه يمكن تعديلها بعد تسجيلها. فعند فتح محرر السكربت، يمكنك تحسين الأتمتة لجعلها أكثر ذكاءً ومرونة.
فتح محرر السكربت
- انقر على Extensions
- اختر Apps Script
- اعثر على دالة الماكرو التي قمت بتسجيلها
هنا يمكنك تعديل الكود الذي تم إنشاؤه.
مثال: توسيع الماكرو
لنفترض أن الماكرو يقوم بتنسيق العمود D كعملة. إذا تمت إضافة أعمدة جديدة لاحقًا فقد لا يعمل الماكرو بشكل صحيح. يمكنك تعديل السكربت ليقوم بتنسيق عمود الإيرادات بالكامل بشكل ديناميكي:
function formatRevenue() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var lastRow = sheet.getLastRow();
sheet.getRange(2,4,lastRow-1,1).setNumberFormat("$#,##0.00");
}
هذا الإصدار يتكيف تلقائيًا مع عدد الصفوف في مجموعة البيانات.
مقدمة إلى Google Apps Script
Apps Script هو بيئة برمجة تعتمد على JavaScript ومضمنة داخل Google Workspace. يتيح لك أتمتة المهام ليس فقط في Sheets بل أيضًا في أدوات أخرى مثل Gmail وDocs وCalendar.
بينما تُعد الماكرو مفيدة للإجراءات المسجلة، يتيح Apps Script تنفيذ أتمتة أكثر تقدمًا مثل:
- إنشاء دوال مخصصة داخل جداول البيانات
- معالجة مجموعات بيانات كبيرة
- إرسال رسائل بريد إلكتروني تلقائيًا
- بناء عمليات تحقق من صحة البيانات
- تشغيل تقارير مجدولة
كتابة أول أتمتة باستخدام Apps Script
لنستعرض مثالًا بسيطًا يقوم بتنظيف البيانات المستوردة تلقائيًا.
المشكلة
يستقبل جدول البيانات ملفات بيانات تحتوي على مسافات إضافية واختلاف في كتابة الأحرف.
السكربت الحل
function cleanCustomerData() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var range = sheet.getDataRange();
var values = range.getValues();
for (var i = 1; i < values.length; i++) {
values[i][0] = values[i][0].toString().trim();
values[i][1] = values[i][1].toString().toUpperCase();
}
range.setValues(values);
}
يقوم هذا السكربت بمهمتين:
- إزالة المسافات الزائدة من العمود A
- تحويل النص في العمود B إلى أحرف كبيرة
تشغيل الدالة ينظف مجموعة البيانات بالكامل فورًا.
إنشاء دوال مخصصة باستخدام Apps Script
يسمح Apps Script أيضًا بإنشاء صيغ خاصة بك داخل جداول البيانات.
مثال: حاسبة خصم مخصصة
function DISCOUNT(price, rate) {
return price - (price * rate);
}
بعد حفظ السكربت، يمكنك استخدامه مباشرة داخل الجدول:
=DISCOUNT(A2,0.1)
تعيد هذه الصيغة السعر بعد تطبيق خصم بنسبة 10٪.
تكون الدوال المخصصة مفيدة عندما تصبح صيغ الجداول التقليدية معقدة أو متكررة.
أتمتة المهام باستخدام المشغلات (Triggers)
تسمح المشغلات بتشغيل السكربتات تلقائيًا عند حدوث أحداث معينة.
أنواع المشغلات الشائعة
- On open – يعمل عند فتح جدول البيانات
- On edit – يعمل عند تعديل البيانات
- Time-driven – يعمل كل ساعة أو يوم أو أسبوع
- Form submit – يعمل عند وصول رد من نموذج
مثال: طابع زمني تلقائي
يضيف هذا السكربت طابعًا زمنيًا عند إدخال سجل جديد.
function onEdit(e) {
var sheet = e.source.getActiveSheet();
var range = e.range;
if (range.getColumn() == 1) {
sheet.getRange(range.getRow(), 2).setValue(new Date());
}
}
إذا تم إدخال قيمة في العمود A، يقوم السكربت تلقائيًا بإدراج التاريخ والوقت الحاليين في العمود B.
أمثلة عملية للأتمتة للمحترفين
1. تنسيق التقارير تلقائيًا
تقوم العديد من الفرق بتصدير البيانات من أنظمة أخرى إلى Google Sheets. يمكن لماكرو واحد تجهيز البيانات الخام للعرض بسرعة عبر:
- تثبيت صفوف العناوين
- تطبيق أنماط خطوط موحدة
- تحديد تنسيقات الأرقام
- ضبط عرض الأعمدة
2. سكربتات تنظيف البيانات
يمكن لـ Apps Script معالجة آلاف الصفوف بسرعة أكبر من التعديل اليدوي. على سبيل المثال يمكن للسكربتات:
- إزالة الصفوف المكررة
- توحيد كتابة النصوص
- استبدال القيم القديمة
- دمج الأعمدة في بيانات منظمة
3. تقارير ملخصة مجدولة
يمكن لمشغل يعتمد على الوقت إنشاء ملخصات تلقائيًا.
مثال على سير العمل:
- كل صباح الساعة 8
- حساب إجماليات اليوم السابق
- كتابة الملخص في ورقة لوحة معلومات
هذا يلغي الحاجة إلى الحسابات اليدوية اليومية.
4. تتبع الحالة تلقائيًا
في جداول متابعة المشاريع، يمكن للسكربتات تحديث الحالات تلقائيًا.
مثال على المنطق:
- إذا كان تاريخ الاستحقاق قبل اليوم
- وكانت الحالة ليست “Completed”
- يتم وضع الحالة “Overdue”
يساعد ذلك الفرق على تحديد المهام المتأخرة بسرعة.
أفضل الممارسات لأتمتة Google Sheets
اجعل السكربتات بسيطة
قد تصبح الأتمتة المعقدة صعبة الصيانة. حاول تقسيم السكربتات الكبيرة إلى دوال أصغر.
اختبر باستخدام بيانات تجريبية
قبل تشغيل السكربتات على مجموعات بيانات كبيرة، جرّبها على عينة صغيرة للتأكد من أنها تعمل كما هو متوقع.
استخدم أسماء دوال واضحة
أسماء مثل cleanCustomerData() أو formatMonthlyReport() تجعل فهم السكربتات أسهل لاحقًا.
وثّق السكربتات الخاصة بك
أضف تعليقات توضح ما يفعله السكربت:
// Formats revenue column as currency
function formatRevenueColumn() {
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange("D:D").setNumberFormat("$#,##0.00");
}
التوثيق الواضح مهم بشكل خاص في جداول البيانات المشتركة.
أخطاء شائعة يجب تجنبها
- تسجيل ماكرو يتضمن خطوات غير ضرورية
- تثبيت أرقام الصفوف بدل استخدام نطاقات ديناميكية
- تشغيل السكربتات دون اختبار مسبق
- الكتابة فوق البيانات عن طريق الخطأ
يساعد التخطيط الجيد على جعل الأتمتة وسيلة لزيادة الإنتاجية بدل التسبب في أخطاء.
متى تستخدم الماكرو ومتى تستخدم Apps Script
استخدم الماكرو عندما:
- تحتاج أتمتة سريعة
- تكون المهمة عبارة عن تنسيق أو إجراءات بسيطة
- لا توجد حاجة لمعرفة برمجية
استخدم Apps Script عندما:
- تتضمن الأتمتة منطقًا أو شروطًا
- تحتاج مهام مجدولة
- تحتاج إلى دوال مخصصة في الجداول
- يجب معالجة مجموعات بيانات كبيرة
في كثير من سير العمل، تكون الماكرو نقطة البداية بينما يوفر Apps Script الإمكانات المتقدمة.
أفكار ختامية
يمكن لأتمتة Google Sheets أن تبسّط العمل اليومي بشكل كبير. فمن خلال الجمع بين الماكرو وApps Script يمكن للمحترفين التخلص من المهام المتكررة وتقليل الأخطاء اليدوية والحفاظ على سير عمل منظم داخل جداول البيانات.
توفر الماكرو طريقة سهلة لتسجيل الإجراءات وإعادة تشغيلها، بينما يمنح Apps Script إمكانيات تخصيص قوية عبر الكود. حتى الأتمتة البسيطة — مثل تنسيق التقارير أو تنظيف البيانات — يمكن أن تجعل إدارة الجداول أكثر سهولة وموثوقية لاتخاذ القرارات.
إذا كنت تنفذ نفس الخطوات مرارًا داخل جدول بيانات، فهذه علامة قوية على أن المهمة قابلة للأتمتة. ابدأ بتسجيل ماكرو، ثم استكشف السكربت الناتج، ومع الوقت طوّر سير عمل أكثر تقدمًا باستخدام Apps Script.
ومع مرور الوقت ستتحول هذه التحسينات الصغيرة إلى نظام جداول بيانات أكثر كفاءة وقابلية للتوسع.
