Предметы, которые у меня есть: большой список A строк в столбце A (несортированный)
name1 pattern1 pattern4
name5 pattern2
name4 pattern4
name2 pattern3 pattern1
name4 pattern4
Большой список B различных строковых шаблонов, которые я хочу удалить из строки в столбце A (включая знаки препинания и специальные символы)
pattern1
pattern2
pattern3
Как только я сравниваю каждый шаблон в B со строкой в A, он должен выводить:
name1 pattern4
name5
name4 pattern4
name2
name4 pattern4
Теперь у меня 2 трудности. У меня очень простой тестовый код, предполагая, что в списке только 1 шаблон, программа выполнилась без ошибок, однако в моей электронной таблице Google ничего не происходит, и я не могу объяснить, почему
function removeS(){
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange("A1:A");
var data = range.getValues();
for(i in data){
data[i].toString().replace(pattern,"");
}
}
Также, во-вторых, могу ли я выполнить свою задачу, не выполняя вложенный цикл? (Один цикл через все в столбце A и другой цикл для списка шаблонов) Это кажется таким неэффективным, поскольку я имею дело с большими данными. В макросе Excel вы можете делать что-то вроде:
With ActiveSheet.UsedRange
.Replace pattern1, ""
.Replace pattern2, ""
и заботится о необходимости использования вложенных циклов, хотя для добавления шаблонов требуется ручная работа.
pattern
не определено - person Bryan P   schedule 12.02.2014