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