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

waarde opzoeken in matrix

Status
Niet open voor verdere reacties.

sickofitall

Gebruiker
Lid geworden
29 sep 2008
Berichten
375
Hoi,

ik wil een opgegeven waarde, namelijk gemiddelde retours, opzoeken in een niet-gesorteerde tabel (of matrix). En vanaf de waarde in de tabel groter is dan mijn opgegeven waarde, zou ik mijn resultaat willen. Mijn opgegeven waarde zal nooit exact gelijk zijn aan de waardes in de tabel. Met welke formule(s) doe ik dit?

Een voorbeeldje maakt alles duidelijk: (zie .xls)

Ik zoek op cel F1 (8,9%) in kolom B vanaf rij 7 (dus B7:B23). En vanaf dat de waarde ik mijn zoekkolom groter is dan de waarde in F1, wil ik het aantal dagen weten. Dus mijn resultaat zou "18-20 dagen" moeten zijn aangezien 12,1% de eerste waarde is die groter is dan mijn 8.9%.

Met de functie verticaal zoeken lukt het niet, want dan geeft hij mij de waarde die het dichtst bij mijn zoekwaarde ligt (namelijk 8.4%). Dit wil ik niet hebben. En het is onmogelijk om mijn zoekkolom op-of aflopend te sorteren (want die heb ik nog voor andere doeleinden nodig).

Kan iemand hulp bieden?
 

Bijlagen

Laatst bewerkt:
Dit kan met volgende matrix formule:

=MIN(ALS((B6:B23)>=F1;B6:B23;""))

matrixformule = invoeren met ctrl+shift+enter


en dan op deze waarde vertikaalzoeken
 
Laatst bewerkt:
En met de volgende ben je gelijk klaar:
Code:
=INDEX(D$6:D$23;VERGELIJKEN(MIN(ALS(B$6:B$23>F1;B$6:B$23));B$6:B$23;0);1)
matrix formule, bevestigen met CTRL-SHIFT-ENTER
p.s. Ik heb "groter dan" gebruikt (zoals je schreef in de vraag), maar ik verwacht eigenlijk dat het "groter dan of gelijk aan" moet zijn.
 
Laatst bewerkt:
Code:
=INDEX(D$6:D$23;VERGELIJKEN(MIN(ALS(B$6:B$23>F1;B$6:B$23));B$6:B$23;0))
kleine aanpassing aan bandito bob's formule :";1" (kolom verwijzing) is hier overbodig.
 
Laatst bewerkt:
hmmm, lukt blijkbaar enkel met het eenvoudige voorbeeld dat ik erbij had gestoken, voor de rest in mijn draaitabel werkt het niet. Ik zal het volledige bestand er eens bijsteken zodat jullie wat makkelijker kunnen zoeken (bij mij lukt het niet:confused:)
(want ik had wel al door om met index(vergelijken) te werken maar het lukt mij maar niet)


Ok, vernieuwde opgave: mijn gevonden waarde met groter (of gelijk:p) zijn aan gemiddeld retours (F9) plus 1%; dit staat al in F1. Dus vanaf dat deze waarde wordt gevonden of overschreden, moet ik het aantal bijpassende dagen krijgen (resultaat staat dan in F11).
(dus in het huidige voorbeeld zou ik 21-23 dagen moeten vinden)


Alvast bedankt!!
 

Bijlagen

1) Kijk eens goed naar je bereiken
2) In cel B1 staat eigenlijk niet 8.5% maar 8.5236......%
 
1) Kijk eens goed naar je bereiken
2) In cel B1 staat eigenlijk niet 8.5% maar 8.5236......%

1) Ik weet dat ik pas op B7 begin (en D7), maar dat komt omdat 0-2 dagen niet mee mag tellen.
2) Wat is het probleem dat er niet exact dat getal staat? daar is toch nix mis mee??
 
Wat is het eerst percentage dat groter is dan 8.52.....% ?
Toch 9.21% (>> 39-41 dagen)
en niet 9.91% (>>21-23 dagen) zoals jij beweert !
 
Wat is het eerst percentage dat groter is dan 8.52.....% ?
Toch 9.21% (>> 39-41 dagen)
en niet 9.91% (>>21-23 dagen) zoals jij beweert !

ahzo bekijk je het; nee ik bekijk mijn tabel van boven naar onder. Dan is de eerste waar die ik tegekom 9.91%, snap je? en die bijbehorende 'dagen' heb ik nodig.
 
In cel F11 de volgende matrix formule:
Code:
=INDIRECT(ADRES(MIN(ALS(B7:B23>=F1;RIJ(B7:B23)));4))
bevestigen met CTRL-SHIFT-ENTER.
 
Begrijp de bedoeling niet erg goed, maar als je steeds bovenaan moet starten en zoeken naar de eerste waarde die gelijk of groter is dan de gegeven waarde zou het dit kunnen zijn :
Code:
=INDEX(D1:D23;MIN(ALS(B6:B23>=F1;(RIJ(B6:B23)))))
 
Code:
=INDEX(D1:D23;MIN(ALS(B7:B23>=F1;(RIJ(B7:B23)))))
Deze doet identiek hetzelfde (niet bovenaan starten maar op rij 2 van de matrix)
Ook matrix formule !
 
Code:
=INDEX(D1:D23;MIN(ALS(B7:B23>=F1;(RIJ(B7:B23)))))
Deze doet identiek hetzelfde (niet bovenaan starten maar op rij 2 van de matrix)
Ook matrix formule !
Deze is inderdaad net ff wat compacter, en doet hetzelfde.

Ik had laatst die indirect(adres()) bij jou gezien en wou hem gelijk maar ff toepassen:p. Dan vergeet je hem tenminste niet.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan