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

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *