У меня есть 3 столбца с исходными значениями для умножения. Мне нужно умножить каждое значение на множитель и установить результат в следующие 3 столбца в соответствии с источниками. Я сделал скрипт для этого:
function getDefaultPor() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getActiveSheet();
let rg = sheet.getRange(2, 1, sheet.getLastRow() - 1, 3),
mp = sheet.getRange(1, 1).getValue(),
targetRange = sheet.getRange(2, 4, sheet.getLastRow() - 1, 3),
arrVals = rg.getValues();
targetRange.setValues(arrVals.map(row => row.map(col => col / mp)))
};
Я работаю ... но в тех случаях, когда ячейки исходных значений пусты (""
), моя функция возвращает соответствующие результаты как 0
. Мне нужно оставить его пустым как ""
.
Как я могу это сделать?
Обновлено с журналами:
function getDefaultPor() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getActiveSheet();
let rg = sheet.getRange(2, 1, sheet.getLastRow() - 1, 3),
mp = sheet.getRange(1, 1).getValue(),
targetRange = sheet.getRange(2, 4, sheet.getLastRow() - 1, 3),
arrVals = rg.getValues();
targetRange.setValues(arrVals.map(row => row.map(col => !isNaN(col) ? col / mp : col)));
console.log(JSON.stringify(arrVals)) // log: [[1,2,3],["","",""],[2,8,6],[4,5,7],[6,2,8],[8,8,9],[10,6,10],["","",""],[4,5,7],[6,2,8]]
let result = targetRange.getValues();
console.log(JSON.stringify(result)) //log: [[0.1,0.2,0.3],[0,0,0],[0.2,0.8,0.6],[0.4,0.5,0.7],[0.6,0.2,0.8],[0.8,0.8,0.9],[1,0.6,1],[0,0,0],[0.4,0.5,0.7],[0.6,0.2,0.8]]
};