Avatar billede hej99 Nybegynder
04. november 2015 - 17:49 Der er 27 kommentarer og
1 løsning

Excel - Hjælp til at blande en liste med personer.

Hej Alle.

Jeg sidder med en idé til "et værktøj" i excel 2013, som vil hjælpe mig virkelig meget på mit arbejde. Jeg har prøvet at sidde lidt og prøvet selv, men er sku ikke haj til excel... Endnu.

Det jeg gerne vil er: Jeg har 3 kolonner med x antale navne i

Navn1        Navn2      Navn3
Navn4        Navn5      Navn6
Navn7        Navn8      Navn9
...
og vil gerne have blandet alle navnene så jeg har en lignede opsætning med 3 kolonner, bare navnene blandet. Jeg har siddet og leget med random ,HVIS og OG funktionerne, men kan ikke lige se en måde, hvordan jeg kan få det til at virke.

Jeg tænker, at der skal være et "input" felt og et output felt, så man bare lige hurtigt kan copy paste.

Hvis der er nogle der har nogle idér, eller hurtigt vil lave en skitse vil jeg være meget glad.
Avatar billede supertekst Ekspert
04. november 2015 - 23:09 #1
Skulle nok kunne lade sig gøre med VBA, som jeg har anvendt i forskellige systemer. Det kan så ske automatisk.
Gerne mere info om formålet.
Avatar billede store-morten Ekspert
05. november 2015 - 00:03 #2
Eks. med 9 navne

A1: =PLADS(B1;$B$1:$B$9) fyld ned til A9
B1: =SLUMP() fyld ned til B9
C1:C9 tastes navne
D1: =INDEKS($B$1:$C$9;A1;2) fyld ned til D9

Generere tilfældige pladser ved åbning af fil, eller ved tryk på F9
Funktioner --> Indstillinger --> Beregning --> Manuel i stedet for Automatisk og Generer tilfældige pladser ved tryk på F9

Tabel:
F2: =D1
G2: =D4
H2: =D7

Marker F2:H2 fyld 3 rækker ned.
Avatar billede hej99 Nybegynder
05. november 2015 - 18:23 #3
Det ser ud til at virke meget godt. Det eneste der mangler så er, at i stedet for at den tager navnene fra C1:C9 (en lodret række), så skal den tage navnene sådan som beskrevet. Altså i 3 koloner og rækker.
Avatar billede hej99 Nybegynder
05. november 2015 - 18:24 #4
#1 store-morten har meget godt fat i idén, det eneste der mangler er som beskrevet i #3. Jeg vil sidde og prøve at få det til at virke :)
Avatar billede store-morten Ekspert
05. november 2015 - 18:55 #5
Kan du ikke trække navne fra de 3 koloner og rækker, over i C1:C9

C1: =celle med navn1
C2: =celle med navn2
C3: =celle med navn3
C4: =celle med navn4.......osv.

Skjul evt. kolonne A:C derefter.
Avatar billede hej99 Nybegynder
05. november 2015 - 19:04 #6
Jo, men det tager bare lidt tid :P Ville være fedt, hvis jeg bare kunne sætte dem ind som jeg havde dem og få dem ud på den rigtige måde. Sidder selv med en løsning, men kan simpelthen ikke få det til at virke. Mine HVIS Funktioner bliver ved med, at give mig et 0, hvis der ikke er navne nok.
Avatar billede store-morten Ekspert
05. november 2015 - 19:10 #7
Kan du sende arket på e-mail?
Avatar billede jens48 Ekspert
05. november 2015 - 19:48 #8
Nu ved jeg ikke hvor mange navne det drejer sig om, men hvis du har navnene stående i A1:C8 kan du med følgende to formler få det til at virke
I D1 skrives:

=RAND()

Dette kopieres til D1:F8
I G1 skrives:

=IF(RANK(D1;$D$1:$F$8)<9;INDEX($A$1:$A$8;RANK(D1;$D$1:$F$8));"")&IF(AND(RANK(D1;$D$1:$F$8)>=9;RANK(D1;$D$1:$F$8)<17);INDEX($B$1:$B$8;RANK(D1;$D$1:$F$8)-8);"")&IF(RANK(D1;$D$1:$F$8)>=17;INDEX($C$1:$C$8;RANK(D1;$D$1:$F$8)-16);"")

Dette kopieres til G1:I8
Det virker her. Jeg skal gerne rette den til, hvis du siger hvor navnene står og hvor der er 3 ledige kolonner til RAND funktionen.
Jeg kan se du bruger dansk Excel, så du får lige formlerne på dansk også:

=SLUMP()

og

=HVIS(PLADS(D1;$D$1:$F$8)<9;INDEKS($A$1:$A$8;PLADS(D1;$D$1:$F$8));"")&HVIS(OG(PLADS(D1;$D$1:$F$8)>=9;PLADS(D1;$D$1:$F$8)<17);INDEKS($B$1:$B$8;PLADS(D1;$D$1:$F$8)-8);"")&HVIS(PLADS(D1;$D$1:$F$8)>=17;INDEKS($C$1:$C$8;PLADS(D1;$D$1:$F$8)-16);"")
Avatar billede hej99 Nybegynder
05. november 2015 - 20:05 #9
Her er et screenshot af hvordan jeg gerne vil have det til at se ud.
https://www.dropbox.com/s/e4sqcsw6ph14w4b/Sk%C3%A6rmbillede%202015-11-05%2020.04.49.png?dl=0
Avatar billede jens48 Ekspert
05. november 2015 - 21:15 #10
Jeg har lagt en fil hvor antallet af navne kan ændres på http://gratisupload.dk/f/8ucp83m41i
Avatar billede store-morten Ekspert
05. november 2015 - 21:29 #11
#10
Prøv at rette:
D2: =HVIS(A2="";"";SLUMP())
E2: =HVIS(B2="";"";SLUMP())
F2: =HVIS(C2="";"";SLUMP()) fyld ned til række 17
Avatar billede hej99 Nybegynder
05. november 2015 - 21:37 #12
Fedt, jens48. Men på din version - hvis der ikke er nok navne, placere den bare navnene på tilfældige pladser over det hele. Vil gerne have at de bliver samlet i toppen/ bevar input formatet - altså er placeret i toppen og ikke bare hulter til bulder.
Avatar billede store-morten Ekspert
05. november 2015 - 22:05 #13
hej99

Prøv at se indlæg 11
Avatar billede hej99 Nybegynder
05. november 2015 - 22:12 #14
#13 jeg vil kigge på det imorgen, tak for din hjælp :)
Avatar billede jens48 Ekspert
05. november 2015 - 22:49 #15
Ja, hvis du sætter store-mortens rettelse ind kan du imiddelbart bruge den til et vilkårligt antal navne.
Avatar billede hej99 Nybegynder
06. november 2015 - 14:05 #16
#13 Store-morten kan du ikke uploade en fil med din løsning? Kan umiddelbart ikke få det til at virke?
Avatar billede jens48 Ekspert
06. november 2015 - 14:43 #17
Jeg har lagt store-mortens rettelser in i denne fil. http://gratisupload.dk/f/8ud1o2oh00
Avatar billede hej99 Nybegynder
06. november 2015 - 14:50 #18
#17 jeg er kommet frem til samme resultat. Men prøv at slet et valgfrit navn under input. Så kommer der en tom celle og i nogle tilfælde to tommer celler. Og jeg forstår ikke hvorfor.
Avatar billede jens48 Ekspert
06. november 2015 - 15:56 #19
http://gratisupload.dk/f/8ud3d5tpb9

I denne fil er der taget hensyn til at der er linier med mindre end 3 navne
Avatar billede hej99 Nybegynder
09. november 2015 - 19:25 #20
Den virker stadig ikke helt :/
Avatar billede jens48 Ekspert
09. november 2015 - 21:05 #21
Nu er der ikke mange oplysninger i din mail der viser hvad der kunne være galt, men lad mig gætte. Der er huller i dine kolonner af navne. Det er nemlig den eneste måde jeg kan få den til at fejle her. Den seneste udgave kan behandle navnene korrekt, selv om der ikke er lige mange navne i hver kolonne. Men den virker kun hvis der er navne i alle celler ned til sidste navn. Er det der dit problem ligger?
Avatar billede jens48 Ekspert
09. november 2015 - 22:32 #22
Alternativt kan du slette alle formlerne og bruge denne makro i stedet:

Sub LavNavneListe()
Dim c As Range
Dim x, z As Integer
Range("G2:I17").ClearContents
Range("E1").EntireColumn.Hidden = True
Range("A2:A17").Copy Destination:=Range("E1")
Range("B2:B17").Copy Destination:=Range("E17")
Range("C2:C17").Copy Destination:=Range("E33")
Range("E1:E48").Select
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("E1:E48") _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Sheet1").Sort
        .SetRange Range("E1:E48")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
z = Application.WorksheetFunction.CountA(Range("E:E"))
For Each c In Range("G2:I17")
If c.Offset(0, -6) <> "" Then
Do
x = Int((z) * Rnd + 1)
Loop While Cells(x, 5) = ""
c = Cells(x, 5)
Cells(x, 5).ClearContents
End If
Next
Range("A1").Select
End Sub
Avatar billede hej99 Nybegynder
09. november 2015 - 22:39 #23
Ja, vil gerne have at jeg bare kan sætte f.eks. 9 navne ind i boksen også blander den dem. Hvis man gør det nu, kommer der "huller" og der er nogle navne der mangler.
Avatar billede hej99 Nybegynder
09. november 2015 - 22:40 #24
Tak jens, vil give det et forsøg imorgen.
Avatar billede jens48 Ekspert
10. november 2015 - 00:22 #25
Med denne makro kan du sætte navnene ind tilfældigt og den nye liste vil altid starte i øverste række:

Sub LavNavneListe2()
Dim c As Range
Dim x, y, z, r, k As Integer
r = 2
k = 7
Range("G2:I17").ClearContents
'Range("E1").EntireColumn.Hidden = True
Range("A2:A17").Copy Destination:=Range("E1")
Range("B2:B17").Copy Destination:=Range("E17")
Range("C2:C17").Copy Destination:=Range("E33")
Range("E1:E48").Select
    ActiveWorkbook.Worksheets("Sheet2").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Sheet2").Sort.SortFields.Add Key:=Range("E1:E48") _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Sheet2").Sort
        .SetRange Range("E1:E48")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
z = Application.WorksheetFunction.CountA(Range("E:E"))
For y = 1 To z
Do
x = Int((z) * Rnd + 1)
Loop While Cells(x, 5) = ""
Cells(r, k) = Cells(x, 5)
Cells(x, 5).ClearContents
If k = 9 Then
r = r + 1
k = 7
Else
k = k + 1
End If
Next
Range("A1").Select
End Sub
Avatar billede hej99 Nybegynder
13. november 2015 - 11:20 #26
Hvordan bruger man makros?
Avatar billede jens48 Ekspert
15. november 2015 - 21:41 #27
Højreklik på fanebladet og indsæt makroen under Vis koder. Du kan så indsætte en knap og linke den til makroen. Alternativt kan makroen også ændres lidt, så den starter, når der skrives noget i en bestemt celle. Hvis du ønsker det, vil jeg gerne lave ændringen for dig.
Avatar billede hej99 Nybegynder
16. november 2015 - 21:27 #28
Har aldrig brugt de der macros før, så har virkelig ingen idé om hvordan man bruger dem. Men du har jo tydeligtvis lagt et stykke arbejde i det, så giver dig lige nogle point :)
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

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