Поиск по таблице Google Script

202
06 февраля 2022, 10:20

Доброго времени суток.

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

Дело в том что у меня есть таблица (Google), в которой на одном листе мне нужно найти все значения по тексту "al" и вставить ссылку на ячейки, (где попадается это значение), во второй лист.

function selectText(){ 
  var ss = SpreadsheetApp.getActiveSpreadsheet() 
  var sheet = ss.getActiveSheet() 
  var sheet2 = ss.getSheetByName("проверка") 
 
  var text = "al" 
  var arrData = sheet.getRange(1, 1, sheet.getLastRow(), sheet.getLastColumn()).getValues(); 
 
  for(var row = 0; row < arrData.length; row++){ 
    for(var col = 0; col < arrData[0].length; col++){ 
      if(arrData[row][col] == text){ 
        var s2 = ss.getSheetByName("проверка").getRange(1, 1, sheet2.getLastRow(), sheet2.getLastColumn()) 
        s2.setValue(arrData) 
        return 
      } 
    } 
  } 
}

Чуть выше моя попытка реализовать то, что я описал.

Заранее спасибо.

Answer 1

Мне не очень понравилось ваше задание, т.к. оно не до конца отражает суть процесса.

В общей сложности, вам необходимо перебрать значения диапазона и составить массив формул со ссылками на ячейки. Это довольно просто. Примерно так

range.getValues().forEach(
  function(row, r) {
    row.forEach(function(col, c) {
      if (patt.test(col)) {
        var nota = Utilities.formatString('%s%s', c.to26(), r + 1);
        res.push([
          Utilities.formatString(
            '=HYPERLINK("%s%s";"%s%s")',
            prefix,
            nota,
            prefixName,
            nota
          ),
          col,
        ]);
      }
    });
  }
);

Пришлось сделать красоту, чтобы формулы были как-то обозначены смыслом

Utilities.formatString(
  '=HYPERLINK("%s%s";"%s%s")',
  prefix,
  nota,
  prefixName,
  nota
)
  • Полностью рабочий пример в сниппетах
  • Видео
READ ALSO
Инициализация нескольких swiper slider

Инициализация нескольких swiper slider

на странице есть четыре слайдера, инициализирую как два разных slider1 и slider2Слайдеры под классом slider1 и slider2 по два слайдера в каждом классе,...

183
Найти объект с помощью перебора массива

Найти объект с помощью перебора массива

Есть select нужно с помощью перебора массива вывести ключ(red,blue,green) к которому относится значение select, то-есть если мы выбираем в select "Академгородок"...

98
Не компилируется build webpack

Не компилируется build webpack

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

95