2 строка = A2 = R2C1
3 строка = B2 = R2C2
4 строка = C2 = R2C3
5 строка = A2 = R3C1
6 строка = B2 = R3C2
7 строка = C2 = R3C3
=ДВССЫЛ("R"&(ОКРУГЛВНИЗ((СТРОКА()-2)/3)+2)&"C"&(ОСТАТ(СТРОКА()-2;3)+1);0)
=LAMBDA(r;c;ДВССЫЛ("R"&r&"C"&c;0))
(
ОКРУГЛВНИЗ((СТРОКА()-2)/3)+2
;ОСТАТ(СТРОКА()-2;3)+1
)
=(IF($G1:$G<=ДатаНачала;1;0)+IF($G1:$G>=ДатаОкончания;1;0))>0
=(IF($G1:$G>=ДатаНачала;1;0)*IF($G1:$G<=ДатаОкончания;1;0))=1
const converter = {
"m": {
"cm": {k:0.01 },
"in": {k:0.254 },
"ft": {k:0.3048 },
},
"cm": {
"m": {k:100 },
"in": {k:2.54 },
"ft": {k:30.48 },
},
"in": {
"m": {k:39.3701 },
"cm": {k:0.393701 },
"ft": {k:12 },
},
"ft": {
"m": {k:3.28084 },
"cm": {k:0.328084 },
"in": {k:0.833333 },
},
};
// ...
sum = converter[unit]&&converter[unit][inUnit]&&converter[unit][inUnit]["k"] ? +inValue*converter[unit][inUnit]["k"]: NaN;
/**
* Разворачивает данные в плоскую таблицу
*
* @author Boew Grigory (ff.nspu@gmail.com)
* @param {Array} data Исходные данные
* @param {Boolean} [isRemoveNull=true] Удалять ли из выдачи пустые, нулевые и ложные значения
* @customfunction
*/
function unPivot(data, isRemoveNull=true) {
let colHeaders = [...(data[0])].slice(1);
let rowHeaders = data.slice(1).map(row=>row[0]);
let outData = [];
rowHeaders.forEach((rowHeader,ri)=>{
colHeaders.forEach((colHeader,ci)=>{
let value = data[1+ri][1+ci];
if(!isRemoveNull || value){
outData.push([rowHeader, colHeader, value]);
};
});
});
if(!outData.length){
return [[]];
};
return outData;
};