Toon posts:

Eigen (ingewikkelde) sorteer functie

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo allemaal,

Ik ben bezig om een excel sheet te maken op een eigen formule 1 seizoen bij te houden (Voor in de game F1 2016)
Nu ben ik niet erg vaardig in excel en loop nu tegen een muur.

Op dit moment heb ik dit: http://puu.sh/u7GgJ/1ba361a84b.png
Hier kan ik de finish positie van de coureur invullen en zal er automatisch het aantal verdiende punten worden bijgezet. Helemaal rechts is dan het totaal te zien.

Nu wil ik de coureurs op de juiste plaats in de lijst laten staan (meeste punten op 1). Echter is dit waar het nogal ingewikkeld word.

Ten tweede heeft formule 1 regels m.b.t. coureurs met een even aantal punten.

"In the event of any ties for position, the driver with superior race results (based on descending order, from number of wins to numbers of second-places down) will gain precedence."-Formule 1 officiële regels

Dus op het moment dat coureur A en B allebei 12 punten hebben moet worden gekeken wie er meer overwinningen heeft, is dit gelijk wie de meeste 2de plekken heeft en zo door totdat er eentje boven de ander uit komt.

Dus concreet mijn vragen:
- Hoe kan ik kolom A en Rij 1 en 2 vast zetten zodat deze niet in het sorteren worden meegenomen?
- Hoe moet ik de hierboven beschreven regels vastleggen in een sorteer functie en deze uitvoeren op de coureurs

Ik hoop dat ik een beetje duidelijk ben en dat jullie mij kunnen helpen!

Alvast dank!

Beste antwoord (via Verwijderd op 19-02-2017 14:38)


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Verwijderd schreef op vrijdag 17 februari 2017 @ 21:13:
- Hoe kan ik kolom A en Rij 1 en 2 vast zetten zodat deze niet in het sorteren worden meegenomen?
Geef bij sorteren... het sorteerbereik op.
- Hoe moet ik de hierboven beschreven regels vastleggen in een sorteer functie en deze uitvoeren op de coureurs
Codeer in een extra kolom de raceresultaten. Dat kun je mathematisch doen met (grote) getallen, maar eenvoudiger te begrijpen is iets als het volgende:
code:
1
=HERHALING("A";AANTAL.ALS(A1:D1;1)) & HERHALING("B";AANTAL.ALS(A1:D1;2))&HERHALING("D";AANTAL.ALS(A1:D1;3)) & HERHALING("D";AANTAL.ALS(A1:D1;4))... etc


Het resultaat is een tekst die eruit ziet als "AAABBCCC" voor iemand die drie keer eerste werd, twee keer tweede en drie keer derde. Door eerst op puntentotaal te sorteren en vervolgens op raceresultaat voldoe je aan de regels.

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland

Alle reacties


Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Verwijderd schreef op vrijdag 17 februari 2017 @ 21:13:
- Hoe kan ik kolom A en Rij 1 en 2 vast zetten zodat deze niet in het sorteren worden meegenomen?
Geef bij sorteren... het sorteerbereik op.
- Hoe moet ik de hierboven beschreven regels vastleggen in een sorteer functie en deze uitvoeren op de coureurs
Codeer in een extra kolom de raceresultaten. Dat kun je mathematisch doen met (grote) getallen, maar eenvoudiger te begrijpen is iets als het volgende:
code:
1
=HERHALING("A";AANTAL.ALS(A1:D1;1)) & HERHALING("B";AANTAL.ALS(A1:D1;2))&HERHALING("D";AANTAL.ALS(A1:D1;3)) & HERHALING("D";AANTAL.ALS(A1:D1;4))... etc


Het resultaat is een tekst die eruit ziet als "AAABBCCC" voor iemand die drie keer eerste werd, twee keer tweede en drie keer derde. Door eerst op puntentotaal te sorteren en vervolgens op raceresultaat voldoe je aan de regels.

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dank je wel! Hier had ik zelf nooit uitgekomen, maar ik vind het een geweldig bedacht antwoord! Zit nog een beetje te prutsen met de uitvoering, maar hier kom ik wel uit.

Dank u!

Acties:
  • 0 Henk 'm!

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Verwijderd schreef op zondag 19 februari 2017 @ 14:39:
Zit nog een beetje te prutsen met de uitvoering, maar hier kom ik wel uit.
Met een deelnemersveld van 22 wagens wordt het idd een draak van een formule. De rekenkundige oplossing is compacter.

Eerst reken je per race elke positie om in een positiegetal door het aantal races te verheffen tot de macht deelnemers minus positie. Maw een eerste plaats levert 11^21 op, de 22e plaats levert 1 op.
Aan het eind tel je per wagen alle 11 positiegetallen bij elkaar op en gebruik je dat weer als tweede sorteerveld.


Naar keuze de positiegetallen in aparte hulpkolom:
code:
1
=11^(22-pos)
en aan het eind optellen, of alles in één keer:
code:
1
=SOM(11^(22-C3);11^(22-E3);11^(22-G3)...;(11^22-W3))

[ Voor 19% gewijzigd door Lustucru op 20-02-2017 00:37 ]

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland