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

Zoeken identiek blok gegevens uit referentietabel

  • Onderwerp starter Onderwerp starter JMu
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

JMu

Gebruiker
Lid geworden
20 jan 2012
Berichten
17
Goedemorgen,

Tijdens het maken van bijgevoegd voorbeeld bestand loop ik tegen een probleem aan. In het voorbeeld bestand heb ik links een bepaalde code neergezet (oranje veld). In de blauw, groen en rode velden wil ik bepaalde bereiken uit de oranje code vergelijken met de referentietabel uiterst rechts. Als de selectie van het kader overeenkomt met één van de cijferblokjes uit de referentietabel zou ik graag het cijfer wat onder het blokje staat weergegeven in het kader van de gekleurde velden hebben staan. Ps. De getallen die weergegeven moeten worden in de rode velden zijn de geel gekruisde cellen uit de code samengevoegd.

Ik ben bezig geweest om met de functies VERT.ZOEKEN en HORIZ.ZOEKEN een soort variant van de deze functies te bedenken maar ik kom hier helaas niet uit en betwijfel of het uberhaupt mogelijk is met deze functies. Wellicht moet er een VBA formule aan te pas komen.

Wie kan helpen?

Bvd
 

Bijlagen

Een begin van een oplossing. Kijk eens naar de oranje cellen: P16 is het basisidee, N16 is de eerste uitbreiding ervan, moet nog wel voor de 16 vormen gemaakt worden in plaats van de 2 waarin die nu is gezet. Dit nesten van de ALS-functies voor de 16 vormen kan vanaf Excel 2007.
Misschien, ik denk haast wel zeker, is er een slimmere manier, maar daar ben ik zo snel nog even niet opgekomen.
Je kunt de matrixformules niet in samengevoegde cellen zetten. Daarom dus in de rijen 16 en hoger, met verwijzing in de cellen N4 en P4, om het te laten aansluiten bij jouw plaatje.

Aanvulling:
Er is mij ondertussen een tweede oplossing opgeborreld: toegevoegd als tweede bestandje.
Vanwege de erg omslachtige oplossing in het eerste bestandje heb ik dat maar verwijderd.
Ik liep nog tegen het probleempje aan dat in het door de TS gegeven voorbeeldbestandje de formules niet in iedere cel wilden werken. Daarom maar een extra blad opgenomen waarin dat wel werkt. Ik vermoed dat het te maken heeft met celeigenschappen.
 

Bijlagen

Laatst bewerkt:
hallo JMu

leuk probleem:thumb:

je kan natuurlijk per vierkant de code vertalen door alle vier de tekens in een string achter elkaar te zetten. dat maakt de oplossing eenvoudiger


ik ben voorlopig alleen toeschouwer (geen tijd)
en ik ben benieuwd wat er allemaal gemaakt wordt
als ik tijd heb en er is nog geen mooie oplossing ga ik ook wat proberen.

groet sylvester
 
@Thoralf

Bedankt zover voor het meedenken! Ik heb beide bestanden bekeken en geprobeerd. Het goede nieuws is dat in beide bestanden een zekere oplossing mogelijk is van mijn issue.

De eerste variant heb je inmiddels verwijderd maar heb ik nog wel kunnen testen. Voordeel van deze variant is dat de referentietabel aangepast kan worden met andere tekens (i.p.v. enkel 0 en 1). Wel zijn de formules erg lang, wellicht is hier nog een andere mogelijkheid voor om dit efficienter te realiseren?

De tweede variant werkt goed maar werkt enkel met het binaire systeem. Doordat 0 en 1 alleen als invoer mogelijk is (voor zover ik weet) vind ik dit een nadeel.

@ sylvester

Inderdaad een leuk probleem, ik hoop dat er een mooie oplossing komt en dat het tevens iets toevoegt aan het forum!

Verdere ideeën zijn welkom!:)
 
Dan ook maar even het idee van Sylvester wat verder uitgewerkt. In de formules wordt met de functie tekst gewerkt omdat er getallen worden gebruikt en als die zonder die functie zouden worden samengevoegd dan werd het samengevoegde veld 16 tekens lang. Als je echter alleen tekstsymbolen (dus dan ook cijfers als tekst) gebruikt hoef je die functie tekst niet te gebruiken.
 

Bijlagen

Hier kan ik zeker mee uit de voeten, bedankt voor de snelle (re)acties!

Status is opgelost.

Groeten Jan


Aanvulling: Ik merk zojuist dat er automatisch nr. 1 t/m 16 wordt toegekend aan de gevonden waarde in bereik D18-D33 door de funcite VERGELIJKEN. Is er een mogelijkheid om de weergave ergens te definiëren? Bijvoorbeeld a t/m p i.p.v. 1 t/m 16?
 
Laatst bewerkt:
hallo JMu

ik doe toch nog een duit in het zakje

ik heb wel een funtion in VBA gemaakt om de oplossing te zoeken.
verder heb ik een tabel naam aangemaakt
en wat hulptabelletjes
ik hoop dat je er wat aan hebt.

groet sylvester
 

Bijlagen

@JMU,

Je krijgt nu een getal als antwoord, dat je kunt gebruiken in de index-functie: =INDEX(Blad1!$C$18:$C$33;getal), waarin getal vervangen moet worden door de formules die je reeds hebt en in het bereik C18:C33 zet je in plaats van de getallen 1 t/m 16 de waardes die er wilt hebben staan.
 
hallo JMu
als je wilt kan het ook zonder hulp-tabellen dan wordt de zoek_functie iets ingewikkelder

geef even aan als dat gewenst is.

groet sylvester
 
@ sylverster

Bedankt voor jouw bijdrage. Deze werkt ook wel heel mooi!

hallo JMu
als je wilt kan het ook zonder hulp-tabellen dan wordt de zoek_functie iets ingewikkelder

geef even aan als dat gewenst is.

groet sylvester

Eerlijk gezegd zijn de hulptabellen wel een beetje vervuilend voor de opmaak. Het zou fijn zijn als het zonder zou kunnen.
 
@ Thoralf

@JMU,

Je krijgt nu een getal als antwoord, dat je kunt gebruiken in de index-functie: =INDEX(Blad1!$C$18:$C$33;getal), waarin getal vervangen moet worden door de formules die je reeds hebt en in het bereik C18:C33 zet je in plaats van de getallen 1 t/m 16 de waardes die er wilt hebben staan.

Ik heb de getallen in C18-C33 vervangen door a, b, c enz. en heb de volgende formule in de doelcellen geplaatst:

=INDEX(Blad1!$C$18:$C$33;VERGELIJKEN(D4&E4&D5&E5;$D$18:$D$33;0))

Dit werkt perfect!

Hartelijk dank
 
met deze function kan het zonder hulptabellen
Bekijk bijlage schetsblad zonder hulptabellen.xlsm
Code:
Function ZoekAntwoordZonderHulptabellen(Tabel As Range, LinksBoven As Range, Optional RechtsBoven As Range, Optional LinksOnder As Range, Optional RechtsOnder As Range)
    Dim ZoekTekst As String, TabelTekst As String, Rij As Integer, Kolom As Integer, Temp As Range
    If RechtsBoven Is Nothing Then
        Set RechtsBoven = LinksBoven(1, 2)
        Set LinksOnder = LinksBoven(2, 1)
        Set RechtsOnder = LinksBoven(2, 2)
    End If
    ZoekTekst = LinksBoven & RechtsBoven & LinksOnder & RechtsOnder
    For Kolom = 1 To 13 Step 4
        For Rij = 1 To 11 Step 3
            Set Temp = Tabel(Rij, Kolom)
            TabelTekst = Temp & Temp(1, 2) & Temp(2, 1) & Temp(2, 2)
            If ZoekTekst = TabelTekst Then
                ZoekAntwoordZonderHulptabellen = Temp(3, 1)
                Exit Function
            End If
        Next Rij
    Next Kolom
    ZoekAntwoordZonderHulptabellen = "???"
End Function
 
@Sylvester

Deze methode werkt ook perfect, complimenten!

De praktijk zal moeten uitwijzen welke methode het meest praktisch is voor mij.


@ Thoralf en Sylvester

Bedankt voor het meedenken en de geboden oplossingen, ik ben daar zeer content mee. De vraag is wat mij betreft perfect opgelost. :thumb:
 
@Sylvester

Nog een kleine vraag: als ik waarden aanpas in de tabel wordt dit niet direct doorgevoerd. Kan dit worden gerealiseerd middels bijvoorbeeld Worksheet_Change in VBA?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan