Estoy intentando lo siguiente:
Busque este valor de la hoja "Pedidos" en las filas de la hoja "Pedidos articulos". Cuando encuentre una o más coincidencias de filas que contengan estos valores de búsqueda, obtenga los valores para toda la fila.
Necesito obtener los datos de las filas coincidentes, sin embargo, no necesito pegarlos en ningún lugar de la hoja, ya que esta función es mostrar estos datos en una plantilla html de modaldialog a través de Scriptlets.
¿Cuál es mi problema?
Mi problema es que he logrado encontrar las coincidencias del valor (numPedido) en la hoja "Pedidos articulos", sin embargo, siempre devuelve el índice de las filas coincidentes. No puedo obtener los datos de esas filas coincidentes.
Mi código:
function obtenerProductos3(){ //Hoja Pedidos var hojaPedidos = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Pedidos'); var fila = hojaPedidos.getCurrentCell().getRow(); var numeroPedidoPE = hojaPedidos.getRange(fila,3,1,1).getDisplayValue(); Logger.log(numeroPedidoPE) //Hoja Pedidos artículos var hojaPedidosArticulos = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Pedidos Artículos'); var numPedidoAR = hojaPedidosArticulos.getRange('C7:C').getValues(); var articulos = hojaPedidosArticulos.getRange(7,3, hojaPedidosArticulos.getLastRow()-6, hojaPedidosArticulos.getLastColumn()-1).getValues(); //var articulos = hojaPedidosArticulos.getRange('C7:O').getDisplayValues(); Logger.log(numPedidoAR) Logger.log(articulos) var newData = articulos.map(function(r){ return r[0]; }); Logger.log(newData) var indexes = newData.map((element, i) => element === numeroPedidoPE ? i : "") .filter(element => element !== ""); Logger.log(indexes) return (hojaPedidosArticulos.getRange(indexes, 2, indexes, hojaPedidosArticulos.getLastColumn()).getDisplayValues()); }Toda ayuda es muy apreciada.
indexes es una matriz. Por favor itéralo.
const values = hojaPedidosArticulos.getRange(7, 2, hojaPedidosArticulos.getLastRow() - 6, hojaPedidosArticulos.getLastColumn() - 1).getDisplayValues(); const results = values.filter((e, i) => indexes.includes(i)); return results;