Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

423
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda