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

170
Vistas
¿Hay alguna manera de agregar valores a algunas celdas aleatorias de un rango?

Tengo el siguiente código:

 function test1() { var app = SpreadsheetApp; var activesheet = app.getActiveSpreadsheet().getActiveSheet(); for (var j = 2; j<= 3; j++) { activesheet.getRange(j,2).setValue("C"); } }

Este código agregará el carácter "C" a la celda B2 y B3, lo cual es genial.

Estoy buscando obtener mi código para agregar dos caracteres "C" a 2 celdas aleatorias de las primeras 30 celdas de la columna B.

Cualquier ayuda es muy apreciada. Gracias.

about 4 years ago · Santiago Gelvez
3 Respuestas
Responde la pregunta

0

Agrega una cadena de caracteres al rango n veces haciendo una selección única cada vez.

 function addCharsRandom(chr = "AB", a1rg = "", n = 3) { const ss = SpreadsheetApp.getActive(); const sh = ss.getActiveSheet(); const rg = (a1rg.length < 2) ? sh.getActiveRange() : sh.getRange(a1rg); if (rg.getDisplayValues().flat().length >= n) { rg.setBackground("yellow") const w = rg.getWidth(); const h = rg.getHeight(); const r = rg.getRow(); const c = rg.getColumn(); let rA = []; let cA = []; [...Array.from(new Array(n).keys())].forEach(i => { let row, col; do { row = r + Math.floor(Math.random() * h); col = c + Math.floor(Math.random() * w); } while (rA.indexOf(row)>-1 && cA.indexOf(col)>-1); rA.push(row); cA.push(col); sh.getRange(row, col).setValue(sh.getRange(row, col).getDisplayValue() + chr).setBackground("white"); }); } else { SpreadsheetApp.getUi().alert("Range is to small for number of unique selections"); } }

si a1rg es igual a "", entonces seleccionará el rango activo.

Manifestación:

ingrese la descripción de la imagen aquí

about 4 years ago · Santiago Gelvez Denunciar

0

Este código puede ayudarte

 function test1() { var app = SpreadsheetApp; var activesheet = app.getActiveSpreadsheet().getActiveSheet(); let randomCellIndex; let usedCell = []; for (var i = 0; i < 2; i++) { // make sure not to use same index twice do randomCellIndex = Math.floor(Math.random() * 30) + 1; while (usedCell.indexOf(randomCellIndex) !== -1); usedCell.push(randomCellIndex); activesheet.getRange(randomCellIndex,2).setValue("CC"); } }
about 4 years ago · Santiago Gelvez Denunciar

0

Supongo que no desea valores duplicados, por lo que tomaría dos valores de la matriz barajada. Para evitar entrar en la madriguera del conejo con el ejemplo de matriz aleatoria, se usa el guión bajo

 _.shuffle([...Array(30)].map((value, index) => index+1))
about 4 years ago · Santiago Gelvez 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