[Excel] Gelijke of grotere waarde uit een kolom halen

Pagina: 1
Acties:
  • 6.456 views sinds 30-01-2008
  • Reageer

  • JasperE
  • Registratie: December 2003
  • Laatst online: 21-10 12:15
He allemaal, ik heb een klein probleempje in excel.

Ik heb een getal waarbij ik de gelijke, of dichtsbijzijnde grotere waarde moet vinden in een kolom.

Dus stel je hebt het getal 123
En je hebt een tabel die er alsvolgt uitziet
code:
1
2
3
4
5
6
A     B
100 001
108 002
120 003
130 004
140 005

Dan zou ik de waarde 004 als uitkomst willen hebben

Het enige wat ikzelf kan bedenken is =VERT.ZOEKEN(123;A:B;2;WAAR), maar bij deze functie zou de uitkomst 003 zijn omdat 120 dichter bij 123 ligt dan 130 :(

Uit de help:
Als VERT.ZOEKEN zoekwaarde niet kan vinden en benaderen WAAR is, gebruikt de functie de grootste waarde die kleiner dan of gelijk aan zoekwaarde is.
Dat dus is precies wat ik niet wil, ik wil de waarde die groter of gelijk is :(


Een hele serie ALS()'s functies is trouwens geen oplossing omdat er maximaal 7 functies voor een cel gebruikt mogen worden en ik heb te maken met meer dan 7 waarden waar vergeleken mee moet worden.


Iemand een oplossing?

[ Voor 37% gewijzigd door JasperE op 31-08-2004 12:10 ]


  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Vragen over Excel zijn veel leuker in Software Algemeen - ik ga je topic dan ook verplaatsen naar Software Algemeen :)

Windows Operating Systems >> Software Algemeen

  • JasperE
  • Registratie: December 2003
  • Laatst online: 21-10 12:15
Ik heb 't probleem nu opgelost door extreem moeilijk te doen; gebruik nu een 3 cellen, 3x vert.zoeken(), vergelijken(), index() en 2x als().

een betere manier is dus nogsteeds welkom!

  • Sparhawk
  • Registratie: Maart 2001
  • Laatst online: 01-11 12:12

Sparhawk

Can bind minds with his spoon

Misschien domme gedachte, maar als je nou van kolom A overal 123 aftrekt, alle getallen absoluut maakt, en dan het kleinste getal zoekt, ben je er ook :)

Wil iedereen die in telekinese gelooft mijn hand opheffen a.u.b.


Verwijderd

Volgens mij kom je er door de functies INDEX en VERGELIJKEN te combineren; met VERGELIJKEN bepaal je nl. de positie van een element in een lijst. Wanneer de gezochte waarde niet in de lijst voorkomt, wordt de positie van het element wat er qua waarde net onder ligt, geretourneerd.
Je weet dat jouw gezochte waarde 1 positie verder ligt (weliswaar in een andere kolom). Een element op een bekende positie retourneren, doe je met INDEX, oftewel:
code:
1
=INDEX(B1:B5;VERGELIJKEN(123;A1:A5)+1)

Weliswaar er vanuitgaande dat jouw bereik zich in A1:B5 bevindt.

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Vergelijken groter of gelijk gaat alleen lukken als kolom aflopend is gesorteerd; altijd een erbij optellen gaat mis als de waarde exact voorkomt in de lijst.

Ik weet niet of je dit minder moeilijk vindt, maar met een matrixformule is het 'eenvoudig' op te lossen:
code:
1
=INDIRECT("C" & MIN(ALS(A1:A9>=B1;RIJ(A1:A9);9999)))

of als je liever index hebt:
code:
1
=INDEX(C:C;MIN(ALS(A1:A9>=B1;RIJ(A1:A9);9999));1)

Dit retourneert dus de eerste waarde uit kolom C waarbij in A1:A9 op dezelfde regel een waarde voorkomt die groter is dan of gelijk aan B1. Invoeren als matrixformule: bevestigen met shift+enter. De hele zwik komt dan tussen {}.

[ Voor 24% gewijzigd door Lustucru op 31-08-2004 16:36 ]

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


  • JasperE
  • Registratie: December 2003
  • Laatst online: 21-10 12:15
Verwijderd schreef op 31 augustus 2004 @ 16:10:
Volgens mij kom je er door de functies INDEX en VERGELIJKEN te combineren; met VERGELIJKEN bepaal je nl. de positie van een element in een lijst. Wanneer de gezochte waarde niet in de lijst voorkomt, wordt de positie van het element wat er qua waarde net onder ligt, geretourneerd.
Je weet dat jouw gezochte waarde 1 positie verder ligt (weliswaar in een andere kolom). Een element op een bekende positie retourneren, doe je met INDEX, oftewel:
code:
1
=INDEX(B1:B5;VERGELIJKEN(123;A1:A5)+1)

Weliswaar er vanuitgaande dat jouw bereik zich in A1:B5 bevindt.
Tot zo'n soort oplossing ben ik na veel prutsen ook gekomen, hierbij gebruik ik alleen 2 hulpcellen om tot de uitkomst te komen. En ik heb het idee dat het beter moet kunnen :)
Niesje schreef op 31 augustus 2004 @ 16:30:
Vergelijken groter of gelijk gaat alleen lukken als kolom aflopend is gesorteerd; altijd een erbij optellen gaat mis als de waarde exact voorkomt in de lijst.
Dat heb ik weer opgelost met een extra ALS()
Ik weet niet of je dit minder moeilijk vindt, maar met een matrixformule is het 'eenvoudig' op te lossen:
code:
1
=INDIRECT("C" & MIN(ALS(A1:A9>=B1;RIJ(A1:A9);9999)))

of als je liever index hebt:
code:
1
=INDEX(C:C;MIN(ALS(A1:A9>=B1;RIJ(A1:A9);9999));1)

Dit retourneert dus de eerste waarde uit kolom C waarbij in A1:A9 op dezelfde regel een waarde voorkomt die groter is dan of gelijk aan B1. Invoeren als matrixformule: bevestigen met shift+enter. De hele zwik komt dan tussen {}.
Ik zal me maar eens gaan verdiepen in deze matrixformules dan :*) .

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

OD-Frozen schreef op 31 augustus 2004 @ 16:48:
gebruik nu een 3 cellen, 3x vert.zoeken(), vergelijken(), index() en 2x als().
[...]
Tot zo'n soort oplossing ben ik na veel prutsen ook gekomen, hierbij gebruik ik alleen 2 hulpcellen om tot de uitkomst te komen. En ik heb het idee dat het beter moet kunnen :)
Dat snap ik niet. Recht toe recht aan werkt dit ook:
code:
1
=INDIRECT("C" & VERGELIJKEN(B1;A1:A9;1)+ISNB(VERGELIJKEN(B1;A1:A9;0)))

[ Voor 24% gewijzigd door Lustucru op 31-08-2004 18:24 ]

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


  • JasperE
  • Registratie: December 2003
  • Laatst online: 21-10 12:15
Ik krijg de code
code:
1
INDEX(C:C;MIN(ALS(A1:A9>=B1;RIJ(A1:A9);9999));1)
niet helemaal aan de praat |:( Zou je misschien een voorbeeld in een .xls naar me willen mailen op "jasper . e [at] gmail . com" als dat niet teveel moeite is?

Ik zou het erg op prijs stellen, heb dit stukje code namelijk meerdere keren nodig voor mijn stageopdracht en iedere keer moeilijk doen met mijn overbodig ingewikkelde manier kost me nogal veel tijd :(

[ Voor 18% gewijzigd door JasperE op 01-09-2004 10:00 ]


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

OD-Frozen schreef op 01 september 2004 @ 09:59:
Ik krijg de code
code:
1
INDEX(C:C;MIN(ALS(A1:A9>=B1;RIJ(A1:A9);9999));1)
niet helemaal aan de praat |:(
Heb je hem wel afgesloten met SHIFT + ENTER :?

[ Voor 3% gewijzigd door BtM909 op 01-09-2004 10:01 ]

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • JasperE
  • Registratie: December 2003
  • Laatst online: 21-10 12:15
Ik ben eruit _/-\o_ , ik had en de formule niet helemaal goed, en bij de versie van excel die ik gebruik moet je ctrl+shift+enter gebruiken.

thx.

[ Voor 4% gewijzigd door JasperE op 01-09-2004 13:45 ]

Pagina: 1