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

wat heb ik fout gedaan

Status
Niet open voor verdere reacties.

patrickje

Gebruiker
Lid geworden
31 mei 2009
Berichten
172
Kan iemand mij vertellen wat ik fout heb gedaan ???

Ik heb een validatielijst gemaakt in cel A1
Daar heb ik tot nu toe 3 keuzes.

Als ik de eerste keuze pak dan zoekt hij de bij behoorende waardes maar bij de volgende niet meer

Wie kan me helpen ??
Bekijk bijlage test.xlsm
 
De eerste kolom van de gegevens staat niet in oplopende volgorde, dus moet de volgende formule overal gebruikt worden:
Gegevens!A4:CA6;16;ONWAAR)
 
Dat is het eerste wat je moet veranderen.

Verder klopt deze formule niet
Code:
=ALS(A1="";"";ALS(VERT.ZOEKEN(A1;Gegevens!A:CA;12)[COLOR="red"]=""[/COLOR];"";VERT.ZOEKEN(A1;Gegevens!A:CA;12)))

Maar moet worden
Code:
=ALS(A1="";"";ALS([COLOR="royalblue"]ISNB([/COLOR]VERT.ZOEKEN(A1;Gegevens!A:CA;12;[COLOR="blue"]onwaar[/COLOR])[COLOR="royalblue"])[/COLOR];"";VERT.ZOEKEN(A1;Gegevens!A:CA;12;[COLOR="royalblue"]onwaar[/COLOR])))
 
Laatst bewerkt door een moderator:
Ok dank je jongens

Maar nog 1 vraagje

Met deze formule : =ALS(A1="";"";ALS(VERT.ZOEKEN(A1;Gegevens!A:CA;11;ONWAAR)="";"";VERT.ZOEKEN(A1;Gegevens!A:CA;11;ONWAAR)))
werkt het wel
Alleen waar staat dat onwaar voor ???
 
ONWAAR staat voor het benaderen van de zoekwaarde.
Stel dat de zoekwaarde niet gevonden wordt, dan kan je de formule met WAAR (of weglaten) instellen dat Excel een resultaat bij benadering geeft. Dan dient de lijst overigens wel op volgorde te liggen.

Persoonlijk gebruik ik liever geen Vert.Zoeken, maar Verschuiving icm Vergelijken omdat Vert.Zoeken niet flexibel is.

Met vriendelijke groet,


Roncancio
 
Roncancio

Hoe zou je het dan in elkaar zetten met verschuiving. deze optie ken ik net met excel
 
Code:
=ALS(ISFOUT(VERSCHUIVING(Gegevens!$K$1;VERGELIJKEN(A1;Gegevens!A:A;0)-1;0;1;1));"";VERSCHUIVING(Gegevens!$K$1;VERGELIJKEN(A1;Gegevens!A:A;0)-1;0;1;1))

Het oogt ietwat ingewikkeld maar zodra je door hebt hoe het werkt, heb je er veel baat bij.
Het grote voordeel van deze methode is dat je niet in de 1e kolom hoeft te zoeken, maar ook in andere kolommen om vervolgens naar links te gaan.
Bovendien hoeft je geen kolommen te tellen (in jouw geval 11e kolom vanaf A-kolom) en kun je direct gebruik maken van het adres van de kolom (dus K1).

Met vriendelijke groet,


Roncancio
 
Hier moet ik wel even over puzzelen denk ik
Waar kan ik hier over iets vinden. of kun je makkelijk uitleggen welke delen van de formulle warvoor zorgen.
Welke cel is bepalend welk stuk zoekt op het volgende blad in welke kolom enz.
 
Code:
VERGELIJKEN(A1;Gegevens!A:A;0)
Bovenstaande is het gedeelte van de formule dat de waarde van A1 zoekt in de A-kolom van Gegevens.
Het resultaat is een getal dat gelijk is aan de positie binnen het bereik.
In dit geval dus de rijnummer omdat begonnen wordt bij de 1e rij.

Met vriendelijke groet,


Roncancio
 
OK dank je het werkt nu en ben al wat wijzer.
Alleen als ik iets selecteer waar geen waardes staan ingevult word er ee 0 weergegeven hoe kan ik dit aanpassen zonder het worbook aan te passen
 
De originele code zorgt ervoor dat een lege cel wordt getoond als er niets wordt gevonden.
Code:
=ALS(ISFOUT(VERSCHUIVING(Gegevens!$K$1;VERGELIJKEN(A1;Gegevens!A:A;0)-1;0;1;1));"";VERSCHUIVING(Gegevens!$K$1;VERGELIJKEN(A1;Gegevens!A:A;0)-1;0;1;1))

Met vriendelijke groet,


Roncancio
 
patrickje,
moeten de gegevens in het blad VooereidingsTafel per se op de manier (in de aangeduide cellen onder A...H en onder 1...8) gepresenteerd worden zoals je hebt aangegeven? Indien ja, dan is dat wel erg ongelukkig (vind ik) voor het doorvoeren van formules.
Ik wacht met een (andere) oplossing tot je een reactie hebt gegeven.
NB: In het blad 'gegevens' heb je de inhoud van Q2 en R2 (G en H) per ongeluk verwisseld denk ik.
 
@ zapatr

Ja klopt dankt je ik had idd G en H omgewisseld

Ik ben benieuwd naar jou oplossing. Er komt makelijk nog een kleine afbeelding bij te staan maar dat kan ik ook op een andere manier oplossen.
 
Het moet niet, maar het is praktisch als je enkele bereiken in het blad 'Gegevens ' een naam geeft:
A4:a500 --> mesnummers
B4:I500 --> onderwielen
K4:R500 --> bovenwielen
Zie de bijlage.
Ik ben ervan uitgegaan dat je in het blad 'Gegevens' 'slechts' 500 rijen nodig hebt; wijzig zo nodig het getal 500 in een ander getal dat het maximaal aantal benodigde rijen weergeeft. Het is niet verstandig om een formule alle rijen van een kolom te laten doorzoeken als je slechts een beperkt aantal rijen gebruikt.

Hoewel de cellen in het blad 'Voorbereidingstafel' waarin de uitkomsten van de formules moeten komen, niet erg handig geplaatst zijn, heb ik voor het blad 'Voorbereidingstafel' toch gezocht naar:

- enerzijds: 1 zelfde formule voor de cellen onder de letters A t/m H,
dus voor de cellen B16, E14, H12, K10, N8, Q6, T4, en W2.
Let goed op dat als je de formule zelf invoert, dat je dan de juiste cellen selecteert, want met die samengevoegde cellen selecteer je gemakkelijk een verkeerde cel.

- anderzijds: 1 zelfde formule voor de cellen onder de getallen 1 t/m 8,
dus voor de cellen P51, S49, V47, Y45, AE41, AH39, en AK37.

Als je van A1 in het blad 'Voorbereidingstafel' een keuzelijst maakt, dan kan onjuiste invoer eigenlijk niet voorkomen, tenzij je de gemaakte keuze wist. Omdat ik de indruk heb dat je met die mogelijkheid rekening wil houden, heb ik controle daarop toch maar toegevoegd.
Verder wil je ook dat als het resultaat van de formule een lege cel is, dat dan in plaats van een 0 niets wordt weergegeven. Die twee controles maken de formule dubbel zo lang, maar dat hoeft geen probleem te zijn. Het kan wel korter, maar dat zou nog wat meer tijd vergen.
Andere oplossingen (bv. met 'verschuiving') zijn hier ook mogelijk.

Opmerking:
Plaats a.u.b. voortaan op dit forum een Excelbijlage als Excel 97-2003-bestand, dan kunnen meer mensen (waaronder ik) het lezen en krijg je waarschijnlijk ook meer antwoorden (het compatibiliteitspakker werkt bij mij namelijk niet meer, ik heb daarom al je gegevens in een nieuw bestand moeten invoeren).

Voor Roncancio:
Jij schreef:
De originele code zorgt ervoor dat een lege cel wordt getoond als er niets wordt gevonden.
De vragensteller bedoelt: als het ingevoerde mesnummer wel voorkomt, maar het RESULTAAT van de formule is een lege cel, dan mag er geen 0 worden weergegeven, en jouw oplossing geeft als resultaat dan wel een 0. Hiervoor kan jouw formule natuurlijk wel worden aangepast.
 
Laatst bewerkt:
Bedankt Zapatr

Het word wel iets duidelijker nu.
Alleen ben ik nog even bezig met het uitpuzzelen van de code.
Zou jij mij daar wat uitleg over kunnen geven.
Bij mijn vorige code (niet uit deze vraag) kom ik hem verklaren.
Nu snap ik (nog) niet hoe hij precies zoekt. het -17 en -66 begrijp ik nog even niet.
Maar ik zit even met een paar vraagtekens.
 
Bekijken we het antwoord voor de cel onder 'A' (B16).
De gebruikte formule kunnen we terugbrengen tot:
Code:
=index(bovenwielen;vergelijken($a$1;mesnummers;0);kolom()+rij()-17)
al de rest is opvulling om een 0 en een foutmelding te voorkomen.
De indexfunctie teruggebracht tot zijn een voudigste vorm luidt (zie vooral ook de helpfile van Excel, waarin alle functies zeer goed worden uitgelegd): =index(bereik;rijnummer;kolomnummer)

bereik = bovenwielen = K4:R500 in blad2
rijnummer: = vergelijken($a$1;mesnummers;0)
d.w.z.: kijk in a4:a500 van blad 2 in welke rij van dat bereik het in a1 van blad 1 gekozen mesnummer voorkomt.

kolomnummer: = kolom()+rij()-17
'A' staat in K4:R500 van blad2 in K4; kolom K is in dat bereik de eerste kolom.
'B' staat in dat bereik in de tweede kolom, 'C' in de derde; enz.
Dus: op blad1 hoort bij de uitkomst onder 'A' kolom 1, voor de uitkomst onder'B' kolom 2, enz.
M.a.w.: in plaats van kolom()+rij()-17 kun je ook gebruiken: 1, 2, 3, enz. Het gebruik van kolom()+rij()-17 is dus alleen maar om het jou gemakkelijker te maken (nl. om voor alle 8 cellen 1 en dezelfde formule te kunnen gebruiken).
Een controle ter verduidelijking:
- voor 'A': B16 is kolomnr. 2 en rijnr. 16; --> kolom()+rij()-17 = 2+16-17 = 1 (klopt);
- voor 'B': E14 is kolomnr. 5 en rijnr. 14; --> kolom()+rij()-17 = 5+14-17 = 2 (klopt);
enz.
Voor de cellen onder de getallen 1 t/m 8 geldt hetzelfde, nl. dat je in plaats van kolom()+rij()-66 de getallen 1 t/m 8 kunt gebruiken. Kijk maar:
- voor '1': P51 is kolomnr. 16 en rijnr. 51; --> kolom()+rij()-66 = 16+51-66 = 1
- voor '2': S49 is kolomnr. 19 en rijnr. 49; --> kolom()+rij()-66 = 19+49-66 = 2
enz.
 
Ok dank je het is me nu duidelijk

Ik dacht echt dat alles op het blad gegevens moest plaatvinden.

Maar nu heb ik heb door

Heel erg bedankt
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan