尝试用filter() https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter:
var report = SpreadsheetApp.getActiveSpreadsheet();
var tsheet = report.getSheetByName("Transactions");
var areport = SpreadsheetApp.getActiveSheet();
var agent = areport.getRange('B6').getValue();
var data = tsheet.getRange('A1:AI300').getValues();
var tdata = data.filter(function (row) {
return row[29] == agent && row[5] == 'Closed' ; // starts from 0, column A is 0.
});
从中选择特定列tdata
do:
var cr_data = getCols(tdata,[5,6,7, 13, 15]);
where getCols() https://stackoverflow.com/questions/62565632/best-method-to-extract-selected-columns-from-2d-array-in-apps-script定义如下:
function getCols(arr,cols) {
return arr.map(row =>
row.filter((_,i) => cols.includes(++i)))
}
最后你可以复制cr_data
到特定的地方/工作表,如下所示:
sheet.getRange(1,1,cr_data.length,cr_data[0].length).setValues(cr_data);
关于您问题的第二部分,我想将您重定向到这篇文章:
在应用程序脚本中从二维数组中提取选定列的最佳方法 https://stackoverflow.com/questions/62565632/best-method-to-extract-selected-columns-from-2d-array-in-apps-script