تقنية

كيفية فرز جداول بيانات Google تلقائيًا باستخدام البرنامج النصي للتطبيقات


يحتوي جدول بيانات Google على دورات Udemy على حوالي 50 ورقة، واحدة لكل لغة برمجة، ويتم فرز الأوراق بترتيب عشوائي لذلك من الصعب العثور على ورقة معينة.

سيستغرق فرز أوراق العمل يدويًا بعض الوقت، ولكن يمكننا بسهولة أتمتة العملية باستخدام Google Apps Script والتنقل بسهولة عبر جداول البيانات الكبيرة.

أتمتة فرز الأوراق باستخدام Google Apps Script

سيقوم مقتطف الكود التالي بفرز أوراق العمل في ورقة Google تلقائيًا أبجديًا رقميًا. يمكن للبرنامج النصي ترتيب الأوراق بترتيب تصاعدي أو تنازلي بناءً على أسماء الأوراق.

للبدء، انتقل إلى الإضافات > Apps Script لفتح محرر البرامج النصية. ثم قم بنسخ ولصق الكود التالي:

const sortGoogleSheets = (ascending = true) => {
  const options = {
    sensitivity: "base",
    ignorePunctuation: true,
    numeric: true,
  };

  const compareFn = (sheet1, sheet2) => {
    return ascending
      ? sheet1.getName().localeCompare(sheet2.getName(), undefined, options)
      : sheet2.getName().localeCompare(sheet1.getName(), undefined, options);
  };

  // Get the active spreadsheet.
  const ss = SpreadsheetApp.getActiveSpreadsheet();

  ss.getSheets()
    .sort(compareFn)
    .reverse()
    .forEach(sheet => {
      ss.setActiveSheet(sheet);
      ss.moveActiveSheet(1);
    });

  // Flush the changes to the spreadsheet.
  SpreadsheetApp.flush();
};

ال compareFn تقارن الدالة ورقتين وترجع قيمة تشير إلى ما إذا كانت الورقة الأولى يجب أن تأتي قبل الورقة الثانية أو بعدها. تقوم الدالة بإرجاع القيم التالية:

  • -1 إذا كانت الورقة الأولى يجب أن تأتي قبل الورقة الثانية.

  • 1 إذا كانت الورقة الأولى يجب أن تأتي بعد الورقة الثانية.

خيارات الفرز المتقدمة

const options = {
  sensitivity: "base",
  ignorePunctuation: true,
  numeric: true,
};

ال options يحدد الكائن خيارات المقارنة المحلية. فيما يلي بعض الأشياء المهمة التي يجب معرفتها:

  • تحدد الخاصية الرقمية ما إذا كان يجب التعامل مع الأرقام كأرقام بدلاً من سلاسل. إذا تم تعيين هذه الخاصية على “خطأ”، فستأتي “الورقة 1″ و”الورقة 10” قبل “الورقة 2”.

  • تحدد خاصية “تجاهل الترقيم” ما إذا كان يجب تجاهل المسافات والأقواس وعلامات الترقيم الأخرى أثناء المقارنة. إذا تم تعيين هذه الخاصية على خطأ، فسيتم التعامل مع “الورقة 1″ و”الورقة 1” كأوراق مختلفة.

  • تحدد خاصية الحساسية ما إذا كانت المقارنة يجب أن تكون حساسة لحالة الأحرف أو غير حساسة لحالة الأحرف. قم بتعيين هذه الخاصية على “accent” للتعامل مع الأحرف الأساسية والأحرف المحركة بشكل مختلف (ستتم معاملة الورقة a والورقة à كأوراق مختلفة).

فرز جداول بيانات Google حسب التاريخ

إذا كانت أسماء أوراقك تحتوي على تواريخ، مثل “مارس 2023” أو “01/03/23″، فستحتاج إلى تحويل التواريخ إلى أرقام قبل مقارنتها.

const compareFn = (sheet1, sheet2) => {
  return ascending
    ? new Date(sheet1.getName()).getTime() - new Date(sheet2.getName()).getTime()
    : new Date(sheet2.getName()).getTime() - new Date(sheet1.getName()).getTime();
};

مراجع



Source link


اكتشاف المزيد من مرابع التكنولوجيا

اشترك للحصول على أحدث التدوينات المرسلة إلى بريدك الإلكتروني.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى

اكتشاف المزيد من مرابع التكنولوجيا

اشترك الآن للاستمرار في القراءة والحصول على حق الوصول إلى الأرشيف الكامل.

Continue reading