Как установить значение в ячейках следующего столбца? - PullRequest
1 голос
/ 19 апреля 2020

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

Я хочу пометить эти записи в соответствии с исходным текстом.

Например:

TEXT (A)         TAG (B)
Facebook       Social Media
Instagram      Social Media
Stackoverflow  Good Site

Я использую код ниже.

Но это только копирует столбец A в столбец B !!

 var sheet = SpreadsheetApp.getActiveSheet();
 var range = sheet.getRange('A2:A5');
 var data = range.getValues();
 var tag = sheet.getRange('B2:B5');

  for (var i = 0; i<data.length; i++) 
  {
      if(String(data[i][1]).match(/facebook|instagram/gi))
      {
        data([i][1]='Social Media');
      }
      if(String(data[i][1]).match(/Stack/gi))
      {
        data([i][1]='Good Site');
      }

 }
  tag.setValues(data); 
}

Текущий результат:

TEXT (A)        TAG (B)
Facebook       Facebook    
Instagram      Instagram       
Stackoverflow  Stackoverflow  

Ответы [ 2 ]

2 голосов
/ 19 апреля 2020

Попробуйте это:

function myfunction() { 
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange('A2:A5');
  var data = range.getValues();
  var tag = sheet.getRange('B2:B5'); 
  var vA= tag.getValues();
  for (var i = 0; i<data.length; i++) {
    if(String(data[i][0]).match(/facebook|instagram/gi)) {
      vA([i][0]='Social Media');
    }
    if(String(data[i][0]).match(/Stack/gi)) {
      vA([i][0]='Good Site');
    }   
  }
  tag.setValues(vA); 
}
1 голос
/ 19 апреля 2020

Вы используете неправильные индексы. Массив, который возвращает getValues(), выглядит следующим образом:

[ [ 'Facebook' ], [ 'Instagram' ], [ 'Stack Overflow' ], [ '' ] ]

Таким образом, этот код должен работать:

var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange('A2:A5');
var data = range.getValues();
var tag = sheet.getRange('B2:B5');

for (var i = 0; i < data.length; i++) {
    if (String(data[i][0]).match(/facebook|instagram/gi)) {
        data[i][0] = 'Social Media';
    }
    if (String(data[i][0]).match(/Stack/gi)) {
        data[i][0] = 'Good Site';
    }

}

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