Generuji graf s náhodnými daty:
Date Value 1/1/2018 123 1/2/2018 453
Použil jsem RAND
generovat hodnoty, ale nepřeji si, aby se neustále přepočítávaly. Jak potlačit přepočet RAND
?
Odpověď
Krátká odpověď je „You can“ t „(alespoň ne bez skriptu). Pokud však vaše práce nemá vědeckou povahu, pravděpodobně nepotřebujete „náhodná“ čísla, pouze nepředvídatelná . (Ve skutečnosti, aby to bylo technické, ani RAND negeneruje true náhodná čísla; spíše používá složitý algoritmus k … dobře, vygeneruje nepředvídatelné číslo.)
Problém, jak víte, je, že RAND přepočítá. Můžeme ale napsat libovolný počet vzorců, které od data vyprodukují „pseudonáhodná“ čísla. Například za předpokladu, že jsou vaše data ve sloupci A a vaše „náhodná čísla“ ve sloupci B, můžete něco takového dát do B2 a podle potřeby je zkopírovat:
=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"))
To bude používat funkce data ke generování“ pseudonáhodného „3místného čísla.
Příliš složitý vzorec není všechno důležité. Právě jsem rozbil některé matematické funkce dohromady. Mohly to být nekonečné kombinace dalších.
Pokud však potřebujete pouze „jedinečné a neopakující se“ číslo – například jako spouštěč pro platforma jako Zapier – vše, co opravdu potřebujete, je číselný formát samotného data:
=VALUE(A2)
… zkopírován podle potřeby .
Buď vzorec může fungovat jako maticový vzorec (tj. umístěný v jedné buňce a vyplňující celý sloupec) s malými změnami:
=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))
Odpověď
S google script
tools> script edi tor
Poté proveďte funkci. Tuto funkci budete muset připojit k tlačítku nebo jiné události.
Chcete-li zadat číslo, musíte provést výběr rozsahu. Poté vložte hodnotu do a pole polí. Přemýšlejte o tom jako o řadě řádků.
Zde je můj ukázkový skript 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; }
Odpověď
Díval jsem se dnes večer na stejnou otázku a našel jsem tento příspěvek: https://www.ssl.berkeley.edu/~mlampton/RandomSpreadsheet4.pdf
Pomocí vzorců v tomto dokumentu můžete během několika minut vytvořit vlastní generátor pseudonáhodných čísel. Získáte tak seznam náhodných čísel, která se změní, pouze když změníte semeno.
Odpověď
Mám velmi jednoduché snadné řešení, dvě snadná malá řešení:
-
Také v aplikaci Excel: Generujte tolik náhodných čísel, kolik chcete v aplikaci Excel, zkopírujte, vložte, hotovo
-
Poznámkový blok: Generování v Tabulkách Google, zkopírování vložení do poznámkového bloku a následné zkopírování vložení zpět, hotovo