Avatar billede perpe Nybegynder
13. september 2013 - 12:17 Der er 7 kommentarer og
1 løsning

Fordeling af personer i gruppe

Hej,

Jeg har 14 kvinder og 14 mænd, der hver måned skal fordeles i 7 grupper med 2 kvinder og 2 mænd i hver gruppe.

Det skulle gerne være sådan at ingen grupper har den samme sammensætning i en periode på 12 måneder.

Er der nogen der har et forslag til en løsning på dette problem?

vh
perpe
Avatar billede finb Ekspert
13. september 2013 - 14:51 #1
Opfattes en gruppe som ændret, hvis blot een deltager udskiftes ?
Avatar billede perpe Nybegynder
13. september 2013 - 15:31 #2
Hej finb,

Ja gruppen vil være ændret såfremt alene en deltager udskiftes.

vh

perpe
Avatar billede jens48 Ekspert
14. september 2013 - 00:43 #3
Prøv om du kan bruge dette
http://gupl.dk/701535/
Avatar billede jernrosen3 Professor
15. september 2013 - 06:11 #4
Jeg har kigget lidt med over jeres skuldre *S*, da jeg senere skal bruge næsten samme udfordring til holdsætning.

Det ser umiddelbart godt ud; men der er små fejl i din kode.

Jeg har prøvekørt din makro med navne i stedet for K01 - K02 etc og får sommetider hold hvor f.eks. Karen er på 3 forskellige hold i samme måned.
Avatar billede jens48 Ekspert
15. september 2013 - 14:37 #5
Ja, jeg satte en ekstra linie til overskrift ind efter at have skrevet makroen. Det skal man ikke gøre. Prøv denne
http://gupl.dk/701566/
Avatar billede perpe Nybegynder
16. september 2013 - 09:05 #6
Hej jens48,

Det ser godt ud, men det løser ikke helt opgaven, idet jeg oplever at der kommer 3 eller 4 kvinder i nogle af grupperne, når jeg erstatter K01, ... og M01, .... med rigtige navne.

vh

Peter Roer
Avatar billede jens48 Ekspert
18. september 2013 - 20:27 #7
Den skulle virke hvis du retter makroen til nedenstående (dvs. uden alfabetisk sortering, så kvinderne altid står i de to første linier):

Dim x As Integer
Dim y As Integer
Dim z As Integer
Range("Q2:Q15").ClearContents
Randomize
For x = 1 To 7
Do
y = Int(Rnd() * 14) + 2
Loop Until WorksheetFunction.CountIf(Range("q2:Q15"), y) = 0
Cells(y, 17) = y
Cells(3, x + 3) = Cells(y, 1)
Next
For x = 1 To 7
Do
y = Int(Rnd() * 14) + 2
Loop Until WorksheetFunction.CountIf(Range("q2:Q15"), y) = 0
Cells(y, 17) = y
Cells(4, x + 3) = Cells(y, 1)
Next
Range("Q2:Q15").ClearContents
For x = 1 To 7
Do
y = Int(Rnd() * 14) + 2
Loop Until WorksheetFunction.CountIf(Range("q2:Q15"), y) = 0
Cells(y, 17) = y
Cells(5, x + 3) = Cells(y, 2)
Next

For x = 1 To 7
Do
y = Int(Rnd() * 14) + 2
Loop Until WorksheetFunction.CountIf(Range("q2:Q15"), y) = 0
Cells(y, 17) = y
Cells(6, x + 3) = Cells(y, 2)
Next
End Sub
Avatar billede perpe Nybegynder
19. september 2013 - 08:35 #8
Det virker :-)

Tak for hjælpen.

vh

perpe
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester