Сканирование ячеек в одном столбце для конкретного текстового значения, а затем введите другое текстовое значение в той же строке в другом столбце - PullRequest
0 голосов
/ 21 мая 2018

У нас есть электронная таблица, в которой персонал вводит текстовые значения в одном столбце, в этих текстовых значениях есть определенные слова, за которыми мы хотим искать.

Если они появятся, мы хотим заполнить другой столбец другим словом.Например:

Col1: 'today i went to the beach'
function finds 'beach'
function enters 'sand' in same row of Col5.

Любая помощь с благодарностью.

1 Ответ

0 голосов
/ 21 мая 2018

Вот простой подход.Он не имеет дело с ячейкой, содержащей несколько терминов или с термином, встроенным в другое слово.например.Если бы термин был 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().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...