Avatar billede NDN Praktikant
05. februar 2019 - 15:01 Der er 11 kommentarer

Rangliste

Hej Eksperter
Jeg har en udfordring med Excel.
Jeg vil automatisk angive en rangering mellem 1 og 50 Men pladserne i rangeringen skifter konstant. Derfor søger jeg en løsning som automatisk rykker tallet videre.
Ex.
1. Emil
2. Kasper
3. Jesper
Så vinder Jesper over Emil og skal dermed være nr. 1. Emil nr. 2 og Kasper nr. 3.
Der skal også tages højde for, at en deltager skal kunne rykke fra 3. til 2. pladsen.
Kan Excel automatisk skubbe tallene videre til næste navn?
På forhånd tak.
Avatar billede Jan K Ekspert
05. februar 2019 - 15:40 #1
Hvis  vi antager, at du har Emil, Kasper og Jesper i B1, B2 og B3 og de point, der udløser placeringen i C1, C2 og C3 og gerne vil have rangeringen til at stå i A1 til A3, så indsæt denne formel:

=PLADS(C1;$C$1:$C$3)

og kopier ned. Hvis de også skal sorteres når placeringerne skifter, skal du enten gøre det manuelt eller vha VBA.
Avatar billede Jan K Ekspert
05. februar 2019 - 15:44 #2
Du skal selvfølgelig udvide området i formlen til de 50 rækker, du vil have med, fx

=PLADS(C2;$C$2:$C$51)
Avatar billede Jan K Ekspert
05. februar 2019 - 15:49 #3
Hvis du vil automatisere, så der sorteres når placeringen ændres, kan du lægge denne kode på kodearket for det pågældende ark:

Private Sub Worksheet_Change(ByVal Target As Range)
    ActiveWorkbook.Worksheets("Ark1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Ark1").Sort.SortFields.Add Key:=Range("A2"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Ark1").Sort
        .SetRange Range("A2:C51")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

Ret "Ark1" til navnet på dit ark.
Avatar billede NDN Praktikant
05. februar 2019 - 16:02 #4
Mange tak for dit svar. Det er dog ikke det jeg leder efter.
Jeg ønsker en løsning hvor jeg i en celle kun taster 1, 2 eller 3 osv. Og at excel selv rykker talrækken dvs. at den autoudfylder de næste pladser.
A2 = Placering 1
A3 = Placering 2
B2 = Jesper
B3 = Emil

Det kan også beskrives som en top 100 over musik, når der lander et track som er bedre end nr. 5, overtager det nye track 5. pladsen og, 5. pladsen bliver automatisk rykket til 6. pladsen og 6. pladsen til 7. pladsen osv.
Avatar billede Jan K Ekspert
05. februar 2019 - 16:09 #5
Jeg skal lige forstå det rigtigt.

Du har fx

1. A
2. B
3. C

og så indsætter du en ny mellem A og B (indsætter du en tom række eller hvordan?)

så listen nu skal se sådan ud

1. A
2. D
3. B
4 .C

Hvordan viser du så, at B skal rykke op før A, hvis det er tilfældet?
Avatar billede Jan K Ekspert
05. februar 2019 - 16:11 #6
Hvis der skal ske en fysisk flytning af indholdet, kræver det VBA
Avatar billede NDN Praktikant
05. februar 2019 - 16:18 #7
Nej :) Sorry, Det var en urigtig sammenligning.
Kolonne A er placering, så A2 er "førstepladsen" A3 er "andenpladsen osv.
Kolonne B er navnet på deltageren. B2-Emil B3-Jesper osv.
Jeg vil kunne ændre tallet i kolonne A, ud fra Jesper, som placerer ham i kronologisk rækkefølge på den rigtige plads. Lad os sige, jesper kommer ind som nr. 25, så rykker den selv nr. 25, til 26. pladsen osv.
Avatar billede NDN Praktikant
05. februar 2019 - 16:35 #8
Jeg tænker at jeg kan bruge "Filtrer" funktionen, til at sortere placering efter Lavest til højest.
Avatar billede Jan K Ekspert
05. februar 2019 - 22:21 #9
VBA er løsningen. Jeg vll gerne se på det, men har først tid i morgen. Du kan ikke bruge en formel i A kollen, da du jo overskriver formlen, når du taster en ny placering.
Avatar billede Jan K Ekspert
07. februar 2019 - 22:33 #10
Så tror jeg den er næsten hjemme. "With a little help from my friends" ude i den store verden, er jeg nået frem til nedenstående kode. Den kræver dog en hjælpekolonne, her har jeg brug C-kolonnen, hvor du skal skrive ny placering for at givent navn. Når du trykker enter til det nye nummer, vil de øvrige numre blive renummereret og A-kolonnen sorteret efter den nye rækkefølge. Funktionen har dog en enkelt skavank, som jeg simpelthen ikke kan få styr på. Den virker kun korrekt, hvis et navn får et lavere nummer - altså skal rykke placeringen op. Skal et navn rykke placeringer ned går det ikke helt efter hensigten. Men altså
A  B          C
1  Jens
2  Ole
3  Viggo
4  Max
5  Børge      2
6  Helmer

Når du trykket Enter efter at have tastet 2-talleti i kolonne C kommer listen til at se således ud:

A  B          C
1  Jens
2  Børge
3  Ole
4  Viggo
5  Max
6  Helmer

Tallet, du skrev i c-kolonnen slettes automatisk. Og her er koden, som skal placweres i arkets kodeark. Har du omdøbt dit ark, skal du selvfølgelig ændre "Ark1" til det relevante.

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rngC As Range
    Dim LRow As Long
    Application.ScreenUpdating = False
    If Intersect(Target, Range("C2:C501")) Is Nothing _
        Or Target.Count > 1 Then Exit Sub
        If Target.Value = "" Then Exit Sub
 
    LRow = Cells(Rows.Count, 2).End(xlUp).Row
    For Each rngC In Range("A2:A" & LRow)
        If rngC >= Target And rngC < Target.Offset(, -2) Then
            rngC = rngC + 1
        End If
    Next
    Target.Offset(, -2) = Target
        ActiveWorkbook.Worksheets("Ark1").Sort.SortFields.Clear
        ActiveWorkbook.Worksheets("Ark1").Sort.SortFields.Add Key:=Range("A2"), _
            SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        With ActiveWorkbook.Worksheets("Ark1").Sort
            .SetRange Range("A2:B500")
            .Header = xlNo
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
    Application.EnableEvents = False
      Range("c2:c501").ClearContents
    Application.EnableEvents = True
    Application.ScreenUpdating = False
End Sub
Avatar billede Jan K Ekspert
07. februar 2019 - 22:34 #11
Beklager at den den ikke viser min struktur, men det er nok til at finde ud af. Skal området være større eller mindre end 500 rækker, kan du selv ændre de relevante steder, og ligeledes hvis du vil bruge en anden kolonne end C som hjælpekolonnen, hvor du taster.
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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