Tengo dos hojas de cálculo. El archivo principal se extrae de un sistema y se actualiza una vez por semana. La hoja de cálculo 2 es un espejo de esta hoja, que permite a más usuarios editar/crear tablas dinámicas. Anteriormente, se usaba la función IMPORTRANGE; sin embargo, parece que esto no está extrayendo todos los datos, así que armé un script que parece obtener todos los datos. Sin embargo, me estoy encontrando con algunos problemas.
function myFunction() { var sss = SpreadsheetApp.openById('1234'); //source sheet ID var ss = sss.getSheetByName('Data'); //source worksheet name var range = ss.getRange('1:5710'); //assign the range you want to copy var rawData = range.getValues() // get value from source sheet var data = [] // filtered data will be stored in this array for (var i = 0; i< rawData.length ; i++){ if(rawData[i][10] == "Michael Scott") // check to see if column K says 'Michael Scott' if not skip it { data.push(rawData[i]) } } var tss = SpreadsheetApp.openById('456'); //destination sheet ID var ts = tss.getSheetByName('destination'); //destination worksheet name var tsss = ts.getRange('A2:AT').clearContent() // clears all content in the sheet except the header ts.getRange(ts.getLastRow()+1, 1, data.length, data[0].length).setValues(data); }He puesto esto junto y parece funcionar. Una cosa que parece que no puedo entender es cómo funciona la función para extraer datos si existe en la columna K. K es 11... pero la fórmula muestra 10 (tuve suerte y alguien más hizo una pregunta como esta y su hoja también usó la columna K, así que copié esto y funciona, pero no entiendo cómo).
El otro problema parece ser que, cada vez que se realiza una actualización en cualquiera de las hojas, revertirá esos cambios en la hoja principal y actualizará la segunda hoja. Lo que me gustaría que hiciera es simplemente que si hay un cambio en la hoja principal, se actualizará en la hoja de destino (pero conservará la primera fila, las columnas congeladas en la hoja de destino).