Tengo un conjunto de datos de 35 columnas y 300 filas. Quiero obtener el rango que contiene filas solo para ciertos valores en la columna 30 (nombres). El nombre para el cual filtrar los datos se basa en la celda del archivo de informe B6 en la hoja de informe que está activa. Hasta ahora probé esto:
var report = SpreadsheetApp.getActiveSpreadsheet();
var tsheet = report.getSheetByName("Transactions");
var areport = SpreadsheetApp.getActiveSheet();
var agent = areport.getRange('B6').getValues();
var criteria = SpreadsheetApp.newFilterCriteria().whenTextEqualTo(agent).build();
var trange = tsheet.getRange().createFilter().setColumnFilterCriteria(30, criteria); // ERROR
var tdata = trange.getValues();
Recibo un error Excepción: los parámetros () no coinciden con la firma del método para SpreadsheetApp.Sheet.getRange.
La segunda parte, solo quiero obtener varias columnas, 5, 6, 7, 13, 15. No puedo crear otro filtro con la aplicación Hoja de cálculo, por lo que es la única forma de crear una matriz y filtrar los datos necesarios de ¿allí? Solo intento pensar en el futuro y reducir la cantidad de cálculos.
Prueba con 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.
});
Para seleccionar columnas particulares de tdata
hacer:
var cr_data = getCols(tdata,[5,6,7, 13, 15]);
donde getCols () se define de la siguiente manera:
function getCols(arr,cols) {
return arr.map(row =>
row.filter((_,i) => cols.includes(++i)))
}
y finalmente puede copiar cr_data
a un lugar / hoja en particular como ese:
sheet.getRange(1,1,cr_data.length,cr_data[0].length).setValues(cr_data);
Con respecto a la segunda parte de su pregunta, me gustaría redirigirlo a esta publicación:
El mejor método para extraer columnas seleccionadas de la matriz 2d en el script de aplicaciones
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras