Reeks omzetten of op reeks sorteren

Bespreek het rekenblad

Reeks omzetten of op reeks sorteren

Berichtdoor Gert-Jan » vr jun 17, 2016 10:08 am

Is het mogelijk om een reeks getallen in 1 getal om te zetten of op een reeks te sorteren?

In de tabel in de bijlage staan in de kolommen A,B en C de getallen 1 of 0 (staat voor winst- of verliespartij)
In kolom E zijn de gegevens uit A,B en C als 1 getal neergezet om in eenmaal te kunnen sorteren.
Nu is dit handmatig gedaan. Is er een functie om dit te doen?

Nog gemakkelijker zou zijn, als er op de reeks ABC gesorteerd kan worden,
zodat hetzelfde resultaat als in kolom E wordt bereikt.

Uiteraard kan je via sorteervolgorde veel doen.
Eerst kolom A, vervolgens kolom B, enz.
Maar als de reeks wordt uitgebreid naar bijv ABCDEFGH, dan wordt dit erg omslachtig.

Groet, Gert-Jan
Bijlagen
Reeks omzetten.ods
(13.67 KiB) 97 keer gedownload
Libre Office 5.4.3.2; OpenOffice 4.1.2 op Windows 10 home
Gert-Jan
 
Berichten: 47
Geregistreerd: wo mei 13, 2015 9:44 am

Re: Reeks omzetten of op reeks sorteren

Berichtdoor floris v » vr jun 17, 2016 12:12 pm

Je kunt de formule =A4&B4&C4 in een lege cel zetten in rij 4 en dan die cel selecteren met de cellen eronder, dan met Bewerken - Vullen - Omlaag de formule kopiëren.
* AOO 4.1.6 op Linux Mint
* Heb je de survival guide voor het forum al gelezen?
Avatar gebruiker
floris v
 
Berichten: 1977
Geregistreerd: za apr 11, 2009 3:30 pm
Woonplaats: Apeldoorn, Nederland

Re: Reeks omzetten of op reeks sorteren

Berichtdoor eremmel » vr jun 17, 2016 1:13 pm

floris v schreef:Je kunt de formule =A4&B4&C4 in een lege cel zetten in rij 4 en dan die cel selecteren met de cellen eronder, dan met Bewerken - Vullen - Omlaag de formule kopiëren.


Als het om winnen gaat, dan wil je misschien 100 lager gesorteerd hebben dan 011. Je zou de oplossing van Floris kunnen uitbreiden naar:
=countif(A4:C4;"=1")&A4&B4&C4
je krijgt dan 3111, 2110, 2101, 2011, 1100, 1010, 1001,0000

Een alternatief voor erg veel wedstrijden is (je hoeft alleen de range aan te passen A4:Z4 (voor 26 wedstrijden):
=SUMPRODUCT(A4:C4;POWER(10;COLUMNS(A4:C4)-COLUMN(A4:C4)))
Je kunt kiezen uit 10 tallig stelsel of een binair stelsel van maken: 10 vervangen door 2 (nodig bij veel wedstrijden).
W10: LO 7.0.0.3 (x64)
Het is Microsoft marketing die laat geloven dat computers geschikt zijn voor niet technici
eremmel
 
Berichten: 641
Geregistreerd: di sep 01, 2009 10:11 am
Woonplaats: Barneveld, Nederland

Re: Reeks omzetten of op reeks sorteren

Berichtdoor Gert-Jan » vr jun 17, 2016 3:17 pm

Allen bedankt voor de snelle reacties.

eremmel schreef:Als het om winnen gaat, dan wil je misschien 100 lager gesorteerd hebben dan 011.


Erik, daar heb je helemaal gelijk in. 011 betekent twee gewonnen wedstrijden en 100 slechts 1 gewonnen wedstrijd.
De bedoeling is dat aan de hand van de 'binaire code' in een oogopslag te zien is, of deelnemers al tegen elkaar
gespeeld hebben. Spelers met een gelijke 'binaire code' kunnen nog niet tegen elkaar gespeeld hebben.

Met de functie 'countif'...' wordt het aantal gewonnen wedstrijden voor het getal ingevoerd. Erg gemakkelijk.
In de functie 'sumproduct... niet.
Ik heb geprobeerd dit aan te vullen met countif, maar dat lukt me niet. In deze formule is 011 weer lager dan 100.
Uiteraard kan dit via een extra kolom met het aantal gewonnen wedstrijden opgelost worden, maar het zou mooi
als het in 1 formule kan.

Gert-Jan
Libre Office 5.4.3.2; OpenOffice 4.1.2 op Windows 10 home
Gert-Jan
 
Berichten: 47
Geregistreerd: wo mei 13, 2015 9:44 am

Re: Reeks omzetten of op reeks sorteren

Berichtdoor Gert-Jan » za jun 18, 2016 8:47 am

Inmiddels de oplossing voor het toevoegen van countif gevonden en geprobeerd bij zes uitslagen.

=SOM.ALS(A33:F33;"=1")&(SOMPRODUCT(A33:F33;MACHT(10;KOLOMMEN(A33:F33)-KOLOM(A33:F33))))

Met deze formule worden nullen pas weergegeven als er een wedstrijd gewonnen is.
Dit leidt tot getallen van zeven, zes en vijf cijfers.
Zie kolom i in de nieuwe bijlage.

Toch wordt na sorteren de juiste volgorde gegeven. Zo staat 411011 boven 2100100.
Dat is juist omdat 411011 vier wedstrijden heeft gewonnen en 2100100 slecht twee wedstrijden.
Hoe dat komt? Het zal in de formule zitten.

Inmiddels gezien dat de formule tekst ipv getallen geeft.

Gert-Jan
Bijlagen
Reeks omzetten #2.ods
(17.21 KiB) 81 keer gedownload
Libre Office 5.4.3.2; OpenOffice 4.1.2 op Windows 10 home
Gert-Jan
 
Berichten: 47
Geregistreerd: wo mei 13, 2015 9:44 am

Re: Reeks omzetten of op reeks sorteren

Berichtdoor Alex » za jun 18, 2016 1:18 pm

Teksten worden allereerst op de begintekens gesorteerd, niet op getalwaarde. Daarom staat 411011 bovenaan.
Je zegt overigens niet of je oplopend of aflopend sorteert.
Als de tabel alleen enen en nullen bevat, maakt het niet uit of je SOM, SOM.ALS of AANTAL.ALS gebruikt. Dan is SOM het eenvoudigst.
SOMPRODUCT levert hier één getal op voor meerdere kolommen, daarom wordt de tekst korter.
Nog een tip: als je alle centrering en uitlijning uitzet, kun je direct zien of iets een tekst is of niet, ook zonder waardemarkering.
AOO 4.1.5 & LO 5.0.6 op Windows XP & 7
Alex
 
Berichten: 94
Geregistreerd: do feb 25, 2010 8:46 pm

Re: Reeks omzetten of op reeks sorteren

Berichtdoor eremmel » ma jun 20, 2016 9:40 am

Gert-Jan schreef:Toch wordt na sorteren de juiste volgorde gegeven. Zo staat 411011 boven 2100100.
Dat is juist omdat 411011 vier wedstrijden heeft gewonnen en 2100100 slecht twee wedstrijden.
Hoe dat komt? Het zal in de formule zitten.

Inmiddels gezien dat de formule tekst ipv getallen geeft.

Gert-Jan

De oplossing is om voor aan de lijst van uitslagen de totaal gewonnen partijen te berekenen. (Dus in kolom A). De SUMPRODUCT() formule loopt nu van A tot G, met A gewonnen partijen en met B-G de uitslagen.

Ik heb zo'n vermoeden dat je stukje bij beetje iets aan het opbouwen bent. De tijd die we nu spenderen zou wel eens anders gebruikt kunnen worden omdat deze berekening uiteindelijk niet oplevert wat je wilt. Heb je b.v. Onzuiver Zwitsers toernooi indelen al eens bekeken?
W10: LO 7.0.0.3 (x64)
Het is Microsoft marketing die laat geloven dat computers geschikt zijn voor niet technici
eremmel
 
Berichten: 641
Geregistreerd: di sep 01, 2009 10:11 am
Woonplaats: Barneveld, Nederland

Re: Reeks omzetten of op reeks sorteren

Berichtdoor Gert-Jan » ma jun 20, 2016 6:28 pm

Hoi Erik,

Bij 'Onzuiver Zwitsers toernooi indelen' is het allemaal begonnen.

Daar hebben we een aantal reacties over gewisseld.
Doordat een controle nodig is welke teams met een gelijk resultaat nog niet tegen elkaar gespeeld hebben,
ben ik verder gaan zoeken.

Eerst is dat met kleurcodes geprobeerd. Maar dat werd in de functie als snel erg uitgebreid
Uiteindelijk lijkt de 'binaire code' het gemakkelijkste vergelijk.

Gelijke codes hebben nog niet tegen elkaar gespeeld. Dit heb je in 'Onzuiver...' ook aangegeven.
Daardoor is het indelen voor de volgende ronde gemakkelijker te controleren.

De uiteindelijke bedoeling is om een speelschema te schrijven, waarbij eenvoudig te controleren
is of teams al tegen elkaar gespeeld hebben en of zij tegen elkaar zouden mogen spelen.

Er zijn meerdere 'Swiss' schema's op internet te vinden.
Maar alle schema's, die ik heb gezien, delen de nieuwe ronde pas in als alle uitslagen van de lopende ronde bekend zijn.
Dat geeft veel tijdverlies op een toernooidag.

Daarom heeft een schema waarbij teams sneller tegen elkaar kunnen spelen de voorkeur.
Op een toernooidag scheelt dit tenminste 1 uur over de gehele dag.




Gert-Jan
Libre Office 5.4.3.2; OpenOffice 4.1.2 op Windows 10 home
Gert-Jan
 
Berichten: 47
Geregistreerd: wo mei 13, 2015 9:44 am


Keer terug naar Calc

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers. en 3 gasten