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

Verticaal zoeken...

Status
Niet open voor verdere reacties.

spaarie

Terugkerende gebruiker
Lid geworden
11 jul 2011
Berichten
1.784
Ik heb lang getwijfeld of ik dit zou vragen, want is volgens mij niet zo moeilijk. Ik heb lastigere formules gemaakt enz, maar kom hier niet uit :o... zal waarschijnlijk wel te moeilijk denken ofzo... ik zou het niet weten...

bestand: http://www.mijnbestand.nl/Bestand-ZCSCP6GTNSCN.xlsx

Kolom A & B zijn aangeleverd door klant. Kolom A zijn de oude nummers en B de nieuwe.
Kolom C komt uit eigen bestand. Deze nummers moeten gezocht worden in kolom A en als deze gevonden worden, het getal er naast in kolom B moet dan weergegeven worden in kolom D.

Kan iemand mij helpen...
 
in kolom D in te vullen: =VERT.ZOEKEN(C2;A$2:B$59992;2;ONWAAR) en dan naar beneden slepen

ofwel denk ik nu te simpel ;-)
 
VERT.ZOEKEN werkt enkel als de zoekreeks oplopend gesorteerd is.

Wat een pak beter (en flexibeler werkt) is een combinatie van INDEX en VERGELIJKEN. Zie zeker en vast even op http://support.microsoft.com/kb/214142 voor meer info.

Zet daar nog een ALS-FOUT rond en dan kan je een fatsoenlijke melding meegeven wanneer het item niet gevonden is.

Ik zou sowieso je kolommen A, B, C en D opmaken als tekst. Anders ga je je resultaten in wetenschappelijke notatie krijgen (1,1E+11).

In D2 zou ik het volgende intypen:
Code:
=ALS.FOUT(INDEX($a$2:$b$86984;VERGELIJKEN(c2;$a$2:$a$86984;0);2);"niet gevonden")

Dit kan je doorvoeren van D2 naar D86984 en je hebt het volledig :)

Het is een hele boterham om hier uit te leggen maar op de link hierboven staat heel duidelijke info.
 
VERT.ZOEKEN werkt enkel als de zoekreeks oplopend gesorteerd is.

Wat een pak beter (en flexibeler werkt) is een combinatie van INDEX en VERGELIJKEN. Zie zeker en vast even op http://support.microsoft.com/kb/214142 voor meer info.

Zet daar nog een ALS-FOUT rond en dan kan je een fatsoenlijke melding meegeven wanneer het item niet gevonden is.

Ik zou sowieso je kolommen A, B, C en D opmaken als tekst. Anders ga je je resultaten in wetenschappelijke notatie krijgen (1,1E+11).

In D2 zou ik het volgende intypen:
Code:
=ALS.FOUT(INDEX($a$2:$b$86984;VERGELIJKEN(c2;$a$2:$a$86984;0);2);"niet gevonden")

Dit kan je doorvoeren van D2 naar D86984 en je hebt het volledig :)

Het is een hele boterham om hier uit te leggen maar op de link hierboven staat heel duidelijke info.

Was toch niet zo makkelijk achteraf... :eek: **fffffieeuuuuwwww*
Maar goed, ik ga de stof even lezen die je me voorgeschoteld hebt want volgens mij werkt de formule en wil er natuurlijk wat meer van weten.

Ow ja, kolom B kan niet naar tekst geconvecteerd worden want dan krijg je die gekke (1,1E+11). Just sayin'....

Bedankt allen voor de reacties en suggesties.
 
Laatst bewerkt:
VERT.ZOEKEN werkt enkel als de zoekreeks oplopend gesorteerd is.

Ja, als benaderen "WAAR" is wel, maar niet bij het benaderen van "ONWAAR": Lees de HELP van Excel en zie.
Waarom zou de functie '=VERT.ZOEKEN' niet werken.
Code:
=ALS.FOUT(VERT.ZOEKEN(C2;$A$2:$B$87000;2;0);"niet gevonden")
 
Ja, als benaderen "WAAR" is wel, maar niet bij het benaderen van "ONWAAR": Lees de HELP van Excel en zie.
Waarom zou de functie '=VERT.ZOEKEN' niet werken.
Code:
=ALS.FOUT(VERT.ZOEKEN(C2;$A$2:$B$87000;2;0);"niet gevonden")

Als ik bovenstaande formule gebruik, krijg ik niet hetzelfde resultaat als de eerder genoemde formule. Zou dit komen doordat het niet oplopend is gesorteerd?

Correctie! Geeft wel zelfde resultaat!

Denk dat het computertje om me werk beetje moeite heeft met de formule over 87000 cellen...
 
Laatst bewerkt:
Zoals ik al zei: VERT.ZOEKEN werkt enkel in gesorteerde tabellen (wat in het bestand niet het geval is). Stel dat je VERT.ZOEKEN toepast in de reeks 1,3,5,7,2,4,6,8 en je zoekt naar 2, dan krijg je een error. Het is niet altijd mogelijk om zoiets te sorteren en daarom raad ik die andere methode aan. Die werkt gewoon flexibeler.

Tussen twee haakjes: bij die ALS.FOUT(VERT.ZOEKEN(...)) moet die parameter ;0 weg.

Ik zal even mijn methode toelichten.

Eerst ga je kijken op welke rij de gezochte waarde staat. Dit doe je met VERGELIJKEN(zoekwaarde;zoektabel;exact of benaderend). Dit resultaat kan je gebruiken in Index(waardetabel;rij;kolom). Je kent de tabel al en je weet de hoeveelste kolom. Als rij geef je in plaats van een getal gewoon de functie VERGELIJKEN mee. Dus je krijgt dan al INDEX(waardetabel;VERGELIJKEN(zoekwaarde;zoektabel;exact of benaderend);kolom). Dit geeft dus INDEX(waardetabel;gevonden in rij x;kolom); of dus de waarde in de waardetabel op de zoveelste rij en in de zoveelste kolom.

Deze formule geeft een foutmelding als de zoekwaarde niet werd gevonden. De ALS.FOUT(functie;waarde als fout) geeft het resultaat van de functie weer als ze werkt, en als dit een foutmelding geeft, geeft deze een aangepaste melding. Zo krijg je bv. "niet gevonden" in plaats van #N/A!.

Dat is zowat kort waar het op neer komt, maar kijk zeker ook even op die microsoft-pagina voor extra uitleg...
 
Zoals ik al zei: VERT.ZOEKEN werkt enkel in gesorteerde tabellen (wat in het bestand niet het geval is). Stel dat je VERT.ZOEKEN toepast in de reeks 1,3,5,7,2,4,6,8 en je zoekt naar 2, dan krijg je een error. Het is niet altijd mogelijk om zoiets te sorteren en daarom raad ik die andere methode aan. Die werkt gewoon flexibeler.

Tussen twee haakjes: bij die ALS.FOUT(VERT.ZOEKEN(...)) moet die parameter ;0 weg.
Wie ga je dat nu wijs maken (weet je wel waar die 0 (nul) voor staat?
Lees eens de HELP van EXCEL


Als ik bovenstaande formule gebruik, krijg ik niet hetzelfde resultaat als de eerder genoemde formule. Zou dit komen doordat het niet oplopend is gesorteerd?

Correctie! Geeft wel zelfde resultaat!
Denk dat het computertje om me werk beetje moeite heeft met de formule over 87000 cellen...

Dat is helemaal correct.
 
@HSV:

Je hebt gelijk, ik geef het graag toe, maar toch een paar kanttekeningen:

De paramter ;0 kan inderdaad gebruikt worden met VERT.ZOEKEN (betekent exact zoeken), maar ik raad aan om die weg te laten omdat dit een optionele parameter is die standaard zo staat ingesteld. Of je die ;0 erbij zet of niet, het resultaat is hetzelfde. Ik vind het makkelijker en overzichtelijker om ze weg te laten, maar inderdaad, het is daarom niet juister of minder juist.

Wat wel effectief zo is: VERT.ZOEKEN werkt niet met ongesorteerde tabellen. Microsoft zegt dat ook op deze pagina: http://support.microsoft.com/kb/181212.

Ik raad steeds de INDEX+VERGELIJKEN-methode aan om de volgende redenen:
  • Deze methode werkt ook op ongesorteerde tabellen;
  • Bij deze methode hoeven de zoekwaarden in je tabel niet in de eerste kolom te staan. Je kan bv. ook naar de waarde in de 2de kolom zoeken op basis van gegevens in de 8ste kolom;
  • De methode kan zowel horizontaal als verticaal gebruikt worden.

In een huis-tuin- en keukensituatie zal je die voordelen niet echt kunnen benutten, maar als je een en ander wat verder doordrijft, heb je hier toch al snel nood aan...

Dus mijn excuses voor de slechte verwoording, ik hoop dat dit een en ander verduidelijkt en rechtzet.
 
bveyndhoven schreef: "
"De paramter ;0 kan inderdaad gebruikt worden met VERT.ZOEKEN (betekent exact zoeken), maar ik raad aan om die weg te laten omdat dit een optionele parameter is die standaard zo staat ingesteld. Of je die ;0 erbij zet of niet, het resultaat is hetzelfde."
Antwoord:
Dat is onjuist! Standaard staat "benaderen" op WAAR, ofwel 1; zie de helpfile bij vert.zoeken.
Of je die 0 er wel of niet bijplaatst, maakt een HEEL GROOT VERSCHIL (als je veel met ongesorteerde gegevens en vert.zoeken werkt, zul je het wel merken) !

bveyndhoven schreef: "VERT.ZOEKEN werkt niet met ongesorteerde tabellen. Microsoft zegt dat ook op deze pagina: http://support.microsoft.com/kb/181212."
Microsoft heeft het daar over de functie ZOEKEN, wat HELEMAAL NIET hetzelfde is als VERT.ZOEKEN !
Je opmerking daaromtrent is dus ONJUIST !
 
Laatst bewerkt:
@HSV:

Je hebt gelijk, ik geef het graag toe, maar toch een paar kanttekeningen:

De paramter ;0 kan inderdaad gebruikt worden met VERT.ZOEKEN (betekent exact zoeken), maar ik raad aan om die weg te laten omdat dit een optionele parameter is die standaard zo staat ingesteld. Of je die ;0 erbij zet of niet, het resultaat is hetzelfde. Ik vind het makkelijker en overzichtelijker om ze weg te laten, maar inderdaad, het is daarom niet juister of minder juist.


Dus mijn excuses voor de slechte verwoording, ik hoop dat dit een en ander verduidelijkt en rechtzet.

Je liegt als dat het geschreven staat.
Komt gewoon door dat je de HELP van Excel niet goed leest.
Dan zal ik het stukje hier neer zetten uit de HELP van Excel, en kun je het nog eens goed lezen.

benaderen Optioneel. Een logische waarde die aangeeft of VERT.ZOEKEN wel of niet exact overeenkomende waarden moet zoeken:
Als benaderen WAAR is of wordt weggelaten, wordt er een exact of een niet-exact overeenkomende waarde gevonden. Wanneer er geen exacte overeenkomst wordt gevonden, wordt de volgende hoogste waarde die kleiner is dan zoekwaarde als resultaat gegeven.
Belangrijk Als benaderen WAAR is of wordt weggelaten, moeten de waarden in de eerste kolom van tabelmatrix in oplopende volgorde zijn gesorteerd, anders geeft VERT.ZOEKEN wellicht niet de juiste waarde als resultaat.
 
Ik had blijkbaar inderdaad een stukje gemist in de helpteksten en vandaar mijn vergissing. Mijn excuses dus voor de foutieve informatie.

Er wel een verschil tussen de VERT.ZOEKEN-methode en de INDEX+VERGELIJKEN-methode in die zin dat je met VERT.ZOEKEN alleen een rij kunt selecteren op basis van de eerste kolom, terwijl je daar met de andere methode ook de vrijheid in hebt.

Nogmaals mijn excuses voor mijn vergissing en de foutieve informatie.
 
Ik had blijkbaar inderdaad een stukje gemist in de helpteksten en vandaar mijn vergissing. Mijn excuses dus voor de foutieve informatie.

Er wel een verschil tussen de VERT.ZOEKEN-methode en de INDEX+VERGELIJKEN-methode in die zin dat je met VERT.ZOEKEN alleen een rij kunt selecteren op basis van de eerste kolom, terwijl je daar met de andere methode ook de vrijheid in hebt.

Nogmaals mijn excuses voor mijn vergissing en de foutieve informatie.

Inderdaad met een dubbele vergelijking wel, maar met een enkele geef toch ook je kolonr (2) op in 'kolom_getal' van de INDEX functie.
Net als met VERT.ZOEKEN.
 
HSV zei:
Inderdaad met een dubbele vergelijking wel, maar met een enkele geef toch ook je kolonr (2) op in 'kolom_getal' van de INDEX functie.
Net als met VERT.ZOEKEN.

Akkoord. Maar ik bedoel dat VERT.ZOEKEN je zoekwaarde moet gaan zoeken in de 1ste kolom. Stel nu dat je tabel een stuk of 10 kolommen heeft die door het gebruik van andere zoekfuncties niet omgewisseld kunnen worden. Er wordt bv. al een VERT.ZOEKEN op uitgevoerd. Je moet er een tweede zoekopdracht op uitvoeren, maar je zoekwaarde moet je zoeken in de 7de kolom om de waarde uit de 2de kolom op te halen. Met INDEX+VERGELIJKEN kan dat wel door de zoektabel in de functie VERGELIJKEN aan te passen. Met VERT.ZOEKEN kan je dat niet. Maar dan spreek je al over iets verdere situaties.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan