謝謝你的時間和努力。
你能幫助我修改這個腳本,使我能從 "源 "標簽復制范圍到 "目標 "標簽,而不是只復制一列?目前,它只復制了列和列頭。源 "標簽的資料將從sql add-in不斷重繪 ,我希望只在 "目標 "標簽的底部添加新的唯一資料(基于A列的id),同時忽略A列中重復的ID。
function keepUnique(){
var col = 0 ; //選擇你想用作資料源的列(0索引,它在陣列級別作業)
var ss = SpreadsheetApp.getActiveSpreadsheet()
var ms = ss.getSheetByName("source"/span>)。
var sh = ss.getSheetByName("target"/span>)。
var ss = SpreadsheetApp.getActiveSpreadsheet()。
var data=ms.getDataRange().getValues();//獲得所有資料。
Logger.log(資料)。
var newdata = new Array() 。
for(nn in data){
var duplicate = false;
for(j in newdata){
if(data[nn][col] == newdata[j][0] ){
重復 = true;
}
}
if(!Doubleicate){
newdata.push([data[nn][col]])。
}
}
Logger.log(newdata)。
sh.getRange(3,1,newdata.length,newdata[0] 。 length).setValues(newdata);//粘貼新值排序在你選擇的列(這里是第8列,從1開始索引,我們在一個作業表上)) 。
}
uj5u.com熱心網友回復:
使用reduce來過濾掉唯一的值,使用splice來只回傳從資料的第二行開始(不包括頭)。
function keepUnique(){
var ss = SpreadsheetApp.getActiveSpreadsheet()。
var ms = ss.getSheetByName("source"/span>)。
var sh = ss.getSheetByName("target"/span>)。
var ss = SpreadsheetApp.getActiveSpreadsheet()。
var data = ms.getDataRange().getValues() 。
var newdata = data.reduce((a, c) => {
//如果列a是唯一的,包括在資料中。
if (!a. find(span class="hljs-params">v => v[0] == c[0]) {
a.push(c)。
}
return a。
//洗掉標題。
}, []).splice(1)。
//從A3開始寫資料。
sh.getRange(3, 1, newdata. length, newdata[0].length).setValues(newdata)。
}
來源:
目標:
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/319349.html
標籤:
上一篇:每次有太多的遞回


