Excel sorteer-vraagje

Pagina: 1
Acties:
  • 3.155 views sinds 30-01-2008

Acties:
  • 0 Henk 'm!

  • jOzh
  • Registratie: Maart 2002
  • Laatst online: 23:07

jOzh

Sweet dude!

Topicstarter
Met het Europees Kampioenschap voetbal voor de boeg begint het bij mij alweer flink te kriebelen :)
Statistieken-gek als ik ben, ben ik begonnen met het opzetten van een Excel-sheet om de uitslagen en standen in bij te houden. Vrij snel kwam ik tot de conclusie dat ik toch niet zo thuis ben in Excel en stootte op een aantal probleempjes.

Het idee is dat ik uiteindelijk alleen de uitslagen van de wedstrijden invul en dat Excel uit deze uitslagen zelf een ranglijstje 'bouwt'. Dit heb ik wel redelijk voor elkaar (waarschijnlijk nogal omslachtig maar dat maakt me niet uit, het werkt in ieder geval)

Stel in Groep A hebben we deze uitslagen (random ingevuld dus geen gezeur als "Ja hoor, Griekenland dat met 3-1 van Portugal wint" ;) ):
code:
1
2
3
4
5
6
Portugal    - Griekenland   1   -   3
Spanje      - Rusland       2   -   1
Griekenland - Spanje         1  -   3
Rusland  - Portugal    2    -   2
Rusland  - Griekenland    1 -   0
Spanje    - Portugal       0    -   3


Dit zou resulteren in de volgende stand:
code:
1
2
3
4
5
            W   G   V   P   D
Portugal    1   1   1   4   1
Spanje    2 0   1   6   2
Rusland     1   1   1   4   0
Griekenland 1   0   2   3   3


Hoe krijg ik het nou voor elkaar dat Excel uit zichzelf deze ranglijst op punten sorteert zodat het team met de meeste punten altijd bovenaan staat? Zoals je ziet eindigen Portugal en Rusland hier met hetzelfde aantal punten, dus nog mooier zou zijn als Excel ook rekening houdt met onderlinge resultaten maar dit zal wel iets te ingewikkeld zijn ben ik bang...

Het tweede probleempje waar ik op stuitte; voordat het EK begint zijn uiteraard de uitslagen nog leeg. In het ranglijstje heb ik voor een gelijkspel de volgende formule gebruikt: =IF(G5=I5;1,0) (oftewel, als het aantal doelpunten van Portugal en Griekenland gelijk is, komt er in de ranglijst een 1 in de kolom onder G (voor Gelijk)). Als de cellen echter nog leeg zijn wordt er aan de voorwaarde voldaan (cellen zijn gelijk) en komt er dus een 1'tje onder de G en wordt ook 1 punt toegewezen. Dat klopt dus niet!! Iemand een suggestie hoe ik dit kan oplossen?

Grab shell dude!


Acties:
  • 0 Henk 'm!

  • jOzh
  • Registratie: Maart 2002
  • Laatst online: 23:07

jOzh

Sweet dude!

Topicstarter
Niemand die me kan helpen? ;(

Grab shell dude!


Acties:
  • 0 Henk 'm!

  • Rataplan
  • Registratie: Oktober 2001
  • Niet online

Rataplan

per aspera ad astra

jOzh schreef op 20 mei 2004 @ 20:35:
Niemand die me kan helpen? ;(
Jawel, maar je plaatst nogal een vraag :)

Het kan allemaal met Excel, maar het programma is niet voor dit soort zaken gemaakt en oplossingen worden dus nodeloos ingewikkeld. Eenzelfde probleem is met php/sql of een c-programmaatje even snel of sneller op te lossen...

Omdat je zo'n zielige smiley plaatst, wil ik wel een hint proberen te geven :>

Waarschijnlijk is het het snelst om de teams in je tweede tabel een rangnummer te (proberen te) geven dat je in de kolom voor je overzicht plaatst:
code:
1
2
3
4
5
               W    G    V    P    D
2  Portugal    1    1    1    4    1
1  Spanje      2    0    1    6    2
3  Rusland     1    1    1    4    0
4  Griekenland 1    0    2    3    3
en vervolgens de hele tabel met VLOOKUP opnieuw op te bouwen (en de oorspronkelijke tabel te hiden). MAX(punten-range) en MIN(punten-range) geven je de eerste en de laatste positie (zonder gelijke standen mee te nemen), voor de rest moet je denken aan heel veel IF's.

Bovendien moet je als alles werkt nog overal een extra laag IF's opnemen om foute uitvoer af te bakenen [ zoiets: =IF(ISERR(cel);"";correcteberekening) ].

Je kan met de data- en filter-menu's de lijstjes ook met de hand sorteren, maar dan kan je net zo goed alles met de hand doen :P

Als ik jou was zou ik me op VB(A) storten, dat gaat - inclusief de leercurve - een stuk sneller :) Dan kan je ook veel makkelijker extra regels - onderling resultaat, fair play-klassement, resultaten vorige EK, weet ik wat - implementeren.

HTH :)


Journalism is printing what someone else does not want printed; everything else is public relations.


Acties:
  • 0 Henk 'm!

  • jOzh
  • Registratie: Maart 2002
  • Laatst online: 23:07

jOzh

Sweet dude!

Topicstarter
Rataplan schreef op 20 mei 2004 @ 21:00:
Jawel, maar je plaatst nogal een vraag :)
En ik was al bang dat de vraag te simpel voor een tech-forum als GoT was ;)
Het kan allemaal met Excel, maar het programma is niet voor dit soort zaken gemaakt en oplossingen worden dus nodeloos ingewikkeld. Eenzelfde probleem is met php/sql of een c-programmaatje even snel of sneller op te lossen...

Omdat je zo'n zielige smiley plaatst, wil ik wel een hint proberen te geven :>
M'n 'ik-ben-zielig-act' pays off again! :P
Waarschijnlijk is het het snelst om de teams in je tweede tabel een rangnummer te (proberen te) geven dat je in de kolom voor je overzicht plaatst:
code:
1
2
3
4
5
               W    G    V    P    D
2  Portugal    1    1    1    4    1
1  Spanje      2    0    1    6    2
3  Rusland     1    1    1    4    0
4  Griekenland 1    0    2    3    3
en vervolgens de hele tabel met VLOOKUP opnieuw op te bouwen (en de oorspronkelijke tabel te hiden). MAX(punten-range) en MIN(punten-range) geven je de eerste en de laatste positie (zonder gelijke standen mee te nemen), voor de rest moet je denken aan heel veel IF's.

Bovendien moet je als alles werkt nog overal een extra laag IF's opnemen om foute uitvoer af te bakenen [ zoiets: =IF(ISERR(cel);"";correcteberekening) ].

Je kan met de data- en filter-menu's de lijstjes ook met de hand sorteren, maar dan kan je net zo goed alles met de hand doen :P
Zoals ik in m'n OP al zei ben ik nogal een Excel-noob, ik ga eerst maar eens uitvogelen wat VLOOKUP ook weer precies doet...
Uiteraard kan het sorteren ook met de hand mocht ik er echt niet uitkomen maar das niet zo leuk natuurlijk :)

Wat het probleem met de gelijke spelen betreft, zou het niet mogelijk zijn om een voorwaarde in te bouwen zodat er alleen een punt wordt toegekend indien er een getal tussen 0 en 9 ingevoerd wordt? Nu heb ik een IF "2 cellen zijn gelijk"; then "wijs een punt toe", kan hier niet een extra voorwaarde als "but only if cell = 0-9" ofzo aan worden toegevoegd?
Als ik jou was zou ik me op VB(A) storten, dat gaat - inclusief de leercurve - een stuk sneller :) Dan kan je ook veel makkelijker extra regels - onderling resultaat, fair play-klassement, resultaten vorige EK, weet ik wat - implementeren.
Aargh, dat red ik nooit voor het EK begint!! Wel leuk om nu alvast mee te beginnen voor het WK in 2006 ;)

Grab shell dude!


Acties:
  • 0 Henk 'm!

  • Freee!!
  • Registratie: December 2002
  • Laatst online: 23:27

Freee!!

Trotse papa van Toon en Len!

Excel heeft ook een Sort-functie, lijkt me dat je die ook vanuit een macro of iets dergelijks aan moet kunnen roepen.

The problem with common sense is that sense never ain't common - From the notebooks of Lazarus Long

GoT voor Behoud der Nederlandschen Taal [GvBdNT


Acties:
  • 0 Henk 'm!

  • Rataplan
  • Registratie: Oktober 2001
  • Niet online

Rataplan

per aspera ad astra

jOzh schreef op 20 mei 2004 @ 22:49:
En ik was al bang dat de vraag te simpel voor een tech-forum als GoT was ;)
Is 'ie ook :P Het is gewoon vreselijk veel werk om alle condities in een spreadsheet te bouwen, er zijn veel eenvoudiger oplossingen mogelijk :)

De sorteerfunctie is een goed voorbeeld: je zal er op 1 of andere manier rekening mee moeten houden dat je formules gaat sorteren, die door een andere plaats in de ranglijst andere waarden kunnen gaan opleveren. Of en hoe Excel beveiligt tegen het berekenen *terwijl* 'ie aan het sorteren is (ik neem aan dat je alle poules bij wilt houden) weet ik niet, het lijkt me iig buitengewoon lastig om het goed werkend te krijgen.

Really, ik denk dat je sneller VB leert dan dat je dit spreadsheet kan bouwen. Array'tje met wedstrijden, array'tje met teams, en dan op je gemak gaan sorteren met een while-loopje of twee :)

En ik denk dat het nog makkelijker is, en verreweg het minste tijd kost, om voor die twee wedstrijden elke dag ff handmatig de tabelletjes bij te werken :D


Journalism is printing what someone else does not want printed; everything else is public relations.


Acties:
  • 0 Henk 'm!

Anoniem: 94509

jOzh schreef op 20 mei 2004 @ 22:49:
[...]


Wat het probleem met de gelijke spelen betreft, zou het niet mogelijk zijn om een voorwaarde in te bouwen zodat er alleen een punt wordt toegekend indien er een getal tussen 0 en 9 ingevoerd wordt? Nu heb ik een IF "2 cellen zijn gelijk"; then "wijs een punt toe", kan hier niet een extra voorwaarde als "but only if cell = 0-9" ofzo aan worden toegevoegd?
Voor het probleem met de gelijke spelen kun je Excel twee voorwaarden laten hanteren. Bijvoorbeeld toevoegen dat de cellen ook groter moet zijn dan nul.
=IF(AND (2 cellen zijn gelijk),(cellen>0),then wijs punt toe)

De haakjes enzo staan vast niet helemaal goed, maar daar moet je maar even mee klooien.

Edit: =IF(AND(A1=B1;(A1+B1>0));"gelijk";"") Met goeie haakjes dus...

Edit2: =IF(AND(A1=B1;(A1+B1>=0));"gelijk";"") zo dan!

[ Voor 16% gewijzigd door Anoniem: 94509 op 20-05-2004 23:22 ]


Acties:
  • 0 Henk 'm!

  • jOzh
  • Registratie: Maart 2002
  • Laatst online: 23:07

jOzh

Sweet dude!

Topicstarter
Anoniem: 94509 schreef op 20 mei 2004 @ 23:13:
Voor het probleem met de gelijke spelen kun je Excel twee voorwaarden laten hanteren. Bijvoorbeeld toevoegen dat de cellen ook groter moet zijn dan nul.
=IF(AND (2 cellen zijn gelijk),(cellen>0),then wijs punt toe)

De haakjes enzo staan vast niet helemaal goed, maar daar moet je maar even mee klooien.
Hmm, dat klinkt in principe goed, maar 0-0 is natuurlijk ook een mogelijke uitslag, dus moet er niet gelden (cellen>0) maar (cellen "groter of gelijk aan" 0). Wat is in Excel het teken voor groter of gelijk? En dan nog het punt of voor Excel een lege cel gelijk is aan 0...

[edit]De formule werkt nu wel, echter een lege cel ziet Excel blijkbaar toch als '0' waardoor alsnog aan de vergelijking voldaan wordt en er een gelijk spel geteld wordt :(

[ Voor 13% gewijzigd door jOzh op 20-05-2004 23:29 ]

Grab shell dude!


Acties:
  • 0 Henk 'm!

  • Brothar
  • Registratie: Oktober 2000
  • Laatst online: 22:51

Brothar

meester

Ik zou eens zoeken op de site van Computer-Idee.
Die hebben in het verleden een poule in Excel gemaakt. Of anders bij Heise (C't) .
Waarom het wiel opnieuw uitvinden ?

Anders - tweakers willen ten slotte alles zelf doen - zou ik eerst de groepsindeling in aparte sheets zetten. Daar kan dan ook de rangorde (naast W, G, V etc) in worden meegenomen.
In aparte sheets staan dan het speelschemas.

Invoeren van een wedstrijdresultaat op de "spelschema-sheet" moet dan resulteren in aanpassen van het puntentotaal (en de rangorde) in de "groepsindelingsheet".
(Zo zou ik tenminste beginnen)

eagle


Acties:
  • 0 Henk 'm!

Anoniem: 69734

Gebruik de functie IsLeeg (IsEmpty?) om zeker te stellen dat er een uitslag is ingevoerd. Zo nee, niets doen. Zo ja, de verder tests uitvoeren.

Acties:
  • 0 Henk 'm!

Anoniem: 94509

hmmm, ik was zelf ook even bezig geweest met zo'n sheetje, maar die heb ik nu niet hier dus ik kan niet kijken of ik dit probleem ondervangen heb/had. Misschien kom ik er morgen nog even op terug.

PS Dat sorten is me ook nog niet gelukt maar daar heb ik eerlijk gezegd een zwaar hoofd in ook...

Acties:
  • 0 Henk 'm!

Anoniem: 65976

Misschien werkt dit:

code:
1
=ALS(B5=C5;ALS(B5<>"";"gelijk";"");"")


en nog mooier:

code:
1
=ALS(B5=C5;ALS(B5<>"";ALS(C5<>"";"gelijk";"");"");"")

[ Voor 55% gewijzigd door Anoniem: 65976 op 21-05-2004 00:01 ]


Acties:
  • 0 Henk 'm!

  • jOzh
  • Registratie: Maart 2002
  • Laatst online: 23:07

jOzh

Sweet dude!

Topicstarter
Anoniem: 69734 schreef op 20 mei 2004 @ 23:36:
Gebruik de functie IsLeeg (IsEmpty?) om zeker te stellen dat er een uitslag is ingevoerd. Zo nee, niets doen. Zo ja, de verder tests uitvoeren.
Koel, dit werkt! Thanks, nu kan ik tenminste verder!

Dat sorteren wordt moeilijk ben ik bang, dat moet dan maar handmatig denk ik... Mocht er iemand nog een idee hebben, ik hou me aanbevolen!
Ik kom vast nog een hele zooi probleempjes tegen, dan horen jullie het wel weer ;)

Grab shell dude!


Acties:
  • 0 Henk 'm!

Anoniem: 94509

Voor het sorteren (op advies van iemand hierboven) de max en min formule van stal gehaald en dat werkt gedeeltelijk.

Mijn situatie is nu zo dat ik op het eerste sheet alle uitslagen invul en dat op basis daarvan de gegevens wergegeven worden op het tweede (de standen).

Om de sortering te krijgen heb ik daarboven formules neergezet zodat de standen in de juiste volgorde worden weergegeven (alle standen staan nu als het ware twee keer op het tweede sheet, één keer niet op volgorde en één keer wel). Voor de eerste en de laatste plaats ben ik eruit.
Namelijk:
Als(EN(aantal punten ploeg A=max van de poule,doelsaldo ploeg A=max van de poule,doelpunten voor ploeg A=max van de poule), then ploeg A, else "hele riedeltje nog een keer voor ploeg B", dan B, else "hele riedeltje voor C", dan C en dan nog een keer voor D.
Voor de laatste plaats kun je alle MAX vervangen door MIN.

Op basis van de naam die wordt weergegeven op de eerste en de laatste plaats kun je de uitslagen weergeven uit de standen die niet op volgorde staan via INDEX en MATCH.

MAAR... nu zit ik nog met de derde en vierde plaats....

iemand misschien nog een idee??

Acties:
  • 0 Henk 'm!

  • Rataplan
  • Registratie: Oktober 2001
  • Niet online

Rataplan

per aspera ad astra

Anoniem: 94509 schreef op 21 mei 2004 @ 10:20:
MAAR... nu zit ik nog met de derde en vierde plaats....

iemand misschien nog een idee??
Jazeker - zoek de reglementen eens op :P

Als ik het wel heb is het doelsaldo in eerste én tweede instantie niet van belang. De volgorde wordt eerst bepaald door het aantal behaalde punten, dan door onderling resultaat in punten (waarbij er twee, drie of vier teams evenveel punten kunnen hebben), en dan pas door onderling doelsaldo (en dan door gemaakte doelpunten, en daarna zijn er nog een stuk of drie, vier criteria waaronder het FIFA fair-play-klassement, als de regels sinds Euro 2000 niet veranderd zijn). En vooral het onderlinge resultaat is lastig - maar werk dus eerst uit waar je op wil sorteren voordat je gaat implementeren.

Een opzetje om alleen op punten te sorteren, met wat extra tabellen die je voor het vervolg nodig zou kunnen hebben, heb ik hier voor je neergezet.

Check it out, ik ben benieuwd ;)


Journalism is printing what someone else does not want printed; everything else is public relations.


Acties:
  • 0 Henk 'm!

  • jOzh
  • Registratie: Maart 2002
  • Laatst online: 23:07

jOzh

Sweet dude!

Topicstarter
Rataplan schreef op 21 mei 2004 @ 13:29:
[...]
Jazeker - zoek de reglementen eens op :P

Als ik het wel heb is het doelsaldo in eerste én tweede instantie niet van belang. De volgorde wordt eerst bepaald door het aantal behaalde punten, dan door onderling resultaat in punten (waarbij er twee, drie of vier teams evenveel punten kunnen hebben), en dan pas door onderling doelsaldo (en dan door gemaakte doelpunten, en daarna zijn er nog een stuk of drie, vier criteria waaronder het FIFA fair-play-klassement, als de regels sinds Euro 2000 niet veranderd zijn). En vooral het onderlinge resultaat is lastig - maar werk dus eerst uit waar je op wil sorteren voordat je gaat implementeren.

Een opzetje om alleen op punten te sorteren, met wat extra tabellen die je voor het vervolg nodig zou kunnen hebben, heb ik hier voor je neergezet.

Check it out, ik ben benieuwd ;)
Aargh, spoiler alert!!! ;)
Nee geintje, ik ga er zeker eens uitgebreid naar kijken. Thanks!

Grab shell dude!


Acties:
  • 0 Henk 'm!

  • jOzh
  • Registratie: Maart 2002
  • Laatst online: 23:07

jOzh

Sweet dude!

Topicstarter
Hele harde kick!

Tja, 2 jaar geleden het EK, nu dus het WK, waar ik uiteraard ook weer een excel schema van wilde hebben :)
Ik heb even verder gebreid en nu wordt er bij een gelijk puntenaantal eerst gesorteerd op onderling resultaat, vervolgens op doelpuntsaldo en tenslotte op doelpunten gescoord. Als dat allemaal gelijk is geeft ie een error ;)
Hier te vinden, commentaar en fouten hoor ik uiteraard graag! :)

Grab shell dude!


Acties:
  • 0 Henk 'm!

  • michielske
  • Registratie: Maart 2006
  • Laatst online: 10-06 13:38
JOzh.
Ik heb dit draadje gevonden omdat ik momenteel bezig ben met een excel waarin ik hetzelfde probleem heb als jij. Ik ben op zoek naar een handige manier om de onderlingen wedstrijden te sorteren. heb jij dit eenvoudig kunnen oplossne?

kan je jouw excel even doorsturen of opnieuw posten?

Acties:
  • 0 Henk 'm!

  • Speedmaster
  • Registratie: Juli 2005
  • Laatst online: 18:55

Speedmaster

Make my day...

Wat denk je zelf na 10 jaar en 5 of meer excel versies verder......

Acties:
  • 0 Henk 'm!

  • Rupie
  • Registratie: Augustus 2006
  • Laatst online: 21-07 13:21
Ik denk ook niet dat het handig is om dit topic verder te gaan michielske. Je bent welkom om een eigen topic aan te maken waarin je uiteraard uitlegt wat je al geprobeerd hebt en waar je vast loopt.

Desktop | Server | Laptop

Pagina: 1

Dit topic is gesloten.