• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Automatisch sorteren op meerdere gegevens

Status
Niet open voor verdere reacties.

iwantwin

Gebruiker
Lid geworden
27 apr 2010
Berichten
7
Ik heb in mijn excelsheet de volgende gegevens. Ik zal ze even nader toelichten..

Ik doe aan boogschieten en het wedstrijdprincipe is als volgt:
Er worden 30 tellende pijlen verschoten. Elke pijl kan maximaal een score van 10 punten hebben. Een maximum van 300 punten dus. Het gebeurt redelijk vaak dat er twee mensen met gelijk scoreaantal eindigen. In onderstaand voorbeeld hebben mike en kees allebij 233 punten geschoten. Wanneer twee schutter hetzelfde puntenaantal hebben vind er een shoot-off plaats. Deze score kan oneindig groot worden.

In de bestaande excel sheet werkt alles met handmatig sorteren en knippen en plakken. Ik wil dat nu gaan automatiseren maar het liefst zonder macro's, omdat er over een score verwerking zo min mogelijk tijd mag verstrijken.

Ik wil in kolom P een lijst met de namen van de nummer 1 naar de nummer 16 gesorteerd op basis van de score aflopend van hoog naar laag (236 bovenaan en 179 onderaan) en wanneer de score gelijk is op basis van de shootoff ook van hoog naar laag.

Ik wil in cel P2 de naam van de nummer 1, en in cel P3 de naam van de nummer 16, in P4 de naam van de nummer 2 en in P5 de naam van de nummer 15. Het voorbeeldbestand maakt dat duidelijker denk ik.

Het eerste gedeelte lukt met RANG() maar de shootoff kan ik daar niet inpassen.. Wie helpt mij?

baan(F) nr.(G) naam(H) score(I) shoot off(J)
1 1 kees 233 10
1 2 henk 219 0
2 3 bas 225 0
2 4 joost 236 0
3 5 piet 229 9
3 6 klaas 229 8
4 7 mirjam 230 0
4 8 bram 224 0
5 9 dirk 218 0
5 10 alex 223 0
6 11 mike 233 3
6 12 inge 226 0
7 13 jeanne 221 0
7 14 nico 234 0
8 15 maartje 179 0
9 16 wim 188 0

Alvast heel erg bedankt!
 

Bijlagen

Laatst bewerkt:
1.
Ik wil in kolom P een lijst met de namen van de nummer 1 naar de nummer 16 gesorteerd op basis van de score aflopend van hoog naar laag (236 bovenaan en 179 onderaan) en wanneer de score gelijk is op basis van de shootoff ook van hoog naar laag.
2.
Ik wil in cel P2 de naam van de nummer 1, en in cel P3 de naam van de nummer 16, in P4 de naam van de nummer 2 en in P5 de naam van de nummer 15.
Voor zover ik het kan beoordelen, zijn die twee punten met elkaar in strijd.
Het is overigens voor de lezers altijd handiger als je een Excelbestand als voorbeeld plaatst,
dan moet men niet alle gegevens gaan invoeren.
 
Ondanks de bijlage is het mij nog altijd niet duidelijk.
Geef aub eens aan welke namen er in R3 en R4 moeten komen.
Op basis van wat je schrijft (de nrs 1 en 16 van de voorrondes) zouden dat Kees en Wim moeten zijn, bij hen staan immers in de voorronde de getallen 1 en 16 vermeld. Maar op basis van de behaalde scores in de voorrondes zouden het Nico (nr. 14) en Maartje (nr.15) moeten zijn. Dit is erg verwarrend.
Dat je ergens een rangschikking van 1 t/m 16 zou willen op basis van de behaalde scores (zoals in je eerste bericht vermeld) vind ik nergens terug op je werkblad.
 
Haastige spoed is zelden goed blijkt maar weer.

Ik wil in cel P2 de naam van de nummer 1, en in cel P3 de naam van de nummer 16, in P4 de naam van de nummer 2 en in P5 de naam van de nummer 15.

Dus niet van 1 t/m 16.

Ik had het verkeerd geplakt.. In het echte bestand ging het om kolom P en in het voorbeeldbestand gaat het om kolom R. Ik heb het nu even goed geplakt..

De 'nummers' 1 en 16 bedoel ik mee dat daar de naam moet komen te staan van de persoon die als eerste is geeindigd in de voorronde en de naam van degene die 16e is geworden in de voorronde. Ik zal het bestand even wijzigen in mijn 1e post.
 
Hallo Iwantwin,

Ik neem aan dat eerst iedereen geschoten heeft en dat je daarna een sortering hebt gemaakt in de linkertabel (op basis van het aantal punten).

Maar in de cellen R3 t/m R18 moet een verwijzing naar een cel komen.
Ik denk dan dat in R3 de formule "=H3" komt te staan en in R4 "=H18".

Probleem is alleen dat die formules net mee door elkaar gehusseld zijn toen je de sortering deed.

Volgens mij kom je dus altijd op een macro uit. Wat is er trouwens op tegen om zo'n macro te definiëren en onder een opdrachtknop te zetten?

Hoe wil je het sneller hebben dan een klik op een opdrachtknop?

Groetjes,
Ger
 
Hallo Iwantwin,

Is dit ongeveer het resultaat wat je bedoelt?
Even afgezien dat ik het (ondanks je bezwaar daartegen) toch gewoon met een macro heb gedaan?

Succes, :thumb:
Ger
 
Als reactie op je eerste bericht:

Inderdaad is het zo simpel als =H3, maar dan moet het wel na de sortering zijn. Dus eerst moet de lijst gesorteerd worden op basis van kolom I en als tweede argument op kolom J. En dat lukt handmatig wel, maar de grap is dat ik dat automatisch wil.. Met macro's lukt dat wel, maar ik wil het zonder macro's omdat op locatie macro's niet gebruikt kunnen worden.

Dus dan is jouw oplossing automatisch niet wat ik bedoel.. Sowieso al niet omdat de lijst eerst gesorteerd moet worden en daarna pas in de 1e ronde ingevoerd.

Groetjes,
iwantwin
 
Ik wil in cel P2 de naam van de nummer 1, en in cel P3 de naam van de nummer 16, in P4 de naam van de nummer 2 en in P5 de naam van de nummer 15.
Dus niet van 1 t/m 16.
De 'nummers' 1 en 16 bedoel ik mee dat daar de naam moet komen te staan van de persoon die als eerste is geeindigd in de voorronde en de naam van degene die 16e is geworden in de voorronde. Ik zal het bestand even wijzigen in mijn 1e post.
MAAR WELKE NAMEN ZIJ DAT DAN ???
Daar kan verschillend over worden gedacht, zie mijn vorig bericht.
Om het kort te maken: zeg eens welke namen er in R3 en R4 moeten komen te staan !!!
 
Hallo Iwantwin,

In dat geval kan ik alllen maar herhalen wat ik in mijn eerste berichtje al schreef, namelijk: kan niet
ik ga nu even uit van míjn (uiteraard ook maar beperkte) kennis van Excel

Je kunt niet eerst een verwijzing naar een cel maken, dan de scores invullen, sorteren op die scores en dan met die verwijzingen nog steeds het resultaat krijgen wat jij wilt.

Succes, :thumb:
Ger
 
@Ger
Volgens mij klopt je macro niet helemaal
bij jou staat Kees als nr 1 met 233 punten
Echter Joost heeft 236 punten en moet dus hoger staan want als ik het goed begrijp telt eerst de score en is deze gelijk dan de shootoff

Hier mijn voorbeeldje met formules en wat extra kolommen.
 

Bijlagen

@ popipipo
Klopt inderdaad.
Maar ik heb zelfs niet eens gekeken naar die volgorde.
Je vult eerst al je scores in.
Daarna sorteer je de hele tabel zoals je dat zelf wil.
Dan krijg je de beste op nummer 1 enzovoorts.
En als de volgorde is zoals je hem bedoelde, klik je op de knop en heb je je indeling voor de finale. Daar ging het toch om?
Met het sorteren heb ik me niet bezig gehouden.
Dat was ook niet de vraag van Iwantwin.

@ iwantwin
Of wil je ook nog een oplossing voor het sorteren?
Zou ik overigens ook met een macro doen

Om popipipo maar eens te citeren: waarom moeilijk doen als het ook makkelijk kan.

Groetjes,
Ger
 
MAAR WELKE NAMEN ZIJ DAT DAN ???
Daar kan verschillend over worden gedacht, zie mijn vorig bericht.
Om het kort te maken: zeg eens welke namen er in R3 en R4 moeten komen te staan !!!

Sorry, ik heb nagelaten dat te beantwoorden inderdaad.

De uitkomst moet zijn:
1e FINALERONDE shoot
baan nr. naam score off
1 1 joost 0 0
1 2 maartje 0 0
2 3 nico 0 0
2 4 wim 0 0

( De score is op dit moment nog onbekend want die ronde moet nog geschoten en dus nog ingevoerd worden. )

Hallo Iwantwin,

In dat geval kan ik alllen maar herhalen wat ik in mijn eerste berichtje al schreef, namelijk: kan niet
ik ga nu even uit van míjn (uiteraard ook maar beperkte) kennis van Excel

Je kunt niet eerst een verwijzing naar een cel maken, dan de scores invullen, sorteren op die scores en dan met die verwijzingen nog steeds het resultaat krijgen wat jij wilt.

Succes, :thumb:
Ger

Het lijkt me dat het wel kan, weet alleen niet hoe... Popipipo heeft het net ook al voor elkaar gekregen volgens mij..

@Ger
Volgens mij klopt je macro niet helemaal
bij jou staat Kees als nr 1 met 233 punten
Echter Joost heeft 236 punten en moet dus hoger staan want als ik het goed begrijp telt eerst de score en is deze gelijk dan de shootoff

Hier mijn voorbeeldje met formules en wat extra kolommen.

Volgens mij klopt dit in grote lijnen, maar hoe heb je dat nou in instapjes voor elkaar gekregen dan?

@ popipipo
Klopt inderdaad.
Maar ik heb zelfs niet eens gekeken naar die volgorde.
Je vult eerst al je scores in.
Daarna sorteer je de hele tabel zoals je dat zelf wil.
Dan krijg je de beste op nummer 1 enzovoorts.
En als de volgorde is zoals je hem bedoelde, klik je op de knop en heb je je indeling voor de finale. Daar ging het toch om?
Met het sorteren heb ik me niet bezig gehouden.
Dat was ook niet de vraag van Iwantwin.

@ iwantwin
Of wil je ook nog een oplossing voor het sorteren?
Zou ik overigens ook met een macro doen

Om popipipo maar eens te citeren: waarom moeilijk doen als het ook makkelijk kan.

Groetjes,
Ger

Sorteren hoort er wel bij want DAT wil ik nou juist automatiseren.. Verwijzingen maken lukt mij ook nog wel..

En zoals reeds gezegd, macro's is geen optie.
 
Laatst bewerkt:
Dat sorteren is wel te automatiseren.
Maar ik begrijp de nummering niet.
In je Excelbestand staan in je linkertabel bij de namen andere nummers dan in de rechtertabel, terwijl het toch om hetzelfde moment gaat.
Hoe zit dat precies?
 
Laatst bewerkt:
Hallo Iwantwin,

Ik doe even mijn laatste versie erbij.

Daarbij vul je eerst de scores in. Allemaal dus, gewoon zoals ze geschoten hebben.
Even plakken uit de vorige versie want ik heb ze nu al gesorteerd.
Dan klik je op sorteren.
En dan klik je op finale opmaken.

Hoe heb ik het gedaan?
Voor het sorteren maak ik gewoon een macro aan.
Extra/Macro/ Nieuwe Macro Opnemen
Doe de sortering en stop de macro.
De code vind je dan in VBA.
Je maakt en opdrachtknop en zet die macro als code onder de opdrachtknop.

Bij de eerste tweede knop (finale opmaken) zet ik (met een code in VBA) de waarde van de cellen van de linkertabel in de finaleopmaak rechts.

Ik ga ervan uit dat je een beetje met VBA kunt werken (ik zeg met opzet een beetje, want als je weet waar je de code kunt vinden en hoe je hem achter een knop zet, dan wijst het zich vanzelf).

Als je er desondanks nog vragen over hebt wil ik je graag helpen.
(Misschien handiger via de chat?)

Succes, :thumb:
Ger
 
In het kort:
Kolom K
som van score + 0.01* shoot off

Kolom L
Kolom K gesorteerd van hoog naar laag.

Kolom E
Hoeveelste getal in kolom K is gekeken in kolom L
Dus eigenlijk op welke plaats hoort de naam.

Kolom N
Volgorde die jij wilt hebben.

Kolom Q, R en S
Via vertikaal zoeken naam en score er bij zoeken.
 
Hallo Iwantwin,

Ik doe even mijn laatste versie erbij.

Daarbij vul je eerst de scores in. Allemaal dus, gewoon zoals ze geschoten hebben.
Even plakken uit de vorige versie want ik heb ze nu al gesorteerd.
Dan klik je op sorteren.
En dan klik je op finale opmaken.

Hoe heb ik het gedaan?
Voor het sorteren maak ik gewoon een macro aan.
Extra/Macro/ Nieuwe Macro Opnemen
Doe de sortering en stop de macro.
De code vind je dan in VBA.
Je maakt en opdrachtknop en zet die macro als code onder de opdrachtknop.

Bij de eerste tweede knop (finale opmaken) zet ik (met een code in VBA) de waarde van de cellen van de linkertabel in de finaleopmaak rechts.

Ik ga ervan uit dat je een beetje met VBA kunt werken (ik zeg met opzet een beetje, want als je weet waar je de code kunt vinden en hoe je hem achter een knop zet, dan wijst het zich vanzelf).

Als je er desondanks nog vragen over hebt wil ik je graag helpen.
(Misschien handiger via de chat?)

Succes, :thumb:
Ger

*zucht* nou zeg ik het voor de derde keer: macro's is geen optie.

Dat sorteren is wel te automatiseren.
Maar ik begrijp de nummering niet.
In je Excelbestand staan in je linkertabel bij de namen andere nummers dan in de rechtertabel, terwijl het toch om hetzelfde moment gaat.
Hoe zit dat precies?

Er staan simpelweg teveel gegevens in het voorbeeld die niet allemaal nodig zijn... In het grotere (oude) geheel waren die wel nodig voor het manueel knippen en plakken.

Je zou baan nr. kunnen skippen voor het voorbeeld, en nr. is gewoon om aan te geven hoeveel schutters er zijn. Is voor het voorbeeld dus ook niet belangrijk. Het is namelijk ook mogelijk dat er maar 15 schutters meedoen terwijl het systeem wel voor minstnes 16 schutters gebouwd is. Alle niet opgevulde plaatsen worden opgevuld door fictieve schutters die standaard 0 punten schieten.
 
Ok, dankje!

In het kort:
Kolom K
som van score + 0.01* shoot off

Kolom L
Kolom K gesorteerd van hoog naar laag.

Kolom E
Hoeveelste getal in kolom K is gekeken in kolom L
Dus eigenlijk op welke plaats hoort de naam.

Kolom N
Volgorde die jij wilt hebben.

Kolom Q, R en S
Via vertikaal zoeken naam en score er bij zoeken.

Ik zie allemaal nieuwe dingen verschijnen.. RIJ() zonder inhoud geeft de waarde van de rij waar de formule zich bevind?

En wat is de functie van de derde parameter van VERGELIJKEN()? ( VERGELIJKEN is nieuw voor me.. )
 
RIJ() zonder inhoud geeft de waarde van de rij waar de formule zich bevind?

Dat klopt en het zelfde geldt dus voor 'kolom', op deze manier in het eenvoudiger de formule te kopieren.


Hij zoekt de waarde in kolom K en geeft als uitkomst in welke rij van het bereik hij dit getal terug vind.
 
Dat klopt en het zelfde geldt dus voor 'kolom', op deze manier in het eenvoudiger de formule te kopieren.



Hij zoekt de waarde in kolom K en geeft als uitkomst in welke rij van het bereik hij dit getal terug vind.

Dankje, perfect zo! Nu kan ik weer verder=)

Groetjes,
iwantwin
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan