Toon posts:

[Excel + VBA] Selectie uitbreiden op basis van celinhoud

Pagina: 1
Acties:
  • 191 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: 23:24
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.

Eenmaal in ons leven hebben we de mensen gelukkig willen maken. Dat zullen wij onszelf nooit vergeven.


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