Исключение ячеек без числовых значений из диапазона для функции приращения - PullRequest
0 голосов
/ 12 июля 2020

Итак, у меня есть эта функция, в которой я хочу добавить одно приращение к каждому числовому значению в столбце B. У меня есть это в настоящее время, которое работает, но оно также помечает один в конце каждого экземпляра возраста в моем листе. Это текущая функция:

function AgeUp(){
  var cell = SpreadsheetApp.getActiveSheet().getRange("B6:B70");
  var cellValues = cell.getValues().map(function(row) {return [row[0] + 1]}); // Modified
  cell.setValues(cellValues); // Modified
  
}

И поэтому в основном я хотел бы, чтобы она добавляла единицу ко всем в столбце B, но только если они имеют числовое значение. Как мне сделать это, исключив при этом тех, у кого нет цифр?

1 Ответ

0 голосов
/ 13 июля 2020

Я считаю, что ваша цель следующая.

  • Вы хотите добавить 1, когда значением является число.
  • Вы не хотите добавлять 1, когда значение НЕ является числом.

Точка модификации:

  • В этом случае я подумал, что можно использовать isNaN. Это используется в l oop из map.

Когда ваш скрипт изменяется, он становится следующим:

Измененный скрипт:

От:
var cellValues = cell.getValues().map(function(row) {return [row[0] + 1]});
Кому:
var cellValues = cell.getValues().map(function([v]) {return [isNaN(v) || v == "" ? v : Number(v) + 1]});
  • В этом модифицированном скрипте, когда значение не является числом, а пустым, 1 не добавляется.

  • Если вы хотите добавить 1 для пустого значения, измените его следующим образом.

      var cellValues = cell.getValues().map(function([v]) {return [isNaN(v) ? v : Number(v) + 1]});
    

Ссылка:

...