首先,让我为这段代码无组织的混乱道歉。我总共花了n00b,主要是切片和切割我在网上找到的其他人的代码,以实现我想要做的事情。
话虽如此,我的总体目标是操纵原始数据。以下是步骤:
以下是现在的代码:
function dataParse() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Raw Data");
var lastRow = ss.getLastRow();
var lastCol = ss.getLastColumn();
var targetValues = [];
var targetValue = [];
var range = ss.getRange(1, 1, lastRow, lastCol);
var range1 = SpreadsheetApp.getActiveRange();
var col = range1.getColumn();
var row = range1.getRow();
var data = range.getValues();
var data1 = range1.getValues();
var activeRow = 0;
for (row in data) {
if (data[row][1] !=''){
var tempvalue = [data[row][1], data[row][2]];
targetValues.push(tempvalue);
}
}
ss.getRange(lastRow + 1, 1 , targetValues.length, 2).setValues(targetValues);
for (row in data1) {
if (data1[row][2] !=''){
var tempervalue = [data[row][2]];
targetValue.push(tempervalue);
}
}
ss.getRange(row, col+1, targetValue.length, 1).setValues(targetValue);
}
我已经尝试过猜测/检查改变很多事情,看看我是否会得到我正在寻找的结果,但无济于事;为什么我在这里。
我确定这是一个非常小的东西,但我不够精明,甚至不知道问题是什么。
任何帮助表示赞赏!如果您需要样品表来了解我正在尝试解释的内容,请告诉我。提前感谢您的帮助!
答案 0 :(得分:0)
试试这个:
function copyMyData() {
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName("Sheet1");
var range=sh.getDataRange();
var data=range.getValues();
for(var i=0;i<data.length;i++)
{
if(data[i][1]){
data[firstEmptyCell(data,0)][0]=data[i][1] + ' ' + data[i][2];
}
if(data[i][2]){
data[i][1]=data[i][2];
}
}
range.setValues(data);
}
function firstEmptyCell(dataA,index){
var vA=dataA;
for(var i=0;i<dataA.length;i++){
if(!vA[i][index]){
return i;
}
}
}
之前的表:
表之后: