/**
* Рассчитывает кусочно-константную функцию
*
* @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)
=query(IMPORTRANGE("https://docs.google.com/spreadsheets...";"'3.0 Сделки GF'!A1:Z"); "select * where Col6 contains 'К1П1'")
function print(a, offset=0){
let out="";
let offsetText = "\t".repeat(offset);
if (Array.isArray(a)){
for(x in a){
out+=`\n${offsetText}${a[x]}`;
};
}else{
for(x in a){
out += `\n${offsetText}${x}:`;
out += print(a[x], offset+1);
};
};
return out;
};
/*
console.log(print(a))
большой 1:
средний 1 1:
маленький 1 1 1
маленький 1 1 2
средний 1 2:
маленький 1 2 1
большой 2:
средний 2 1:
маленький 2 1 1
маленький 2 1 2
маленький 2 1 3
*/
const deleteFirstElemsCount = 2;
let elems = Array.from(document.querySelectorAll("table tr") || []);
elems.forEach((elem,i)=>{
if(i<deleteFirstElemsCount){
elem.remove();
};
});