04. april 2017 - 20:30Der er
5 kommentarer og 1 løsning
Tilfældig udvægelse fra en power pivot
Jeg har en power pivot fra sql, der udgør min population. Jeg har beregnet et minimumskrav til stikprøveundersøgelsen. Jeg har så brug for at validere, at fordelingen på stikprøven svarer til fordelingen på populationen.
Jeg vil gerne maskinelt tilfældigt udvælge x antal rækker fra populationen svarende til mit minimumskrav til stikprøveundersøgelsen, hvor intet udtræk fremkommer to gange eller mere.
Kan jeg få hjælp til en makro, der kan dette? Jeg har ikke faste værdier, da mit minimumskrav til stikprøveundersøgelsen varierer med opdateringen af min power pivot.
Function RANDOMARRAY(n As Integer, min As Integer, max As Integer, Optional unique As Boolean = False) Dim i As Integer Dim rand As Integer ReDim a(1 To n) As Integer
If max - min + 1 < n Then RANDOMARRAY = CVErr(xlErrValue) Else Randomize
For i = 1 To n Do rand = min + Int((max - min + 1) * Rnd) Loop While unique And isUsed(i - 1, a, rand) a(i) = rand Next i RANDOMARRAY = a End If End Function Function isUsed(n As Integer, a() As Integer, value As Integer) Dim i As Integer
isUsed = False For i = 1 To n If a(i) = value Then isUsed = True Exit For End If Next i End Function
Hvis du vil bruge den som brugerdefineret funktion (erstat n og N med dine tal eller celle-referencer:
=RANDOMARRAY(n;1;N;TRUE)
Hvis du vil have array'et vist, skal du bruge den som matrix-funktion.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.