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

zoekwaarde vinden na sortering van zoekvector

Status
Niet open voor verdere reacties.

Henk Sto

Gebruiker
Lid geworden
9 nov 2001
Berichten
31
Beste Excellers,

Vraag :
Hoe kan ik in een lijst/database een bepaalde (zelfde) waarde terug blijven vinden, nadat de volgorde van de lijst door sorteren veranderd is en er dan GEEN sprake meer is van een rekendige volgorde in de zoekkolom /zoekvector) ?

Toelichting.
Ik heb een lijst van b.v. 5 hele diepe kolommen (A-E). Kolom A is in een rekenkundige volgorde gesorteerd. Via de formule vert.zoeken kun je probleemloos bepaalde waarden opzoeken. Niks aan de hand.

Maar ... vervolgens ga ik de hele lijst sorteren o.b.v. een willekeurige kolom. Gevolg : kolom A kent GEEN rekenkundige of (alfabetische) SORTEERVOLGORDE meer (en - om het ingewikkeld te maken - er staan in kolom A nu ook op willekeurige plaatsen lege velden of cellen met tekst tussen alle zoekwaarden in), kortom een ratjetoe. Na sortering staan zoekwaarde en resultaat dus niet meer in b.v cel A5(=10) resp. cel E5(= 555), maar zijn versprongen naar b.v. cel A444 en E444. Bij een andere sortering staan de waarden weer in andere cellen.

Op welke manier, met welke flexibele formule kan ik nu toch in kolom A de zoekwaarde 10 blijven opsporen (en dan verwijzen naar het gezochte resultaat 555) ??
Wie weet raad ?

N.B. Vert.zoeken werkt - bij mij - in lange kolommen niet meer als de zoekkolom A geen sorteervolgorde meer kent. De formules zoeken, kiezen, index etc. blijven verwijzen naar het oude - na sortering dus verkeerde - celadres A5 resp. E5.

Vast bedankt
Henk
 
Nog geen volledige oplossing maar wellicht een begin.
Geef de cellen een naam (bijvoorbeeld ZOEKWAARDE en RESULTAAT) en gebruik in je zoekfunctie de naam i.p.v. het celadres. Vul bij het laatste deel van de vert.zoeken functie ONWAAR in, dan wordt naar de exacte waarde gezocht. Ik heb het even getest bij een ongesorteerd stukje met in de zoekkolom lege cellen, formule en waarden en de opgegeven zoekwaarde wordt netjes gevonden.
 
zoeken in een ongesorteerde lijst

Jan ,

Je verdient een lintje voor de zovele mensen die jij volgens mij helpt. Ook mijn dank, maar ...

Vraag 1 : Moet bij toepassen v.d. formule vert.zoeken
de 1e kolom v.d. lijst (kol. A = zoekvector) nu absoluut wel of niet in een gesorteerde volgorde staan ?
Tot mijn eigen verbazing/vreugde wordt de zoekwaarde soms toch gevonden in de niet gesorteerde kolom (i.c. cel A5=10). Hoe kan dat nou ? Ra ra of hoera ?

Vraag 2 : Jouw oplossing werkt bij mij niet. Wat doe ik fout ?
Ik heb in mijn voorbeeld de cel A5 (=10) de naam zoekwaarde gegeven en cel E5 (=555) de naam resultaat. De formule is dan :
=vert.zoeken(zoekwaarde;A1..F2000;3;onwaar).
Werkt prima, maar na sortering v.d. lijst op kolom A is de opgegeven zoekwaarde b.v. versprongen naar cel E5 . De formule blijft TOCH zoeken naar het celadres A5 (want alleen die cel heeft immers de naam zoekwaarde).

Vraag 3 :
Als mijn lijst/database 2000 regels diep is zou ik jouw oplossing dan 2000 verschillende namen voor de zoekwaarde en 2000 namen voor het resultaat moeten maken (zoekwaarde1, zoekwaarde2 etc. ). Dat lijkt me te veel van het goede.

Vast bedankt voor je meedenken.
Henk
 
Sorry Jan

Ik bedoel bij vraag 2 dat de zoekwaarde versprongen isvan cel A5 naar b.v. A444 (=in dezelfde kolom)


en dus niet naar E5 . dat is larie.

Henk
 
Re: zoeken in een ongesorteerde lijst

Geplaatst door Henk Sto
Vraag 1 : Moet bij toepassen v.d. formule vert.zoeken
de 1e kolom v.d. lijst (kol. A = zoekvector) nu absoluut wel of niet in een gesorteerde volgorde staan ?
Tot mijn eigen verbazing/vreugde wordt de zoekwaarde soms toch gevonden in de niet gesorteerde kolom (i.c. cel A5=10). Hoe kan dat nou ? Ra ra of hoera ?
Als je als laatste argument voor de functie VERT.ZOEKEN 0 (nul) of ONWAAR geeft, dan hoeft de lijst niet gesorteerd te zijn. Je kan eventueel wel de fout #N/B als resultaat krijgen, wanneer de gezochte waarde niet in de lijst voorkomt. Deze fout kan je wel onderdrukken met volgende structuur:

=als(isfout(zoekfunctie);"";zoekfunctie)

Vraag 2 : Jouw oplossing werkt bij mij niet. Wat doe ik fout ?
Ik heb in mijn voorbeeld de cel A5 (=10) de naam zoekwaarde gegeven en cel E5 (=555) de naam resultaat. De formule is dan :
=vert.zoeken(zoekwaarde;A1..F2000;3;onwaar).
Werkt prima, maar na sortering v.d. lijst op kolom A is de opgegeven zoekwaarde b.v. versprongen naar cel E5 . De formule blijft TOCH zoeken naar het celadres A5 (want alleen die cel heeft immers de naam zoekwaarde).
Dit stuk begrijp ik niet goed. Normaal werk je als volgt:
De tabel staat bij jouw in de kolommen A:E.
Wanneer je dan met VERT.ZOEKEN naar een bepaalde waarde wilt zoeken, typ je die zoekwaarde in een cel buiten de tabel, bijv. F1. Vervolgens ga je in de tabel deze waarde opzoeken, de formule wordt dan iets als volgt:

=VERT.ZOEKEN(F1;A1:E2000;3;0)

Je moet in de tabel dus geen enkele naam definiëren.
 
Henk,

Je wilt een waarde in kolom A opzoeken en dan in kolom E het bijbehorende resultaat tonen. Dat begrijp ik er tenminste uit.
Je zou dan de cel met zoekwaarde en resultaat boven de tabel kunnen zetten en dus niet mee laten sorteren.

Vraag: Komt dezelfde waarde meerdere malen voor in kolom A?

Zo ja dan kun je misschien beter met autofilter werken.
Ga in de tabelkop staan en kies data, filter, autofilter.
Er verschijnen kleine pijltjes naast de koppen.
Door hier op te klikken kun je een waarde kiezen die je zoekt. Je krijgt dan alle regels gefilterd met die waarde.
Je kunt ook kiezen voor Aangepast en zelf je criterium opgeven. Dit wijst zichzelf en je kunt op meerdere kolommen gefilterd zoeken.

Sluit anders, indien mogelijk, een gezipt bestandje bij.
 
Jan en Ingrid ,

Een simpel bestandje verduidelijkt meer dan kilometers tekst. Vandaar op verzoek een bijlage bijgesloten.

De oplossing is inderdaad dat wanneer je in de formule vert.zoeken onwaar toevoegt, dat dan noch de zoekvectorkolom noch de resultaatvectorkolom gesorteerd behoeft te zijn.

Staat natuurlijk nergens, maar kom je via trial and error en dankzij Helpmij (jullie) achter.

Zie mijn de conclusie onder zoektabel2 in bijgesloten gezipt bestandje. Is dat goed gegaan ?

Nogmaals dank
Henk
 

Bijlagen

  • sorteren.zip
    3 KB · Weergaven: 64
Voor de functie ZOEKEN moet de zoekvector altijd oplopend gesorteerd zijn.

Voor de functies VERT.ZOEKEN, HORIZ.ZOEKEN en VERGELIJKEN moet de tabel niet gesorteerd zijn als je als laatste argument 0 (nul) of ONWAAR gebruikt. Als je dit argument weglaat moet de tabel wel gesorteerd zijn. Plaats in de derde zoektabel maar eens 33 als zoekwaarde en bekijk het resultaat.

p.s.: bekijk de Help-informatie eens over de ZOEK-functie, daar staat duidelijk dat de reeks gesorteerd moet zijn:
Belangrijk De waarden in zoekvector moeten een oplopende volgorde hebben (...;-2; -1; 0; 1; 2; ...; A-Z; ONWAAR; WAAR). Als dit niet het geval is, kan ZOEKEN een onjuist resultaat geven. Bij tekstwaarden wordt geen onderscheid gemaakt tussen hoofdletters en kleine letters.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan