• 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.

In een rij met percentages zoek ik het percentage die het dichtstbij 0% ligt.

Status
Niet open voor verdere reacties.

oceanrace

Gebruiker
Lid geworden
14 mei 2008
Berichten
198
Beste allemaal,
Ik heb een vrij eenvoudige vraag maar ik kom er zo niet uit.
In een rij met percentages zoek ik het percentage die het dichtstbij 0% ligt.

Zie bijlage.Bekijk bijlage Map1.xlsx
 
Ik heb het al gevonden:
=HORIZ.ZOEKEN(0;BO2:CA2;1;WAAR)
In het voorbeeldje is er geen sprake van het bereik BO2:CA2
Dus komt het voorbeeldje niet overeen met het bestand dat je wenst te gebruiken
Daarom is het moeilijk om daar een antwoord op te geven . Met de gegevens die we nu hebben sluit ik mij aan bij EA
 
Laatst bewerkt:
Je kan het wel gevonden hebben alleen is de uitkomst niet correct of de OP klopt niet.

Met een matrixformule
PHP:
=ALS(KLEINSTE(ALS(A2:M2>=0;A2:M2);1)<-GROOTSTE(ALS(A2:M2<=0;A2:M2);1);KLEINSTE(ALS(A2:M2>=0;A2:M2);1);GROOTSTE(ALS(A2:M2<=0;A2:M2);1))
Deze moet je afsluiten met <Ctrl> + <Shift> + <Enter>
 

Bijlagen

Bedankt voor de reactie.
Ik gebruik nu de matrixformule van VenA, die klopt idd.
(ik zat teveel met de gedachten bij Max Verstappen denk ik vanmiddag)
 
Een wat kortere oplossing, in te voeren via Ctrl-Shift-Enter:
Code:
=INDEX(A2:M2;VERGELIJKEN(MIN(ABS(A2:M2));ABS(A2:M2);0))
 
Nog iets korter:
Code:
=MIN(ALS(ABS(A2:M2)=MIN(ABS(A2:M2));A2:M2))
 
Als het beslist nog korter moet (invoeren via Ctrl-Shift-Enter):
Code:
=ZOEKEN(MIN(ABS(A2:M2));A2:M2)
 
Bedankt voor de hulp allen.
Wat ik me nog afvraag, is een kortere formule ook sneller in de berekeningen?
 
Wat ik me nog afvraag, is een kortere formule ook sneller in de berekeningen?
Niet per definitie. Voor de gegeven antwoorden klopt het wel dat ze sneller zijn naarmate ze korter zijn.

Maar deze gewone formule (geen matrixformule) is beduidend sneller:
Code:
=ZOEKEN(MIN(ABS(INDEX($A2:$M2;VERGELIJKEN(0;$A2:$M2)));ABS(INDEX($A2:$M2;MIN(KOLOMMEN($A2:$M2);1+VERGELIJKEN(0;$A2:$M2)))));$A2:$M2)

Voorwaarde is dat de percentages oplopend gesorteerd zijn, zoals in het voorbeeldbestand.

Ik heb de snelheid getest door in een macro de formules 10x te kopiëren tot en met kolom XFD en te meten hoe lang dat duurde.
Edit: formules aangepast met gefixeerde kolommen.
 
Laatst bewerkt:
Wat ik me nog afvraag, is een kortere formule ook sneller in de berekeningen?
Niet (of niet alleen) de lengte speelt een rol, maar vooral het aantal gebruikte functies en welke functies.
De ene functie vergt (veel) meer rekentijd dan de andere. En zelfs eenzelfde functie vergt in het ene geval meer berekeningstijd dan in het andere. Neem bv. vert.zoeken, daarbij kun je als benaderingsgetal zowel een 0 als een 1 gebruiken. Met een 1 zal de verwerkingstijd veel sneller zijn, omdat in die functie er dan van wordt uitgegaan dat de eerste kolom van het bereik waarin de functie wordt gebruikt, gesorteerd is.
 
Maar deze gewone formule (geen matrixformule) is beduidend sneller:
Code:
=ZOEKEN(MIN(ABS(INDEX($A2:$M2;VERGELIJKEN(0;$A2:$M2)));ABS(INDEX($A2:$M2;MIN(KOLOMMEN($A2:$M2);1+VERGELIJKEN(0;$A2:$M2)))));$A2:$M2)
Sneller dan wát ? Dat vermeld je er niet bij !
Zeker niet sneller dan mijn oplossing in bericht #9.
Dat is zonder controle al meteen te zien aan de gebruikte formules.
Als ik vanavond nog tijd heb, zal ik eens een testje doen.
 
@zapatr,

Zeker sneller dan de mijne:d Hoewel het op dit kleine bereik niet veel uitmaakt. Zie de opmerking van MarcelBeug over hoe het getest is. Dus op een veel groter bereik.
 
@VenA,
Op een klein bereik maakt dat inderdaad weinig of niets uit.
Maar ík ben niet over die snelheid begonnen; het was 'oceanrace' die een vraag daaromtrent stelde en MarcelBeug die daar op inging. Een uitspraak als "Deze formule is beduidend sneller" heeft geen enkele betekenis als je niet zegt ten opzichte van wát die formule dan sneller is. Ik zal ook een testje doen en dan niet de formules 10 keer, maar duizenden keren laten berekenen, dat geeft een beter beeld.
 
Sneller dan wát ? Dat vermeld je er niet bij !
Sneller dan de formules in post 5, 7, 8 en 9.
Zoals je zelf al aangeeft in post #12, is de verwerkingstijd van vert.zoeken veel sneller met een 1 dan met een 0. Dat heb ik ook in mijn formule gebruikt, maar dan met VERGELIJKEN.
Bijgaand de sheet waarmee ik getest heb, met de resultaten in kolom O.
Uiteraard staat ik open voor - en ben benieuwd naar - een second opinion.
 

Bijlagen

...Ik zal ook een testje doen en dan niet de formules 10 keer, maar duizenden keren laten berekenen, dat geeft een beter beeld. ...
Ik heb de formules 10 keer doorgetrokken tot en met kolom XFD, dus per keer ruim 16.000 kolommen (=berekeningen).
 
Indicatie verwerkingstijd: 8 minuten!!
:shocked: Het machientje misschien een beetje upgraden?:p

Hoewel het natuurlijk ongelijk meetmomenten zijn, even de resultaten naast elkaar gezet en hieruit blijkt dat de verwerking van een 'gewone' formule vele malen sneller is in dat het ook minder afhankelijk is van de rekenkracht van een PC.
 

Bijlagen

:shocked: Het machientje misschien een beetje upgraden?:p

Niks mis met mijn "Commodore 64", toch? :D

Maar goed, de test ook nog even op mijn snellere laptop gedaan en daarbij waren de matrixformules ongeveer 3x sneller dan op mijn "Commodore 64" ;) en mijn gewone formule was maar zo'n ruime 40% sneller op de laptop.
 
Deze variant van zapatrs formule uit #9:
Code:
=ZOEKEN(MIN(INDEX(ABS(A2:M2);0));A2:M2)
(geen matrixformule)
is beduidend sneller dan de matrixvariant en bijna net zo snel als die van MarcelBeug.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan