Sto generando un grafico con dati casuali:

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

Ho usato RAND per generare i valori, ma non voglio che vengano ricalcolati continuamente. Come sopprimere il ricalcolo di RAND?

Risposta

La risposta breve è “Puoi” t “(almeno non senza script). Tuttavia, a meno che il tuo lavoro non sia di natura scientifica, probabilmente non hai bisogno di numeri “casuali”, ma solo imprevedibili . (In effetti, per essere tecnici, anche RAND non genera vero numeri casuali; piuttosto, utilizza un algoritmo complesso per … beh, generare un numero imprevedibile .)

Il problema, come sai, è che RAND ricalcola. Ma possiamo scrivere un numero qualsiasi di formule che produrranno numeri “pseudo-casuali” dalla data. Ad esempio, supponendo che le tue date siano nella colonna A e i tuoi “numeri casuali” nella colonna B, potresti inserire qualcosa di simile in B2 e copiare quanto necessario:

=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"))

Questo utilizzerà le caratteristiche della data per generare un numero di 3 cifre” pseudo-casuale “.

La formula eccessivamente complicata non è tutto questo importante. Ho appena messo insieme alcune funzioni matematiche. Avrebbero potuto essere infinite combinazioni di altre.

Tuttavia, se hai solo bisogno di un numero “unico e non ripetibile”, ad esempio, come trigger per un piattaforma come Zapier: tutto ciò di cui hai veramente bisogno è il formato numerico della data stessa:

=VALUE(A2)

… copiato se necessario .

Entrambe le formule possono funzionare come una formula di matrice (ad esempio, inserita in una cella e riempiendo lintera colonna) con piccole modifiche:

=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))

Rispondi

Con un script google

strumenti> script edi tor

Quindi crea una funzione. Avrai bisogno di agganciare la funzione a un pulsante o qualche altro evento.

Per inserire il numero devi fare selezionare un intervallo. Quindi inserisci il valore con e array di array. Pensalo come un array di righe.

Ecco il mio esempio di script Google

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; } 

Risposta

stasera stavo esaminando la stessa domanda e ho trovato questo documento: https://www.ssl.berkeley.edu/~mlampton/RandomSpreadsheet4.pdf

Puoi usare le formule in quel documento per creare il tuo generatore di numeri pseudo-casuali in pochi minuti. Questo ti darà un elenco di numeri casuali che cambieranno solo quando cambi il seme.

Risposta

Ho molto soluzione semplice semplice, due soluzioni alternative:

  • Anche con Excel: genera tutti i numeri casuali che desideri in Excel, copia e incolla, fatto

  • Blocco note: genera in Fogli Google, copia e incolla nel blocco note, quindi copia e incolla di nuovo, fatto

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *