Google 张。将随机值从一个列移动到另一个列的自定义脚本
Google sheets. Custom script to move random value from on column to another
我想要一个可以将随机值从一列移动到另一列的自定义脚本
示例:
之前
之后
这能以某种方式实现吗?
尝试
function myFunction() {
const sheet = SpreadsheetApp.getActiveSpreadsheet()
.getSheetByName(`MY_SHEET_NAME`)
const colAValues = sheet.getRange(`A2:A`)
.getDisplayValues()
.filter(String)
const colBValues = sheet.getRange(`B2:B`)
.getDisplayValues()
.filter(String)
const randomIndex = Math.floor(Math.random() * colAValues.length)
const randomValue = colAValues.splice(colAValues.indexOf(randomIndex), 1)
colBValues.push(randomValue)
sheet.getRange(`A:B`).clearContent()
sheet.getRange(2, 1, colAValues.length, 1).setValues(colAValues)
sheet.getRange(2, 2, colBValues.length, 1).setValues(colBValues)
}
随机移动
function randomMove() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheetByName("Sheet0");
let col1 = sh.getRange(2, 1, sh.getLastRow() - 1).getValues().flat().filter(e => e);
let col2 = sh.getRange(2, 2, sh.getLastRow() - 1).getValues().flat().filter(e => e);
let idx = Math.floor(Math.random() * col1.length);
let v = col1[idx];
if (col1[idx]) {
col2.push(col1[idx]);
col1.splice(idx, 1);
}
if (col1.length || col2.length) {
sh.getRange(2, 1, sh.getLastRow() - 1, 2).clearContent();
}
if (col1.length) {
sh.getRange(2, 1, col1.length, 1).setValues(col1.sort((a, b) => a - b).map(e => [e]));
}
if (col2.length) {
sh.getRange(2, 2, col2.length, 1).setValues(col2.sort((a, b) => a - b).map(e => [e]));
}
}
演示:
我想要一个可以将随机值从一列移动到另一列的自定义脚本
示例:
之前
之后
这能以某种方式实现吗?
尝试
function myFunction() {
const sheet = SpreadsheetApp.getActiveSpreadsheet()
.getSheetByName(`MY_SHEET_NAME`)
const colAValues = sheet.getRange(`A2:A`)
.getDisplayValues()
.filter(String)
const colBValues = sheet.getRange(`B2:B`)
.getDisplayValues()
.filter(String)
const randomIndex = Math.floor(Math.random() * colAValues.length)
const randomValue = colAValues.splice(colAValues.indexOf(randomIndex), 1)
colBValues.push(randomValue)
sheet.getRange(`A:B`).clearContent()
sheet.getRange(2, 1, colAValues.length, 1).setValues(colAValues)
sheet.getRange(2, 2, colBValues.length, 1).setValues(colBValues)
}
随机移动
function randomMove() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheetByName("Sheet0");
let col1 = sh.getRange(2, 1, sh.getLastRow() - 1).getValues().flat().filter(e => e);
let col2 = sh.getRange(2, 2, sh.getLastRow() - 1).getValues().flat().filter(e => e);
let idx = Math.floor(Math.random() * col1.length);
let v = col1[idx];
if (col1[idx]) {
col2.push(col1[idx]);
col1.splice(idx, 1);
}
if (col1.length || col2.length) {
sh.getRange(2, 1, sh.getLastRow() - 1, 2).clearContent();
}
if (col1.length) {
sh.getRange(2, 1, col1.length, 1).setValues(col1.sort((a, b) => a - b).map(e => [e]));
}
if (col2.length) {
sh.getRange(2, 2, col2.length, 1).setValues(col2.sort((a, b) => a - b).map(e => [e]));
}
}
演示: