Estoy generando un gráfico con datos aleatorios:

Date Value 1/1/2018 123 1/2/2018 453 

Usé RAND para generar los valores, pero no quiero que se vuelvan a calcular todo el tiempo. ¿Cómo suprimir el recálculo de RAND?

Respuesta

La respuesta corta es «No puedes» t «(al menos no sin un script). Sin embargo, a menos que su trabajo sea de naturaleza científica, probablemente no necesite números «aleatorios», solo impredecibles . (De hecho, para ser técnico, incluso RAND no genera verdaderos números aleatorios; más bien, utiliza un algoritmo complejo para … bueno, generar un número impredecible .

El problema, como sabe, es que RAND recalcula. Pero podemos escribir cualquier número de fórmulas que produzcan números «pseudoaleatorios» a partir de la fecha. Por ejemplo, suponiendo que sus fechas estén en la Columna A y sus «números aleatorios» en la Columna B, podría poner algo como esto en B2 y copiar tanto como sea necesario:

=VALUE(TEXT(INT(((A2*COS(DAY(A2))*PI())-INT(A2*COS(DAY(A2))*PI()))*1000)+IF(INT(((A2*COS(DAY(A2))*PI())-INT(A2*COS(DAY(A2))*PI()))*1000)<100,WEEKDAY(A2)*100,0),"000"))

Esto usará características de la fecha para generar un número» pseudoaleatorio «de 3 dígitos.

La fórmula demasiado complicada no es todo eso importante. Acabo de combinar algunas funciones matemáticas. Podrían haber sido combinaciones infinitas de otras.

Sin embargo, si solo necesita un número «único y no repetitivo», por ejemplo, como disparador de un plataforma como Zapier, todo lo que realmente necesita es el formato numérico de la fecha en sí:

=VALUE(A2)

… copiado según sea necesario .

Cualquiera de las fórmulas puede funcionar como una fórmula de matriz (es decir, colocada en una celda y llenando toda la columna) con cambios menores:

=ArrayFormula(IF(A2:A = "", "", VALUE(TEXT(INT(((A2:A*COS(DAY(A2:A))*PI())-INT(A2:A*COS(DAY(A2:A))*PI()))*1000)+IF(INT(((A2:A*COS(DAY(A2:A))*PI())-INT(A2:A*COS(DAY(A2:A))*PI()))*1000)<100,WEEKDAY(A2:A)*100,0),"000")))

=ArrayFormula(IF(A2:A = "", "", VALUE(A2:A))

Responda

Con un script de google

herramientas> script edi tor

Entonces crea una función. Deberá conectar la función a un botón o algún otro evento.

Para ingresar el número, debe seleccionar un rango. Luego ingrese el valor con una matriz de matrices. Piense en ello como una matriz de filas.

Aquí está mi secuencia de comandos de Google de muestra

function generateNumbers () { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheets()[0]; var randNumberRows = [] var i; for (i = 0; i < 20; i++) { var row = [] row.push(randInt(-20,20)); row.push(randInt(-20,20)); row.push(randInt(-20,20)); randNumberRows.push(row); } var range = sheet.getRange("A2:C21"); range.setValues(randNumberRows); } function randInt(start, end) { // range is from start to end + 1 so it is inclusive r = end - start + 1 return Math.floor(Math.random() * r) + start; } 

Respuesta

Estaba investigando la misma pregunta esta noche y encontré este documento: https://www.ssl.berkeley.edu/~mlampton/RandomSpreadsheet4.pdf

Puede utilizar las fórmulas de ese documento para crear su propio generador de números pseudoaleatorios en unos minutos. Eso le dará una lista de números aleatorios que solo cambiarán cuando cambie la semilla.

Respuesta

Tengo una muy solución sencilla y fácil, dos pequeñas soluciones:

  • También con Excel: Genere tantos números aleatorios como desee en Excel, copie, pegue, listo

  • Bloc de notas: genere en Google Sheets, copie y pegue en el bloc de notas, luego copie y pegue, listo

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *