0
我在Google腳本中有一組數據(數組中有大約10個項目)。 如何搜索列A中的這些數組項? (例如:搜索從單元格a12開始直到結尾的項目),並且如果在列A中找不到數組值,然後將它們添加到列A的結尾?如何搜索Google表格列中的數組值並在未找到時插入數組值?
我試圖用
data[n][0].toString().match(values_array[i])==values_array[i]
和第二下一次我跑我看到重複的數據獲得進入的功能!
例如,從A1到A10的數據如下:(1,2,3,4,5,6,7,8,9,10) 和第一次運行該函數它將所有數據添加到列A(開始a12)
而第二次我運行相同的數據從A1到A10的功能,它不應該輸入任何東西,但它會增加1,2,3,4,5,6,7,8,再次9,10!我不知道爲什麼這個代碼是這樣的!
如果有專家告訴我如何解決這個問題,我將不勝感激。
function find2(){
var sheet = SpreadsheetApp.getActiveSheet(),
range,
values_array;
range = sheet.getRange('a1:a10');
values_array = range.getValues();
var sh = SpreadsheetApp.getActiveSheet();
var range2 = sh.getRange('a12:a')
data = range2.getValues(); // read all data in the sheet
var lastRowIndex=getLastColumnRow(0)
for (var i = 0; i < values_array.length; i++) {
for(n=0;n<data.length;++n){ // iterate row by row and examine data in column A
if(data[n][0].toString().match(values_array[i])==values_array[i]){
} else {
var lastEmptyRowIndex=1+lastRowIndex+i
SpreadsheetApp.getActiveSheet().getRange('a'+lastEmptyRowIndex).setValue(values_array[i]);
};
}//end of innter for loop
}// end of outer for loop
}
function setUp() {
ScriptProperties.setProperty('active', SpreadsheetApp.getActiveSpreadsheet().getId());
}
function getLastColumnRow(RowNumber) {
var ss = SpreadsheetApp.openById(ScriptProperties.getProperty('active'));
var sheet = ss.getSheetByName("Sheet1");
var data = sheet.getDataRange().getValues();
var numRows = data.length;
// loop from bottom to top for last row in given row "RowNumber"
while(data[numRows - 1][RowNumber] == "" && numRows > 0) {
numRows--;
}
return numRows
}
非常感謝。我從一個API獲取一些數據,所以行數增加。你認爲你的避免重複數據的方法會在每次行數增加10時快速有效嗎?你的代碼是否比較完全匹配?最後你可以解釋這部分數據[i] [0] =「」?然後將值添加到數組,最後將完整數組插入到列的末尾。 – user1788736