Googlesheets: werken met random nummer

Alles over programmeren en development binnen de IT-wereld
Plaats reactie
Koelreuteria
Pro Member
Pro Member
Berichten: 414
Lid geworden op: 25 mei 2006, 01:30
Uitgedeelde bedankjes: 57 keer
Bedankt: 7 keer

Hopelijk kunnen jullie mij hier op de juiste weg zetten.
'k Heb volgende formule in Googlesheets:
=(ALS(A3="";"";(((ASELECTTUSSEN(10000;99999))))))
Die formule doet wat van haar verwacht wordt: een willekeurig getal genereren tussen 10000 en 99999
Maar nu komt de aap uit de mouw: eenmaal dat het getal is gegenereerd, zou het getal niet meer mogen veranderen.
Nu is het zo, dat bij een refresh v.h. rekenblad er een nieuw getal wordt aangemaakt. (wat logisch is: bij een refresh worden alle formules immers opnieuw berekend)
Hoe pak ik zoiets aan? Ergens het willekeurig getal kopiëren naar een ander cel en blokkeren tegen wijzigen? Hoe doet men dat?
Of ergens op een extra blad in een cel het getal genereren en dan kopiëren naar de juiste plaats? ook hier moet dan als het ware de koppeling naar de formule worden verbroken?
Benieuwd naar jullie oplossingen!
Gebruikersavatar
cptKangaroo
Elite Poster
Elite Poster
Berichten: 3269
Lid geworden op: 18 dec 2004, 14:33
Locatie: 053 Aalst
Uitgedeelde bedankjes: 748 keer
Bedankt: 250 keer
Recent bedankt: 2 keer
Provider
Te Koop forum

Die gegenereerde waarde ergens zetten en de aanwezigheid van die waarde gebruiken als conditie om generatie te skippen.
ITnetadmin
userbase crew
userbase crew
Berichten: 9510
Lid geworden op: 28 jan 2012, 18:22
Uitgedeelde bedankjes: 241 keer
Bedankt: 757 keer
Recent bedankt: 2 keer

Gewoon "copy/paste value" doen.
Koelreuteria
Pro Member
Pro Member
Berichten: 414
Lid geworden op: 25 mei 2006, 01:30
Uitgedeelde bedankjes: 57 keer
Bedankt: 7 keer

cptKangaroo schreef: 11 jul 2024, 19:56 Die gegenereerde waarde ergens zetten en de aanwezigheid van die waarde gebruiken als conditie om generatie te skippen.
Goed idee!
Hoe pak ik dat praktisch aan? Heb al wat zitten experimenteren, maar 'k moet bekennen niet zo goed thuis te zijn in die materie
Komt dus hier op neer (denk ik):
In cel A2, A3, enz... komt de tijdstempel (rekenblad is gekoppeld aan een form). Kunnen we daar iets mee?
M.a.w. eenmaal cel A2 niet meer leeg is, dan skip. Geen random getal meer nodig, want reeds aangemaakt?

Toegevoegd na 2 minuten 29 seconden:
ITnetadmin schreef: 11 jul 2024, 20:51 Gewoon "copy/paste value" doen.
Heb ik geprobeerd. Maar de value wordt ook iedere keer weer aangepast als het rekenblad zich ververst.
Tenzij ik iets verkeerds doe natuurlijk...
Albert Peetermans
Plus Member
Plus Member
Berichten: 177
Lid geworden op: 27 jan 2012, 12:46
Uitgedeelde bedankjes: 21 keer
Bedankt: 19 keer

Een toevalsgetal wordt gegenereerd o.b.v. een startwaarde.
Gewoonlijk kiest het programma zelf een random startwaarde, o.b.v. datum, tijdstip, bestandsnaam, nog iets en dan nog allerlei.
Maar meestal kan je die startwaarde ook zelf bepalen (bv. rand (489574895) -maar ik ken niets van Googlesheets). Als je dat doet, krijg je ook na een refresh dezelfde waarden (omdat telkens dezelfde startwaarde wordt gebruikt). Je toevalsgetal is dan wel voorspelbaar.
Gebruikersavatar
cptKangaroo
Elite Poster
Elite Poster
Berichten: 3269
Lid geworden op: 18 dec 2004, 14:33
Locatie: 053 Aalst
Uitgedeelde bedankjes: 748 keer
Bedankt: 250 keer
Recent bedankt: 2 keer
Provider
Te Koop forum

Mijn suggestie blijkt enkel mogelijk via macros, en het geeft anders een circulaire fout -- 't is blijkbaar niet zo voor de hand liggend om een waarde vast te leggen via formules (maar ik ben ook geen crack).

Mijn suggestie is dan om een celA1 te hebben met daarin enkel de random generator, en een celA2 waar je die waarde zelf naar copy/paste zoals ITnetadmin antwoordde. Dan heb je toegang tot een (pseudo)random getal maar moet je wel telkens de sheet opslaan met dat copy/pasted nummer.

celA1 is dus =ASELECTTUSSEN(10000;99999)
celA2 is copy/pasted waarde en je andere cellen verwijzen naar A2

In jouw geval lijkt de willekeurigheid niet superbelangrijk te zijn, en als er blijkbaar een tijdstempel automatisch bijgezet wordt (die niet verandert?) kan je die tijdsaanduiding gebruiken als pseudorandom getal?
ITnetadmin
userbase crew
userbase crew
Berichten: 9510
Lid geworden op: 28 jan 2012, 18:22
Uitgedeelde bedankjes: 241 keer
Bedankt: 757 keer
Recent bedankt: 2 keer

Koelreuteria schreef: 11 jul 2024, 21:33 Heb ik geprobeerd. Maar de value wordt ook iedere keer weer aangepast als het rekenblad zich ververst.
Tenzij ik iets verkeerds doe natuurlijk...
Dan doe je het idd verkeerd.
Je moet specifiek een "paste special" doen, en "paste value" kiezen.
Een gewone copypaste kopieert uw formule.
Plaats reactie

Terug naar “Development”