Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

435
Views
Hojas de cálculo de Google: cómo borrar, poner a cero o reemplazar celdas específicas de manera eficiente a través de un script

Se trata de tres acciones similares necesarias en una hoja. Esperemos que esto termine siendo una pregunta útil en general.

Tengo un script que copia los valores de celdas arbitrarias en una hoja a una sola fila en otra hoja, cortesía de la respuesta de doubleunary a una pregunta anterior. Ahora necesito saber cómo restablecer la hoja de entrada para estar lista para otra entrada.

Algunas celdas deben estar en blanco, otras deben tener ceros y otras deben restablecerse a un valor de texto predeterminado, que se almacena en otra hoja para que pueda cambiarse fácilmente si es necesario.

El script para extraer los datos es este:

 function submitDataOhSoMuchFaster() { const ss = SpreadsheetApp.getActive(); const values = ss.getActiveSheet().getRange('A1:Z13').getValues(); const entry = [ { column: 26, row: 12 }, // Z12 { column: 3, row: 2 }, // C2 { column: 14, row: 2 }, // N2 { column: 3, row: 10 }, // C10 { column: 6, row: 2 }, // F2 { column: 3, row: 4 }, // C4 { column: 5, row: 4 }, // E4 { column: 3, row: 5 }, // C5 { column: 5, row: 5 }, // E5 { column: 12, row: 5 }, // L5 { column: 12, row: 4 }, // L4 { column: 26, row: 13 }, // Z13 { column: 20, row: 4 }, // T4 { column: 20, row: 5 }, // T5 { column: 3, row: 6 }, // C6 ]; ss.getSheetByName('Master Log') .appendRow(entry.map(cell => values[cell.row - 1][cell.column - 1])); };

Quiero saber si hay una manera elegante de revertir eso, y borrar o escribir ceros en un conjunto de celdas o rangos usando un método similar, y cómo escribiría de manera eficiente los valores de una matriz pequeña en una hoja de origen a celdas arbitrarias en la hoja de destino.

Como ejemplos, necesito:

Borrar C4, E4, J10:J14, etc.

Cero T5:T6, D12:D15

Copie el contenido de la celda AT2 en una hoja a F2 en la hoja de destino, AT3 a C10, etc. (todos los datos de origen para esto están en una sola columna, por lo que una matriz parece viable)

Sé cómo hacer esto de una manera prolongada que usa una tonelada de comandos Clear, getValue y setValue, pero ¿cómo lo hago de manera eficiente?

Editar:

El rango fuente para el tercer paso está aquí:

Rango de origen para entradas predeterminadas

Y los objetivos están aquí:

Hoja de destino para entradas predeterminadas

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Solución:

La forma más elegante que se me ocurre es usar RangeList :

  • RangeList.setValue establece el valor de todas las celdas en todos los rangos especificados a la vez.
  • RangeList.getRanges obtiene una matriz con los rangos y luego puede establecer los nuevos valores en un bucle.

Fragmento de código:

 function updateSheet() { const ss = SpreadsheetApp.getActiveSpreadsheet(); const targetSheet = ss.getSheetByName("TARGET"); targetSheet.getRangeList(["C4","E4","J10:J14"]).setValue(""); targetSheet.getRangeList(["T5:T6", "D12:D15"]).setValue(0); const sourceSheet = ss.getSheetByName("SOURCE"); const values = sourceSheet.getRange("AT2:AT" + sourceSheet.getLastRow()) .getValues().flat(); targetSheet.getRangeList(["F2","C10",...]).getRanges() .forEach((range,i) => range.setValue(values[i])); }
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!