Generez o diagramă cu date aleatorii:
Date Value 1/1/2018 123 1/2/2018 453
Am folosit RAND
pentru a genera valorile, dar nu doriți ca acestea să recalculeze tot timpul. Cum să suprimați recalcularea RAND
?
Răspuns
Răspunsul scurt este „Poți„ t ”(cel puțin nu fără script). Cu toate acestea, cu excepția cazului în care munca dvs. este de natură științifică, probabil că nu aveți nevoie de numere „aleatorii”, doar imprevizibile (de fapt, pentru a fi tehnice, chiar RAND nu generează adevărat numere aleatorii; mai degrabă, folosește un algoritm complex pentru … ei bine, pentru a genera un număr imprevizibil .)
Problema, după cum știți, este că RAND recalculează. Dar putem scrie orice număr de formule care vor produce numere „pseudo-aleatorii” de la dată. De exemplu, presupunând că datele dvs. se află în coloana A și „numerele aleatoare” în coloana B, puteți pune așa ceva în B2 și copiați cât este necesar:
=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"))
Aceasta va folosi caracteristicile datei pentru a genera un număr de 3 cifre„ pseudo-aleatoriu ”.
Formula prea complicată nu este tot ceea ce important. Tocmai am spart unele funcții matematice împreună. Ar fi putut fi combinații nesfârșite ale altora.
Cu toate acestea, dacă aveți nevoie doar de un număr „unic și care nu se repetă” – de exemplu, ca declanșator pentru un platformă precum Zapier – tot ce aveți nevoie este formatul numeric al datei în sine:
=VALUE(A2)
… copiat după cum este necesar .
Oricare dintre formule poate funcționa ca o formulă matrice (adică plasată într-o singură celulă și completând întreaga coloană) cu modificări minore:
=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))
Răspuns
Cu un google script
tools> script edi tor
Apoi faceți o funcție. Va trebui să conectați funcția la un buton sau la un alt eveniment.
Pentru a introduce numărul de care aveți nevoie pentru a selecta un interval. Apoi puneți valoarea în și matrice de matrice. Gândiți-vă la el ca la o serie de rânduri.
Iată exemplul meu de 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; }
Răspuns
Am analizat aceeași întrebare în seara asta și am găsit această lucrare: https://www.ssl.berkeley.edu/~mlampton/RandomSpreadsheet4.pdf
Puteți utiliza formulele din acel document pentru a crea propriul dvs. generator de numere pseudo-aleatorii în câteva minute. Acest lucru vă va oferi o listă de numere aleatorii care se vor schimba numai atunci când schimbați semințele.
Răspuns
Am o foarte soluție simplă ușoară, două soluții ușoare mici:
-
Și cu Excel: Generați câte numere aleatorii doriți în Excel, copiați lipirea, gata
-
Notepad: generați în Foi de calcul Google, copiați lipiți în notepad, apoi copiați lipiți înapoi, gata