Рад помочь с воспитанием молодых умов :)

первый вопрос о Stack Exchange, так что, надеюсь, это имеет смысл.

Немного предыстории: я работаю в школьной среде и помогаю персоналу поддержки обучения в создании более удобочитаемых расписаний для определенных учащихся.

Они копируют данные расписания с нашего веб-сайта, которые содержат коды предметов, имена учителей и номера комнат. Он в том же формате, который вы видите на изображении ниже - я просто скопировал его в Google Sheets.

По сути, мне нужно выполнить массовое нахождение и замену всех этих кодов и полностью развернуть их так, чтобы код объекта, например, 01ENG02 становится «английским» и код учителя, например JBO становится "Джо Блоггс"

У меня есть полный список того, что мне нужно, чтобы коды расширились - просто, как лучше всего это реализовать.

Вот код Google Scripts, который я нашел на Stack Exchange и других сайтах, которые я использую:

function runReplaceInSheet(){
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("StudentTimetableEntry");

  // Replace Subject Names
  replaceInSheet(sheet, /\d\dART\d\d/g, "Art");
  replaceInSheet(sheet, /\d\dCCL\d\d/g, "Communication & Culture");
  replaceInSheet(sheet, /\d\dDLT\d\d/g, "Digital Technology");
  replaceInSheet(sheet, /\d\dDRA\d\d/g, "Drama");

  // Replace Staff Names  
  replaceInSheet(sheet, 'TED', 'Tahlee Edward');
  replaceInSheet(sheet, 'TLL', 'Tyrone LLoyd');
  replaceInSheet(sheet, 'TMA', 'Timothy Mahone');
  replaceInSheet(sheet, 'TQU', 'Tom Quebec');
}

function replaceInSheet(sheet, to_replace, replace_with) {
  //get the current data range values as an array
  var values = sheet.getDataRange().getValues();

  //loop over the rows in the array
  for (var row in values) {
    //use Array.map to execute a replace call on each of the cells in the row.
    var replaced_values = values[row].map(function(original_value) {
      return original_value.toString().replace(to_replace, replace_with);
    });

    //replace the original row values with the replaced values
    values[row] = replaced_values;
  }

  //write the updated values to the sheet
  sheet.getDataRange().setValues(values);
}

Это работает отлично. Тем не менее, у меня более 150 имен сотрудников и примерно столько же кодов субъектов. Процесс достигает максимального времени, и я уверен, что должен быть лучший способ кодирования этого.

Я рассмотрю альтернативные методы, просто имейте в виду, что для персонала, который будет его использовать, он должен быть максимально простым.

Ответы на вопрос(1)

Ваш ответ на вопрос