Podium

Informatii despre cum se utilizeaza Microsoft Excel 2003. Calcule, Formule, Functii, Tabele pivot, Analiza datelor, etc
IPP
Moderator
Moderator
Mesaje: 4196
Membru din: Mie Iul 29, 2009 7:26 am
Localitate: Cluj-Napoca

Re: Podium

Mesaj de IPP » Mie Ian 15, 2014 7:54 pm

Formula se bazeaza pe rezultatele existente pe coloana C

Daca ajuta, incerc o "traducere".... pentru locul 1

-Daca, numarand de cate ori apare cifra 1 rezultatul este 1 (asta e partea de countif) atunci afiseaza doar denumirea aflata in dreptul sau (adica pe acelasi rand), pe coloana 1 (aici e partea cu index si mach)
-Daca, numarand de cate ori apare cifra 1 rezultatul este 2 atunci afiseaza un rezultat format din denumirea aflata in dreptul sau (adica pe acelasi rand), pe coloana 1 urmat de ; si spatiu si de denumirea aflata in dreptul sau pe acelasi rand +1 (deci pe rândul imediat urmator), pe coloana 1.
-Daca, numarand de cate ori apare cifra 1 rezultatul este 3 atunci afiseaza un rezultat format din denumirea aflata in dreptul sau (adica pe acelasi rand), pe coloana 1 urmat de ; si spatiu si de denumirea aflata in dreptul sau pe acelasi rand +1 (deci pe rândul imediat urmator), pe coloana 1 urmat de ; si spatiu de de denumirea aflata in dreptul sau pe acelasi rand + 2 (deci doua rânduri mai jos), pe coloana 1

Dupa acelasi model este si pentru locurile urmatoare doar ca, in functie de loc cifra 1 (atat din countif cat si din formula meci) va fi inlocuita cu 2 (pentru locul 2) cu 3 pentru locul 3...

Pentru a nu completa formula degeaba, eventual s-ar putea adauga inca un if si un countif care sa afiseze un mesaj de genul: "mai mult de 3 persoane au acelsi punctaj" caz in care nu va ramane decat sa completati formula ;)

halfbebi
Mesaje: 154
Membru din: Mar Ian 26, 2010 10:25 am

Re: Podium

Mesaj de halfbebi » Mie Ian 15, 2014 8:38 pm

Multumesc mult, merge perfect.
Eii, de acum fac bitzblitzuri, macrou pentru sort automat(cu sorcut la taste), sau poate chiar buton - daca reusesc, etc. etc. :D
Stima

IPP
Moderator
Moderator
Mesaje: 4196
Membru din: Mie Iul 29, 2009 7:26 am
Localitate: Cluj-Napoca

Re: Podium

Mesaj de IPP » Mie Ian 15, 2014 9:35 pm

Buna seara

Daca e vorba de macro poate testati fisierul atasat in care am folosit urmatorul cod:

Cod: Selectaţi tot

Sub clasament()

'IPP - 15.01.2014

Application.ScreenUpdating = False

Dim nrRepetari
nrRepetari = 0

Dim result
result = ""

Sheets("clasament").Select

Range("C2:C65536").ClearContents
Range("F2, E3, G4, H5").ClearContents

Range("A1").CurrentRegion.Sort Key1:=Range("B2"), Order1:=xlDescending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal

Range("C2").Value = 1
Range("C3").Select

Do Until IsEmpty(ActiveCell.Offset(0, -1))
    If ActiveCell.Offset(0, -1) = ActiveCell.Offset(-1, -1) Then
     ActiveCell = ActiveCell.Offset(-1, 0)
    Else
     ActiveCell = ActiveCell.Offset(-1, 0) + 1
    End If
ActiveCell.Offset(1, 0).Select
Loop

Range("C2").Select
Do Until ActiveCell.Value > 4 Or ActiveCell.Value = ""
nrRepetari = Application.WorksheetFunction.CountIf(ActiveCell.CurrentRegion.Columns(3), ActiveCell) - 1

result = Cells(ActiveCell.Row, 1)
For i = 1 To nrRepetari
 result = result & ", " & Cells(ActiveCell.Row + i, 1)
Next i

Select Case ActiveCell.Value
Case 1
 Range("F2") = result
Case 2
 Range("E3") = result
Case 3
 Range("G4") = result
Case 4
 Range("H5") = result
End Select

ActiveCell.Offset(nrRepetari + 1, 0).Select
result = ""

Loop

Application.ScreenUpdating = True
End Sub
care:
-sterge eventuala informatie veche de pe coloana C si de pe "podium"
-face sortare descrescatoare dupa punctaj
-insereaza pe coloana c (direct ca rezultate) locul ocupat
-parcurge coloana C pana valoarea este fie nula fie mai mare decat 4 si incarca variabila result
-pune rezultatul (result) pe "podium" in functie de valoarea din celula activa la un moment dat (de ex. daca e 2 va pune rezultatul pe podium pe locul 2)

Pentru testare: deschideti fisierul atasat, activati macro/continutul, puneti informatia "bruta" pe cololanele A:B începând cu rândul 2 si rulati macro

IP
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

halfbebi
Mesaje: 154
Membru din: Mar Ian 26, 2010 10:25 am

Re: Podium

Mesaj de halfbebi » Joi Ian 16, 2014 8:41 am

Eu am inregistrat un macro simplu, dar al tau e prea perfect,
Multumesc mult
Asa cum spuneam, studiez la el ca sa-l inteleg
Stima

Închis

Înapoi la “Intrebari despre Excel 2003”