Op 10 sept heb ik een vraag gesteld mbt opzoeken van een waarde in een
matrix. Gezien het geringe aantal reacties heb ik het vermoeden dat
het niet zo eenvoudig is.
Nog even in het kort samengevat:
Ik wil een unieke waarde opzoeken in een tabelmatrix (zeg A1:H15) en
de gezochte formule moet verwijzen naar de kolomtitel in rij 1.
Is dit samen te vatten in een formule of wordt het VBA?
Kan iemand me op weg helpen?
Vincent
Function eerste_uniekewaarde(bereik As Range)
For Each i In bereik
If WorksheetFunction.CountIf(bereik, i.Value) = 1 Then
eerste_uniekewaarde = Cells(1, i.Column).Value
Exit Function
End If
Next
eerste_uniekewaarde = "geen unieke waarde in bereik"
End Function
De te gebruiken formule is:
=eerste_uniekewaarde(A2:H15)
Ik pak met opzet niet A1:H15 omdat anders de kolomtitels meegenomen worden
in de formule. En indien de kolomtitels uniek zijn zal de uitkomst altijd de
kolomtitel in A1 zijn.
Indien er geen unieke waardes voorkomen in het bereik zal de uitkomst "geen
unieke waarde in bereik" zijn.
Succes,
Maurrieske
"vincent" <vincent...@hotmail.com> schreef in bericht
news:7a836afc-7ef8-41c2...@c32g2000vbq.googlegroups.com...
Ik weet niet of ik je vraag goed begrijp maar ik dacht het volgende:
Als voorbeeld een stukje excelblad met in regel 1 de kolomtitels (
kolomA,B,C,D en E )
A B C D
E F G
1 KOLOM A KOLOM B KOLOM C KOLOM D KOLOM E
kleren
2 fiets pet stoel kom
bos
3 hoed kast kleren klas
bloem
4 tol boom roos vis
vuur
5
6
7 kleren
In cel A7 typ je het woord dat je in de matrix A2:E4 wilt zoeken.
In dit geval heb ik kleren getypt maar kan ook een ander woord zijn.
Typ in cel G1: =A7 ( het woord kleren zal dan in dit geval in deze cel
verschijnen ).
Als je A7 verandert dan verandert G1 uiteraard ook.
We gaan nu eerst kijken of het woord dat in A7 staat in rij 2 voor komt.
Hiervoor typen we de volgende regel in F2.
=ALS(A2=$A$7;KOLOM(A2);ALS(B2=$A$7;KOLOM(B2);ALS(C2=$A$7;KOLOM(C2);ALS(D2=$A$7;KOLOM(D2);ALS(E2=$A$7;KOLOM(E2);"")))))
Als het woord dat we zoeken ( A7) in deze regel voor komt komt in F2 een
getal te staan ( 1,2,3,4 of 5 )
Het getal geeft aan in welke kolom het woord dan staat ( kolom A,B,C,D of E)
Als het woord niet in deze regel staat blijft de cel leeg.
Hetzelfde doen we nu in F3, we typen daarvoor het volgende
=ALS(A3=$A$7;KOLOM(A3);ALS(B3=$A$7;KOLOM(B3);ALS(C3=$A$7;KOLOM(C3);ALS(D3=$A$7;KOLOM(D3);ALS(E3=$A$7;KOLOM(E3);"")))))
Hetzelfde als hierboven:
Als het woord dat we zoeken ( A7) in deze regel voor komt komt in F3 een
getal te staan ( 1,2,3,4 of 5 )
Het getal geeft aan in welke kolom het woord dan staat ( kolom A,B,C,D of E)
Als het woord niet in deze regel staat blijft de cel leeg.
In F4 typen we hetvolgende:
=ALS(A4=$A$7;KOLOM(A4);ALS(B4=$A$7;KOLOM(B4);ALS(C4=$A$7;KOLOM(C4);ALS(D4=$A$7;KOLOM(D4);ALS(E4=$A$7;KOLOM(E4);"")))))
Ook hier weer
Als het woord dat we zoeken ( A7) in deze regel voor komt komt in F4 een
getal te staan ( 1,2,3,4 of 5 )
Het getal geeft aan in welke kolom het woord dan staat ( kolom A,B,C,D of E)
Als het woord niet in deze regel staat blijft de cel leeg.
Als het goed is staat er nu in F3 het getal 3 ( als je kleren in A7 hebt
getypt )
Deze 3 geeft aan dat het gezochte woord in kolom 3 staat.
F2 en F4 zijn als het goed is leeg.
Je kunt nu ieder willekeurig woord uit de matrix in A7 typen en er zal een
getal in F2,F3 of F4 verschijnen.
Als je een woord typt dat niet voorkomt in de matrix dan zullen de cellen F2
t/m F4 leeg blijven.
Als je het beeld mooier wilt maken typ je in cel G2:
=ALS(F2=1;"staat in kolom A";ALS(F2=2;"staat in kolom B";ALS(F2=3;"staat in
kolom C";ALS(F2=4;"staat in kolom D";ALS(F2=5;"staat in kolom E";"")))))
In G3:
=ALS(F3=1;"staat in kolom A";ALS(F3=2;"staat in kolom B";ALS(F3=3;"staat in
kolom C";ALS(F3=4;"staat in kolom D";ALS(F3=5;"staat in kolom E";"")))))
In G4:
=ALS(F4=1;"staat in kolom A";ALS(F4=2;"staat in kolom B";ALS(F4=3;"staat in
kolom C";ALS(F4=4;"staat in kolom D";ALS(F4=5;"staat in kolom E";"")))))
In G5:
=ALS(EN(G2="";G3="";G4="");"geen overeenkomstig woord gevonden";"")
Als je nu kleren typt in A7 dan zal in F3 een 3 staat en in G3 "staat in
kolom C".
Je zou kolom F kunnen verbergen.
In G1 staat het gezochte woord en in de cel eronder (G3) staat "staat in
kolom C"
Dit zal nu zo voor ieder getypt woord gelden.
Als je eemn woord typt dat niet voorkomt in de matrix komt in G5 te staan :
"geen overeenkomstig woord gevonden".
Dit lijkt veel typwerk maar door de dollartekens kun je de formules
doorvoeren.
Ik ben niet goed thuis in macro's vandaar dat ik op deze , misschien iet wat
omslachtige, methode ben gekomen.
Hoop dat je hier wat aan hebt.
Groet Tonny
"vincent" <vincent...@hotmail.com> schreef in bericht
news:7a836afc-7ef8-41c2...@c32g2000vbq.googlegroups.com...
Hopelijk nu duidelijker
Tonny
"Tonny" <tonny....@home.nl> schreef in bericht
news:6f0ca$4c9e456e$541dc8b0$20...@cache3.tilbu1.nb.home.nl...
Onderstaande functie doet hetzelfde in een keer. Kopieer de code naar een
moduleblad in de VBA editor.
Function kolomkop_waarde(zoekwaarde As String, bereik As Range)
For Each i In bereik
If LCase(i.Value) = LCase(zoekwaarde) Then
kolomkop_waarde = Cells(1, i.Column).Value
Exit Function
End If
Next
kolomkop_waarde = "niet gevonden"
End Function
De te gebruiken formule is nu
=kolomkop_Waarde(A7;A2:E4)
er van uitgaande dat de zoekwaarde ingevoerd wordt in cel A7 en het
zoekbereik A2 t/m E4 is en in rij1 de kolomkoppen staan die je wil opvragen.
Groetjes,
Maurrieske
"Tonny" <tonny....@home.nl> schreef in bericht
news:5bbed$4c9e4999$541dc8b0$30...@cache3.tilbu1.nb.home.nl...
Volgens mij geeft jouw oplossing een foutmelding als het te zoeken woord
niet in de regel voor komt.
Jouw oplossing met behulp van macro's zal wel makkelijker zijn maar ik ben
niet goed thuis in het werken hiermee
vandaar dat ik zoiets met formules ( in verschillende stappen ) probeer op
te lossen.
Groet Tonny
"Maurrieske" <maurr...@hotmail.com> schreef in bericht
news:e05b5$4c9f02f6$541c2006$20...@cache4.tilbu1.nb.home.nl...
Voor wat betreft het maken van macro's kan ik zeggen dat dit redelijk
eenvoudig is. Ik kan het je aanbevelen om je daar eens in te verdiepen. Het
gaat uiteraard veel verder dan het alleen maken van eigen functies (lees
formules). Je kunt in Excel een heleboel automatiseren en eventueel ook op
gebeurtenissen (waarde in een blad verandert of de celwijzer wordt
verplaatst) laten reageren. Op die manier wordt werken met Excel veel
leuker.
Indien je er iets meer van wil leren moet je het maar laten weten.
Maurrieske
"Tonny" <tonny....@home.nl> schreef in bericht
news:69720$4c9f0902$541dc8b0$28...@cache2.tilbu1.nb.home.nl...
Ik heb in het verleden wel wat met macro's gedaan maar ben eigenlijk nooit
verder gekomen dan het werken met de macrorecorder.
Je komt al snel met het probleem te zitten dat wat jij wilt niet met de
recorder kan.
Ook het werken met werkbladknoppen heb ik toegepast maar het automatisch
starten van een macro bij een gebeurtenis is me nog nooit gelukt.
Het is me gewoon niet duidelijk hoe ik hieraan moet beginnen.
Verschillende boeken hebben me ook niet echt verder geholpen omdat de
stappen die daarin gemaakt werden voor mij toch te groot waren.
Misschien dat jij een titel van een boek hebt dat wel heel geleidelijk
uitleg geeft ?
Ben erg geïnteresseerd.
Tonny
"Maurrieske" <maurr...@hotmail.com> schreef in bericht
news:26a60$4c9f3f4d$541c2006$18...@cache4.tilbu1.nb.home.nl...
Ik kan jou wel helpen hiermee indien je dat wil. Dat zal echter wel enkel
gebeuren op tijden die ik beschikbaar heb en zin heb (meestal weekenden).
Tevens zal dit niet via deze nieuwsgroep gaan maar via de mail. Mail maar
naar mij via beantwoorden in plaats van groep beantwoorden. Dan zal ik je
verder helpen.
Dinsdags heb ik echter nooit tijd. Dus ik zal pas op zijn vroegst woensdag
antwoorden.
Groetjes,
Maurrieske
"Tonny" <tonny....@home.nl> schreef in bericht
news:68df8$4c9f92c7$541dc8b0$83...@cache3.tilbu1.nb.home.nl...
> Hoi Maurrieske,
>
> Ik heb in het verleden wel wat met macro's gedaan maar ben eigenlijk nooit
> verder gekomen dan het werken met de macrorecorder.
> Je komt al snel met het probleem te zitten dat wat jij wilt niet met de
> recorder kan.
> Ook het werken met werkbladknoppen heb ik toegepast maar het automatisch
> starten van een macro bij een gebeurtenis is me nog nooit gelukt.
> Het is me gewoon niet duidelijk hoe ik hieraan moet beginnen.
> Verschillende boeken hebben me ook niet echt verder geholpen omdat de
> stappen die daarin gemaakt werden voor mij toch te groot waren.
> Misschien dat jij een titel van een boek hebt dat wel heel geleidelijk
> uitleg geeft ?
> Ben erg geďnteresseerd.
Ik ga er nog even goed voor zitten, maar met jullie tips gaat het
zeker lukken.
Bedankt voor jullie hulp.
Groeten,
Vincent