• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Willekeurige aantal rijen selecteren

Status
Niet open voor verdere reacties.

klootje

Nieuwe gebruiker
Lid geworden
16 aug 2004
Berichten
4
Stel ik heb 500 rijen met meerdere kolommen met gegevens (die niet allemaal numeriek zijn) en ik wil daar aselect/willekeurig 100 rijen uit hebben. Hoe doe ik dat zo eenvoudig mogelijk? Dus niet eerst een kolom invoegen, daarin de formule aselect() zetten, sorteren en daarna 100 rijen selecteren, plakken in ander werkblad, etc.!
 
De nederlandstalige formules weet ik niet, maar in het engels kun je het zo doen:

Zet in bijvoorbeeld A1 de volgende formule:

=INT(500*RAND() + 11)

Deze neemt een willekeurig getal tussen 10 en 510
Vervolgens plak je ergens:

=INDIRECT($A$1&":" &$A$1)

En deze formule trek je 100 rijen door naar onder en opzij.
 
Bedankt voor je antwoord ExcelExpert. In het Nederlands is het =INTEGER(500*ASELECT()+11). Helaas kan ik er nog niet mee uit de voeten. Indien je de Analysis Toolpak hebt geinstalleerd (via Extra -> Invoegtoepassingen) dan heb je daarna de optie Gegevensanalyse (menu Extra). Daar kun je weer kiezen voor Steekproef waarna een dialoogbox verschijnt. De dialoogbox kan echter alleen numerieke waarden teruggeven. Het probleem is echter dat ik ook alle andere kolommen met niet-numerieke waarden meegeselecteerd wil hebben. Eigenlijk dus een willekeurige selectie van een aantal records geplakt in een nieuw werkblad. Wellicht kan dit met een macro. Heeft iemand die? Beter goed gejat, dan slecht gebouwd zullen we maar zeggen :-)
 
Bijgaand uitgewerkt voorbeeld.
Dit werkt met een tijdelijke hulpkolom en blad die vanuit de macro aangemaakt en verwijderd worden.

De macro "steekproef1" controleert zelf de hoeveelheid regels in je database en vraagt vervolgens hoeveel regels de steekproef moet bevatten.
De bewuste regels worden daarna naar het werkblad steekproef gekopieerd.

Ik ben ervan uitgegaan dat er geen formules in je database staan, als dat wel zo is moet je pastespecial gebruiken.

Als er een kopregel boven moet staan kopieer je die eerst en zet je de teller SteekRij op het eerste regelnummer vanaf waar de gegevens geplakt moeten worden.

Namen van tabbladen en gewenste ranges moet je uiteraard zelf aanpassen aan jouw situatie.
 

Bijlagen

Laatst bewerkt:
Jan, ik krijg een foutmelding bij de sub Sorteer(), maar als ik die uitster dan werkt het perfect! Dank! Misschien dat je me nog kan laten weten waardoor de foutmelding wordt gegenereerd?

Fout 4000 tijdens uitvoering: Door de toepassing of object gedefinieerde fout.

In de foutopsporing klapt de code bij:
Columns("A:A").EntireColumn.Sort Key1:=ActiveCell, Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

Nogmaals, bedankt!
 
In de foutopsporing klapt de code bij:
Columns("A:A").EntireColumn.Sort Key1:=ActiveCell, Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

Vervang ActiveCell door "A1"
Volgens mij moet het dan wel werken.
 
Jan, helaas nog hetzelfde resultaat :-(

Columns("A:A").EntireColumn.Sort Key1:=("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

Ook zonder de haakjes rondom "A1" gaat het niet goed. Als ik met mijn muis over xlSortNormal ga, dan zegt de mouseover : xlSortNormal = leeg

Kan het daar aan liggen?
 
Misschien is er sprake van incompatibiliteit van verschillende Excelversies.
Verwijder eens het gedeelte na xlTopTobottom
(dus ", _DataOption1:=xlSortNormal") en de macro zal waarschijnlijk wel werken.

fra.
 
Geplaatst door Jan van Asseldonk
Welke Excel-versie gebruik je?
Jan, ik neem aan dat je vraag voor "klootje" bestemd was, maar helaas heeft die nog niet gereageerd. De versie waar ik over spreek en waarmee de macro wel werkt als "DataOption1:=xlSortNormal" wordt verwijderd, is Excel 2000.
 
Fra,

ik heb het thuis opgezet in Excel2002 en op mijn werk getest onder Excel97. Daarom verwacht ik daar eigenlijk geen probleem mee.

Even op Klootje wachten dus.
 
Sorteren nog even op een iets andere manier in de macro gezet.

Vervang de macro sorteer door onderstaande code.

Sub Sorteer()
'
Sheets("Steekproefhulp").Select
Columns("A:A").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub

De oude gaf na meerdere keren gebruiken bij mij soms ook een foutmelding.
Wat me ook opviel is dat steekproef vanuit gegevensanalyse eenzelfde record meerdere keren kan oppakken. Misschien moet je daar nog een check op inbouwen al zou ik zelf verwachten dat Microsoft daar reeds aan gedacht zou hebben.
 
Bij mij doet dit stuk het niet:

Application.Run "ATPVBAEN.XLA!Sample", ActiveSheet.Range("$A$1:$A$" & Regels), _
"Steekproefhulp", "R", Selectie, False
 
Waarschijnlijk heb je de Analysis Toolpak niet geactiveerd.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan