从 google sheet 中的范围逐步生成 high/low 值
Make the high/low values in step wise from a range in google sheet
需要 google 应用脚本来逐步生成从范围单元格值中获取的数字数组。示例假设从 A 列中获取的单元格值如下:
A1 1
A2 4
A3 2
A4 1
A5 4
B 列中的结果单元格值应如下所示:
B1 1
B2 1
B3 2
B4 2
B5 3
B6 3
(B7 4)
(B8 4)
B9 3
B10 3
(B11 2)
(B12 2)
(B13 1)
(B14 1)
B15 2
B16 2
B17 3
B18 3
(B19 4)
(B20 4)
逻辑是使每个最近的 high/low 个数字从以前的数字 adding/subtracting 乘以 1 直到通过相同的两次输入达到最近的数字以逐步进行。在结果 B 列中,括号中的数字是 A 列的单元格值,而不是括号中的数字是按逻辑添加的新数字。
描述
我相信你想要的是在 2 个值之间,根据 2 个值之间的差异在它们之间递增 +1 或 -1。
脚本
function test() {
try {
let sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Test");
let values = sheet.getDataRange().getValues();
let result = [values[0][0],values[0][0]];
for( let i=0; i<values.length-1; i++ ) {
let diff = values[i+1][0]-values[i][0];
let inc = diff < 0 ? -1 : 1;
diff = Math.abs(diff);
let current = values[i][0];
for( let j=0; j<diff; j++ ) {
current = current+inc;
result.push(current,current);
}
}
result = result.map( item => [item] ); // turn result into 2D array
sheet.getRange(1,2,result.length,1).setValues(result);
}
catch(err) {
console.log(err);
}
}
屏幕截图
需要 google 应用脚本来逐步生成从范围单元格值中获取的数字数组。示例假设从 A 列中获取的单元格值如下: A1 1 A2 4 A3 2 A4 1 A5 4 B 列中的结果单元格值应如下所示: B1 1 B2 1 B3 2 B4 2 B5 3 B6 3 (B7 4) (B8 4) B9 3 B10 3 (B11 2) (B12 2) (B13 1) (B14 1) B15 2 B16 2 B17 3 B18 3 (B19 4) (B20 4) 逻辑是使每个最近的 high/low 个数字从以前的数字 adding/subtracting 乘以 1 直到通过相同的两次输入达到最近的数字以逐步进行。在结果 B 列中,括号中的数字是 A 列的单元格值,而不是括号中的数字是按逻辑添加的新数字。
描述
我相信你想要的是在 2 个值之间,根据 2 个值之间的差异在它们之间递增 +1 或 -1。
脚本
function test() {
try {
let sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Test");
let values = sheet.getDataRange().getValues();
let result = [values[0][0],values[0][0]];
for( let i=0; i<values.length-1; i++ ) {
let diff = values[i+1][0]-values[i][0];
let inc = diff < 0 ? -1 : 1;
diff = Math.abs(diff);
let current = values[i][0];
for( let j=0; j<diff; j++ ) {
current = current+inc;
result.push(current,current);
}
}
result = result.map( item => [item] ); // turn result into 2D array
sheet.getRange(1,2,result.length,1).setValues(result);
}
catch(err) {
console.log(err);
}
}
屏幕截图