[Excel] Kolom vaste random unieke getallen

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Anoniem: 100592

Topicstarter
Ik zou graag het volgende willen:

In excel (ik werk in 2007nl, maar de oplossing moet ook voor 2003nl werken) wil ik binnen een blad in een bepaalde kolom als dat aangeef een willekeurig nummer van drie getallen.

Dit kan met:
=AFRONDEN(ASELECT()*1000;0)

Wat ik echter ook wil is dat een eenmaal gegenereerd getal vast blijft staan. Met bovenstaande functie zal excel bij elke vervolgactie een nieuw nummer genereren, dat wil ik dus niet.

Verder wil ik dat de getallen binnen deze kolom uniek zijn aan elkaar. Dit kan wellicht middels een formule binnen "Data validatie" op te voeren?

Iemand een idee hoe dit precies te verwezenlijken?

Acties:
  • 0 Henk 'm!

  • BartS12
  • Registratie: September 2006
  • Laatst online: 05-06 15:16
Als je je kolom met random getallen kopieert met 'paste special - values', worden alleen de waarden gekopieerd; niet de formule (die inderdaad continu nieuwe waarden genereert).

Hoe je ervoor zorgt dat deze getallen uniek zijn, weet ik niet. hoeveel moeten het er worden? 1 is makkelijk. 1000 ook ;)

Verder heeft excel 2007 in ieder geval een functie om duplicates te verwijderen.

Acties:
  • 0 Henk 'm!

  • Tim_bots
  • Registratie: April 2004
  • Laatst online: 15-04 16:42
Ik heb hier de EN versie van exel maar met de functie:
code:
1
=ROUND(RAND()*1000;0)
kan het ook gebeuren dat je een getal van 0 tot 100 krijgt (vul hem maar eens in en druk een aantal maal op F9, bij mij staat er nu 1)

Met
code:
1
=RANDBETWEEN(100;999)

zul je waarschijnlijk wel meer geluk hebben.

Nu alleen nog het opnieuw genereren, wil je dit maar eenmalig op op het moment dat je op een knop drukt?
in het geval van eenmalig, zie hierboven, mocht je het aan een knop willen koppelen stel ik voor dat je naar macro's gaat kijken.
Simpel gesteld:
  1. start macro opname
  2. druk op F9 (voor nieuwe waarden)
  3. copy je lijst
  4. en paste hem middels paste special -> values in een nieuwe kolom
  5. stop macro opname
Plaats dat nu onder een knop en klaar.

Voor het verwijderen van dubbele getallen heb ik ook niet echt een idee

Alvast hartelijk bedankt voor al jullie hulp en reacties, Tim Bots


Acties:
  • 0 Henk 'm!

Anoniem: 100592

Topicstarter
Tim_bots schreef op vrijdag 04 december 2009 @ 12:06:
...Plaats dat nu onder een knop en klaar.
Maar is een macro niet altijd toegespitst op bepaalde aangegeven cellen? Kan ik niet bijvoorbeeld een knop maken die zijn acties enkel uitvoert op een geselecteerde cel of meerdere geselecteerde cellen (dus dat de acties niet op vaste aangegeven cellen plaatsvinden).

Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Voor de range van 1-1000 lijkt het me het handigst om 1,2,3,... even door te trekken naar 1000, zodat je 1 t/m 1000 hebt. Dan vervolgens willekeurig sorteren, door er tijdelijk een random hulpkolom naast te zetten, en daar op te sorteren.. :) Als je minder dan 1000 rijen wilt, dan haal je de rijen die teveel zijn weer weg.

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • Tim_bots
  • Registratie: April 2004
  • Laatst online: 15-04 16:42
Bij een normale macro kan het inderdaad zo zijn dat deze "fixed" staat op cellen. Als je echter ook wat gaat programmeren (visual basic) dan kun je een heel stuk meer.
Hieronder een persoonlijk voorbeeldje van "copy -> paste special as values"
code:
1
2
3
4
5
6
7
8
9
10
Sub Formula_to_values()
'
' Formula_to_values Macro
' Copy the selected text and using paste special as values
'
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
End Sub
Als ik het me goed herinner werd dit zo door de macrorecorder zelfs uitgespuugd.
Verder zou je met functies als "Range("A3").Select" ook al een heel eind moeten komen. (waarin je de A3 variabel maakt)

offtopic:
@hieronder, zo goed ben ik net met sneltoetsen, ik klik liever met de muis op 1 knopje

[ Voor 6% gewijzigd door Tim_bots op 04-12-2009 12:59 ]

Alvast hartelijk bedankt voor al jullie hulp en reacties, Tim Bots


Acties:
  • 0 Henk 'm!

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 31-05 19:15

Dido

heforshe

Voor een shift-end-down, ctrl-c, menu*, s, v, enter een macro opnemen gaat best wel ver, vind ik. Maar goed, dat zal aan mij liggen.

Het zou wel handig zijn als de TS even reageert op een paar vragen, zoals hoeveel rijen er in z'n kolom komen te staan, en of c/paste-special genoeg doet.

*of hoe heet die toets tussen m'n rechter ctrl en windows-toest? Hij "doet" een rechtermuisclick.

Wat betekent mijn avatar?


Acties:
  • 0 Henk 'm!

  • nenne
  • Registratie: Juni 2004
  • Laatst online: 06-06-2024
Ik probeer eveneens een randomgetal te genereren, echter deze heb ik nodig in VBA-code. Ik heb nl een woordenlijst Nederlands met daarnaast de Spaanse vertaling. Via een inputbox wordt gevraagd naar de vertaling van een willekeurig uitgekozen woord uit de lijst, waarna de vertaling ingevoerd dient te worden. Dit wordt net zolang herhaald tot de gebruiker wil stoppen.

Mijn vraag luidt: hoe krijg ik de randbetween() functie in VBA ingebakken, in plaats van dat ik deze in de worksheet zet en telkens op F9 moet drukken voor een nieuw random getal?? Ik heb ook al gebruik gemaakt van Rnd maar die geeft elke keer dezelfde sequentie van "random" numbers.

Office 2007, Engelse versie.

Bvd!

Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Before calling Rnd, use the Randomize statement without an argument to initialize the random-number generator with a seed based on the system timer.
:?

Of gebruik Worksheetfunction.RandBetween.

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • nenne
  • Registratie: Juni 2004
  • Laatst online: 06-06-2024
Bedankt voor de link, met de Randomize functie vóór gebruik van Rnd wil het lukken _/-\o_

Acties:
  • 0 Henk 'm!

Anoniem: 147180

Dit kan ook een oplossing zijn.

Acties:
  • 0 Henk 'm!

  • bazs2000
  • Registratie: November 2000
  • Laatst online: 05-05 22:46

bazs2000

Pixels zo groot als een atoom

Het kan aan mij liggen maar van echt "random" is met dergelijke formules toch geen sprake?

Het is alweer een paar jaar geleden dat ik sleutels moest maken die uniek moesten zijn en iedere keer maakte ik het mee dat de bekende functies uiteindelijk toch een resultaat uitspuwden die reeds bestond. Daarna ben ik het wat meer rekenkundig gaan benaderen.

[code=vba]
A = Year()
B = Month()
C = Day()
D = Hour()
E = Second()
F = Rnd(1000)
G = Rnd(1000)
H = Rnd(1000)

Random = A & B & C & D & E & F & G & H
[code]

Nog steeds is het hier mogelijk dat er een dubbel getal uit komt alleen hoe groot is de kans dat er binnen een seconde twee keer dezelfde uitkomst komt uit F & G & H?

Met Rnd(1000) bedoel ik natuurlijk wel de functie om een random getal te geven (weet nu even de exacte functie niet). Ik heb dit nu een paar jaar in gebruik en nog nooit is er een dubbel getal uitgekomen. Het enige wat je op de koop toe moet nemen is dat het aantal karakters kan variëren omdat de uitkomst er zo uit kan zien:

20100119111
20100119100010001000

Dat moet je maar net willen, anders doe je een paar keer de Rnd(9), dan heb je altijd hetzelfde aantal karakters.

Krankzinnige muziek vind je hier.


Acties:
  • 0 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Bazs2000: Let even op het verschil tussen random en uniek. Als een getal niet twee keer mag voorkomen is het niet random, en een getal dat deels bestaat uit jaar/dag/etc is zeker niet random ;) (Al mag de kans dat het gebeurt, afhankelijk van de precizie, natuurlijk niet groot zijn). Unieke getallen trekken daarentegen kan simpel: houd bij welke getallen je al eens hebt uitgegeven.

En inderdaad, als je niet Randomize gebruikt, zal je (dezelfde seed gebruiken en dus) dezelfde 'random' getallen krijgen.

[ Voor 9% gewijzigd door F_J_K op 19-01-2010 11:43 ]

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)

Pagina: 1