Sehr erste Frage zu Stack Exchange hoffentlich macht es Sinn.Google Apps-Skript für mehrere Suchen und Ersetzen in Google Tabellen
Einige Hintergrundinformationen: Ich arbeite in einer Schulumgebung und unterstütze das Learning Support-Team bei der Erstellung besser lesbarer Stundenpläne für bestimmte Schüler.
Sie kopieren die Stundenplandaten von unserer Website, die Themencodes, Lehrernamen und Raumnummern enthalten. Es ist genau das gleiche Format wie im Bild unten - ich habe es einfach in Google Tabellen kopiert.
Ich brauche im Wesentlichen eine Bulk-Suchen und Ersetzen für alle diese Codes auszuführen, und erweitern sie so vollständig, dass ein Subjekt Code z.B. 01ENG02 wird "Englisch" und ein Lehrercode, z. JBO wird "Joe Bloggs"
Ich habe eine vollständige Liste von dem, was ich brauche die Codes zu erweitern - es ist nur, wie Sie dies am besten implementieren. Hier
ist einiger Google-Code Scripts, in denen ich auf beiden Stapel Exchange und anderen Seiten gefunden habe, die ich verwende:
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);
}
Diese perfekt funktioniert. Ich habe jedoch über 150 Personalnamen und ungefähr die gleiche Anzahl von Betreff-Codes. Der Prozess erreicht die maximale Zeit und ich bin mir sicher, dass es eine bessere Möglichkeit geben muss, dies zu programmieren.
Ich werde alternative Methoden in Betracht ziehen, nur daran denken, es muss so einfach wie möglich für die Mitarbeiter sein, die es verwenden werden.
Arbeitete wie ein Charme! – Stephen
Froh, mit der Erziehung junger Köpfe zu helfen :) –