[Excel] Zoeken in een tabel met ranges

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Patrick_6369
  • Registratie: April 2010
  • Laatst online: 04-10 22:56
Ik heb een tabel die ziet er als volgt uit:
code:
1
2
3
4
Van         Tot         Naam
1           12          Jan
16          20          Piet
25          36          Katrien

Ik wil nu in een lijst met getallen de naam er achter zetten. Dus het resultaat moet zoals hieronder zijn (edit: de eerste kolom is een gegeven, de tweede kolom het resultaat van de formule):
code:
1
2
3
4
3      Jan
5      Jan
14     #N/A
30     Katrien

Als een getal dus niet voorkomt in de lijst, dan is het prima dat er een foutmelding komt. Deze gevallen wil ik er op deze manier ook uit filteren en mijn bronbestand gaan verbeteren. Dat is nu een zootje van een paar duizend regels.

Mijn probleem: alle oplossingen die ik gevonden heb gaan uit van een bron waarbij de 'van' van de tweede regel direct aasluit bij de 'tot' van de eerste regel. Feitelijk gewoon een VLOOKUP maar dan met True op het eind ipv FALSE, dus geen ecact matches toestaan. Het moet mogelijk zijn, maar ik heb gewoon geen enkel idee in welke richting ik het moet zoeken. Wie duwt me in de goede richting? Wie heeft er al de juiste term om op te googlen?

Ik gebruik Excel Professional Plus 2016 (die stelt mijn baas ter beschikking).

[ Voor 7% gewijzigd door Patrick_6369 op 27-06-2022 11:20 ]

Hier zou een handtekening kunnen staan.

Beste antwoord (via Patrick_6369 op 27-06-2022 13:59)


  • KabouterSuper
  • Registratie: September 2005
  • Niet online
KabouterSuper schreef op maandag 27 juni 2022 @ 11:28:
En als je een countifs toevoegt waarmee je checkt of je waarde uberhaubt in een van/tot-range ligt?
Dus een simpele vlookup
code:
1
VLOOKUP(waarde,A:C,3,false)

vervangen door
code:
1
if(COUNTIFS(A:A,"<=waarde",A:A,">=waarde")>0 ,VLOOKUP(waarde,A:C,3,false),"#N/A")


Update voor het nageslacht: de false in de formules moet natuurlijk een true zijn.

[ Voor 47% gewijzigd door KabouterSuper op 27-06-2022 14:06 ]

When life gives you lemons, start a battery factory

Alle reacties


Acties:
  • 0 Henk 'm!

  • Tazzios
  • Registratie: November 2001
  • Laatst online: 13:39

Tazzios

..

In de eerste tabel naam als eerste kolom zetten.

in de 2e tabel 3 kolommen toevoegen.
met vertzoeken 'van' waarde ophalen
vertzoeken 'tot' waarde ophalen
formule die het eerste getal vergelijk met de 'van' en 'tot' en een ja of nee terug geeft.

[ Voor 7% gewijzigd door Tazzios op 27-06-2022 10:00 ]


Acties:
  • 0 Henk 'm!

  • Patrick_6369
  • Registratie: April 2010
  • Laatst online: 04-10 22:56
Tazzios schreef op maandag 27 juni 2022 @ 09:58:
met vertzoeken 'van' waarde ophalen
vertzoeken 'tot' waarde ophalen
Dank je voor je reactie. Op basis van wat had jij bedacht dat ik deze waardes opzocht?
Toch niet op basis van de naam? Want die is nog onbekend?

De tweede blok in mijn OP is de gewenste output, dus de kolom met de namen is waarvoor ik de formule zoek.

Hier zou een handtekening kunnen staan.


Acties:
  • +1 Henk 'm!

  • KabouterSuper
  • Registratie: September 2005
  • Niet online
En als je een countifs toevoegt waarmee je checkt of je waarde uberhaubt in een van/tot-range ligt?

When life gives you lemons, start a battery factory


Acties:
  • 0 Henk 'm!

  • Tazzios
  • Registratie: November 2001
  • Laatst online: 13:39

Tazzios

..

Dan begreep ik heb verkeerd. Gebruik bij vert.zoeken de 'benaderen' optie.

=VERT.ZOEKEN(A8;Tabel1;3;1)

[ Voor 6% gewijzigd door Tazzios op 27-06-2022 11:31 ]


Acties:
  • +1 Henk 'm!

  • Reptile209
  • Registratie: Juni 2001
  • Laatst online: 11:11

Reptile209

- gers -

Tazzios schreef op maandag 27 juni 2022 @ 11:29:
Dan begreep ik heb verkeerd. Gebruik vert.zoeken ' benaderen'

=VERT.ZOEKEN(A8;Tabel1;3;1)
Daarmee haal je de case van 14 er niet uit: die wordt dan aan Jan toegewezen, omdat Piet pas bij 16 begint. VERT.ZOEKEN kijkt alleen naar de ondergrens, en dan naar de ondergrens van de volgende in de tabel. De kolom met de bovengrens neemt hij niet mee.

Je kan er nog een hulpkolom naast zetten in je resultaten, waar je de check doet via een VERT.ZOEKEN op de naam, en dan de bovengrens vergelijkt met de gevraagde waarde.

Of, mogelijk nog makkelijker, zorgen dat je lookup-table 'compleet' is. Dus op het handje zorgen dat er - in dit makkelijke voorbeeld - een regel tussen Jan en Piet komt met "12 - 16 - ONBEKEND" ofzo. Maak desnoods even een check-kolom bij de lookup die de Tot-waarde vergelijkt met de Van-waarde op de volgende regel. Als die niet matchen, moet je daar wat invoegen.

Zo scherp als een voetbal!


Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • KabouterSuper
  • Registratie: September 2005
  • Niet online
KabouterSuper schreef op maandag 27 juni 2022 @ 11:28:
En als je een countifs toevoegt waarmee je checkt of je waarde uberhaubt in een van/tot-range ligt?
Dus een simpele vlookup
code:
1
VLOOKUP(waarde,A:C,3,false)

vervangen door
code:
1
if(COUNTIFS(A:A,"<=waarde",A:A,">=waarde")>0 ,VLOOKUP(waarde,A:C,3,false),"#N/A")


Update voor het nageslacht: de false in de formules moet natuurlijk een true zijn.

[ Voor 47% gewijzigd door KabouterSuper op 27-06-2022 14:06 ]

When life gives you lemons, start a battery factory


Acties:
  • +2 Henk 'm!

  • Patrick_6369
  • Registratie: April 2010
  • Laatst online: 04-10 22:56
De oplossing van @KabouterSuper lijkt in het voorbeeld goed te werken, ik ga nu het totaalbestand in om het toe te passen! EDIT: _/-\o_

Ik heb de formule iets moeten aanpassen naar:
code:
1
=IF(COUNTIFS(A:A;"<="&F2;B:B;">="&F2)>0;VLOOKUP(F2;A:C;3;TRUE);"#N/A")

Aanpassing zit in de tweede reeks A:A uit formule van KabouterSuper, dat moet B:B zijn en de VLOOKUP moet op TRUE eindigen.
Reptile209 schreef op maandag 27 juni 2022 @ 11:34:
[...]Of, mogelijk nog makkelijker, zorgen dat je lookup-table 'compleet' is. Dus op het handje zorgen dat er - in dit makkelijke voorbeeld - een regel tussen Jan en Piet komt met "12 - 16 - ONBEKEND" ofzo.
Helaas is dat te omslachtig. Het gaat om een bestand met duizenden regels. Het betreffen codes met 10 cijfers en niet alle codes zijn in gebruik.

[ Voor 57% gewijzigd door Patrick_6369 op 27-06-2022 14:01 ]

Hier zou een handtekening kunnen staan.


Acties:
  • +1 Henk 'm!

  • KabouterSuper
  • Registratie: September 2005
  • Niet online
Patrick_6369 schreef op maandag 27 juni 2022 @ 12:58:
De oplossing van @KabouterSuper lijkt in het voorbeeld goed te werken, ik ga nu het totaalbestand in om het toe te passen! EDIT: _/-\o_

Ik heb de formule iets moeten aanpassen naar:
code:
1
=IF(COUNTIFS(A:A;"<="&F2;B:B;">="&F2)>0;VLOOKUP(F2;A:C;3;TRUE);"#N/A")

Aanpassing zit in de tweede reeks A:A uit formule van KabouterSuper, dat moet B:B zijn en de VLOOKUP moet op TRUE eindigen.
Ik was iets te slordig met de formule, maar top dat je er er zelf uitgekomen bent. Je kunt voor de gein de countifs>0 even veranderen in countifs=1 om te controleren dat je waarden niet per ongeluk in twee ranges zitten.

When life gives you lemons, start a battery factory

Pagina: 1