=$A$1+ЦЕЛОЕ(СТРОКА()/2)
=ИЛИ(A1=1,1;A1=2,1)
=+ПОДСТАВИТЬ(A1;".";",")
/**
* Рассчитывает кусочно-константную функцию
*
* @author Boew Grigory (ff.nspu@gmail.com)
* @param {Array} data Входные данные (аргумент)
* @param {Array} criteria Массив критериев [от, до, значение]
* @param {any} [defaultValue=""] Значение по умолчанию - то что подставляется, если аргумент не подходит ни под один из критериев
*/
function piecewiseConstant(data, criteria, defaultValue="-"){
criteria = criteria
.map(cr=>({ // convert to objects
fromValue: cr[0],
toValue: cr[1],
value: cr[2],
}))
.filter(cr=>cr.fromValue!=="" && cr.toValue!==""); // filter empty criteria
return data.map(row=>row.map(el=>{
let foundCriteria = criteria.find(cr=>(el>=cr.fromValue)&&(el<cr.toValue));
if (foundCriteria!==undefined){
return foundCriteria.value;
}else{
return defaultValue;
};
}));
};
function mult(multipler=1.1){
let range = SpreadsheetApp.getActiveRange();
let data = range.getValues()
.map(row=>row.map(value=>((typeof value) === (typeof 1))?value*multipler:value));
range.setValues(data);
};
function onOpen(e){
SpreadsheetApp.getUi()
.createMenu("menu")
.addItem("+ 10%", "mult")
.addToUi();
};
let rightRange = SpreadsheetApp.getActiveRange().getCell(1, 2); // Соседний справа столбец
let bottomRange = SpreadsheetApp.getActiveRange().getCell(2, 1); // Строка ниже
=INDIRECT("RC[1]";0)
=INDIRECT("R[-1]C";0)
=INDIRECT("RC4";0)
=INDIRECT("R3C4";0)