Toon posts:

[Excel + VBA] Selectie uitbreiden op basis van celinhoud

Pagina: 1
Acties:
  • 190 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hallo allemaal,

Ik heb een vraagje over een selectie in VBA. Ik heb in een Excel worsheet 5 kolommen met daarin een ratingoverzicht.

Kolom 1: Rating
Kolom 2: Naam speler
Kolom 3: Aantal gewonnen
Kolom 4: Aantal gespeeld
Kolom 5: Percentage

Nu ben ik bezig om met een functie in VBA de rating te bepalen aan de hand van het percentage. Dit gaat prima via Data->Sorteren, maar ik wil er graag iets aan toevoegen. Nu is het zo dat als je 100% score hebt je op posistie 1 staat en 0 % op de laatste plaats. Stel dat er 2 of meerdere spelers 100% hebben, dan moet er vervolgens op het aantal gespeelde wedstrijden worden gesorteerd. Dit gaat goed bij de 100%, maar als er meedere spelers 0% hebben, wil ik dat diegene met het meeste gespeelde wedstrijden onderaan komt.

Ik heb een macro van het sorteren opgenomen en nu wil ik die dus uitbreiden voor de 0% spelers. Ik had bedacht om de selectie te houden en in die selectie de rijen waarin de score 0% voorkomt opnieuw te sorteren, maar hoe doe je dat?

  • onkl
  • Registratie: Oktober 2002
  • Laatst online: 11:35
Dat lukt met twee tussenkolommen.
Bijvoorbeeld, als ik je kolom 1-5 even vertaal in A-E en je data in rij 2-8 staat:
Kolom 6/F: =RANK(E2,E$2:E$8) , Rank is in NL denk ik Rang
Kolom 7/G: =IF(F2=MAX(F$2:F$8),F2*1000+A2,F2*1000-A2), If-ALS, MAX=Max?, als de rank de hoogste is, dat zal zijn bij de 0% groep, tel dan het aantal gewonnen wedstrijden bij de rank*1000 op, anders: trek het ervan af. Als het goed is heb een lijstje getallen wat, als gesorteerd precies aan jou ranglijstideaal voldoet. Sorteren op kolom G zou genoeg moeten zijn en je nummering krijg je door:
=RANK(G2,G$2:G$8,1)
Geen macro's meer nodig en die twee hulpkolommen kan je verstoppen.

Verwijderd

Topicstarter
Thanx, ga ik ff proberen

edit:
Het principe van jou werkt prima, alleen niet helemaal zoals ik wilde. Maar ik heb het dankzij je reactie wel voor mekaar gekregen. Ik heb nu in kolom 6 idd die tijdelijke ranking staan en ik kolom 7 een kopie van die tijdelijke ranking, alleen wordt er eerst even gekeken of het percentage 0 is. Indien dit het geval is komt er bij die tijdelijke ranking 50 bovenop. (Dus Kolom 7 =ALS(E2 = 0;F2 + C2;F2))
Dan ontstaat er in die kolom een rijtje getallen wat je weer kunt sorteren.

Dank voor hulp!

[ Voor 92% gewijzigd door Verwijderd op 09-05-2005 21:33 ]


  • sanfranjake
  • Registratie: April 2003
  • Niet online

sanfranjake

Computers can do that?

(overleden)
In verband met de opening van Officesuites en -software is dit topic hier vanuit Software Algemeen naar toe verplaatst :)

Mijn spoorwegfotografie
Somda - Voor en door treinenspotters