Поиск и подсветка множества слов в таблице
У меня есть таблица, в которой с помощью скрипта мне надо найти слова из списка стоп-слов, и подсветить их в таблице. Я нашел такой скрипт, но он подсвечивает только одно слово, хотя подобных слов "Мария" много. Вопрос: как сделать чтобы подсвечивал все варианты(желательно ячейку а не само слово), и как добавить много слов к поиску +- 1000
Пример таблицы, поиск слов должен быть в столбце C и D. Столбцы вниз уходят на 2000 строк

function selectText(){
var ss = SpreadsheetApp.getActiveSpreadsheet() // SpreadsheetApp.openByUrl("URL на таблицу")
var sheet = ss.getActiveSheet() // ss.getSheetByName("Имя таблицы")
var text = "Мария" // тут должны быть все стоп-слова
var arrData = sheet.getDataRange().getDisplayValues() // sheet.getRange(1, 1, sheet.getLastRow(), sheet.getLastColumn())
for(var row = 0; row < arrData.length; row++){
for(var col = 0; col < arrData[0].length; col++){
if(arrData[row][col] == text){
sheet.getRange(row+1, col+1).setBackground("Red")
}
}
}
}
Ответы (1 шт):
Автор решения: Алексей Шебаниц
→ Ссылка
dictionary - словарь для поиска. range - диапазон поиска
function findDuplicates() {
let sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
let range = sheet.getRange(1, 1, 4, 3).getValues();
range.forEach((item, row) => {
for (let column = 0; column < item.length; column++) {
if (item[column] != "") {
// console.log(item[column], row + 1, column + 1)
dictionary.stop_words.forEach(word => {
if (item[column].toString().toLowerCase().indexOf(word.toLowerCase()) !== -1) {
console.log(true, row + 1, column + 1)
sheet.getRange(row + 1, column + 1).setFontColor("green");
}
})
}
}
})
}
let dictionary = {
"stop_words": [
"Мария",
"Петр",
"Алексей",
"Ольга"
]
}