Вот простой подход.Он не имеет дело с ячейкой, содержащей несколько терминов или с термином, встроенным в другое слово.например.Если бы термин был see
, то seething
также соответствовал бы.
function findTerms() {
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
// Key-value pairs of a term to look up and a value to display
var pairs = [
["from", "to"],
["this", "that"],
["...", "..."]
];
var inspectCol = 1; // The column you want to look in
var resultsCol = 2; // The column to write results to
// loop over the rows of data
for(var i=0; i < data.length; i++){
// loop over the terms and values
for(var n in pairs){
var term = pairs[n][0];
var val = pairs[n][1];
// if the specified column in the current row contains the current term
if(data[i][inspectCol-1] && data[i][inspectCol-1].indexOf(term) != -1){
// write val to the results column
sheet.getRange(i+1, resultsCol).setValue(val);
}
}
}
}
Чтобы придумать и сделать что-то вроде поиска только полных слов, используйте match()
и регулярные выражения вместо indexOf()
.