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

Excel 2007 VLOOKUP / INDIRECT complex Probleem

Status
Niet open voor verdere reacties.

Roboman

Gebruiker
Lid geworden
5 jun 2014
Berichten
51
Best Excel helpers,

Ik probeer een vlookup / indirect statement werkend te krijgen voor de volgende situatie.
Ik heb meerdere sheets in een workbook. Deze heten 2014, 2013, 2012 etc.
De eerste kolom bevat namen van kontakten. In de regel die vooraf gegaan wordt door de naam staat data die ik wil kunnen ophalen naar een soort "Dashboard" sheet dat ik probeer te maken om eenvoudig gegevens ui de vale sheets te kunnen tonen.

Mijn dashboard (Sheet naam is menu) is ingedeeld als; In Cell D3 heb ik een dropdown met de jaartallen.
In Cell D5 heb ik de dropdown met de lijst van kontakten. De naam van het dasboard sheet is "Menu".
De formule die ik probeer te maken moet het Jaar (Cell D3) en de naam (Cell D5) als variable hebben om de naam en data uit het in Cell D3 geselecteerde sheet op te halen.
De formule moet er volgens mijn ongeveer zo uitzien,
=VLOOKUP(D$5, '2014'!$A$4:$A$350,1,0)
Waarbij vlookup in cell D5 kijkt voor de naam, die opzoekt in sheet "2014" in de kolom A4 t/m A350)
Wat ik hierin niet werkend krijg is de variable "Jaartal" (in de formule dus 2014) in de formule in te bouwen.

verdewr heb ik nog geen manier gevonden om de hele regel waarin de naam voorkomt op te halen
Kan iemand mij helpen s.v.p. ik zit er helemaal op vast.

mvg Rob
 
Welkom op Helpmij.nl. :)

Ik heb je vraag vanuit de Members chat naar de Excel sectie verplaatst, Hier heb je meer kans om geholpen te worden.
 
Bedankt. Lex. Ik ben nieuw hier. Ik zal ook de excel groep opzoeken.
 
Roboman met een voorbeeld bestand zou je beter geholpen kunnen worden, nu moeten we teveel gaan gokken.
 
Ik vermoed dat je op zoek bent naar iets als:

=VLOOKUP(D$5;INDIRECT(D$3&"!$A$4:$A$350");1;0)

Echter het resultaat van deze formule is dat je de naam die je zoekt ook weer terug krijgt. Vermoedelijk wil je de naam opzoeken en dan de waarde van de tweede(?) kolom weergeven:

In dat geval:
=VLOOKUP(D$5;INDIRECT(D$3&"!$A$4:$B$350");2;0)

Als in de jaartalsheet de naam (waarde D5) en de regel die je vervolgens wilt hebben niet gescheiden zijn over 2 kolommen gaat het overigens niet lukken met een VLOOKUP-formule. Deze zoekt de exacte overeenkomst van de naam (waarde D5) in kolom A van een van je jaartalsheets en geeft dan de waarde van de tweede kolom (kolom B) als resultaat.
 
Laatst bewerkt:
In tabblad MENU - CEL B7:

=VERT.ZOEKEN($A$4; INDIRECT($B$4&"!$A$26:$AC$362");2;0)

Bovenstaande formule werkt. Je kan hem niet zomaar doortrekken naar rechts of naar beneden omdat je telkens een andere kolomwaarde wilt, maar dat is in jouw voorbeeld niet anders.
 
Laatst bewerkt:
@ arrie23,

Ik heb de query in het menu weggeschreven, en ik begrijp wat het zou moeten doen, maar ik krijg dezelfde bekende "The formula you typed contains an error" foutmelding die ik ook kreeg tijdens mijn getest met de constructie.
De cursor blijft dan wel op de lookup_value van VLOOKUP staan
Excel Error 1.jpg, dus ergens gaat daar wat fout..
 
Arrie23, Geweldig dit werkt. ";" getyped i.p.v een komma, dat was het dus ..
Nu ga ik dit concept verder uitwerken zodat ik ook de gehele regel van het record op de gezochte sheet te zien krijg zoaks in mijn test sheetje.
daar kom ik wel uit.

ben erg blij met uw hulp. Hopelijk niet maar alleen als ik weer es vast kom te zitten weet ik nu waar ik terecht kan..

vriendelijke groet,
Rob Oosterling
 
Record voorbeeld..JPG
@Arrie23

Inmiddels ben ik weer wat verder met het dashboard. Ideaal zou wezen als ik het compatibel zou kunnen maken met de bestaande data sheets die we over je jaren samengesteld hebben.
Elk record in dat formaat bestaat uit 3 regels zoals in bijgesloten plaatje (Record voorbeeld) te zien is.
Om gegevens uit die regels op te halen in een verzamel tabel gebruikte ik een constructie met
=INDIRECT("T"&($Y$3+2)) Waaarbij ik in de "Y" kolom het regel nummer van de sheet typte. Indirect zocht dan de data in kolom "T" op de regel die ik in Y aangaf +2 regels verder. door dit meerdere malen te gebruken en te verwijzen naar diverse cellen had ik een soort overzicht tabelletje gebouwd

Ik heb bijna alles geprobeerd denk ik om de formule om te bouwen omdat ook te laten lukken.
B.v =VLOOKUP($C$4,INDIRECT(($D$4&"!$B$2:$AC$362")+2),2,0), of
=VLOOKUP($C$4,INDIRECT($D$4&"!$B$2:$AC$362"+2),2,0), of
=VLOOKUP($C$4,INDIRECT($D$4&"!$B$2+2:$AC$362"),2,0).

Ik vermoed dat omdat het Indirect deel van de query tekst teruggeeft (vanuit de selectie in cel C4) er geen numerieke waarde bij opgeteld kan worden..

Heeft U misschien nog een idee?
 
Heb je mijn suggestie over het hoofd gezien ?
 
Beste Snb,

Dat geloof ik wel. Nu heb ik het sheet voorbeeld wat beter bekeken en de methode ontdekt die U gebruikt.
Het VB'tje kijkt naar de verzamel staat op iedere sheet en dupliceerd de data naar het "Dashboard".
Dat is duidelijk. ik houd dat achter de hand als ik niet verder kom op de manier die ik nu ben ingeslagen.

Erg bedankt voor het mooie en handige idee.

Vriendelijke groet,
Rob
 
Beste Rob,

Ik zie je vraag nu pas. Zou je een voorbeeld (Excelbestand ipv een plaatje) bij kunnen voegen. Dan begrijp ik wellicht beter wat je bedoelt.
 
Vermoedelijk wil je iets in de zin van (Nederlandse formule):
=INDEX(INDIRECT($B$4&"!$A$26:$AC$362");VERGELIJKEN($A$4;INDIRECT($B$4&"!$A$26:$A$362");0)+2;2)

(Die laatste 2 is dan de kolomwaarde die je, net als bij de VLOOKUP-functie moet aanpassen)

Maar zoals gezegd handiger om het te kunnen invullen op een voorbeeldbestand.

Tip voor een volgende keer: versimpel je voorbeeld niet te veel, probeer het overeen te laten komen met het werkelijke bestand/probleem. Soms heb je voor het echte probleem een andere oplossing nodig dan voor je versimpelde voorbeeld: ik denk dat dat hier ook het geval is
 
Laatst bewerkt:
Zelf zou ik gaan voor de variant of een aangepaste variant van @snb.

Met een formule kan het wel maar dan moet je eerst eens puinruimen in jouw bestand. Zorg ervoor dat alles hetzelfde heet! Cert is iets anders dan cert. SA met en en zonder spatie vergelijkt ook niet echt lekker. Eco is totaal anders dan Eco Training etc. Als je alles hetzelfde maakt dan is er wel een formule voor te maken.

PHP:
=ALS.FOUT(INDEX(VERSCHUIVING(INDIRECT($B$4&"!$A$27");;VERGELIJKEN(Menu!$A7;INDIRECT($B$4&"!$B$25:$AC$25");0);AANTALARG(INDIRECT($B$4&"!$A$27:$A$91"));3);VERGELIJKEN($A$4;INDIRECT($B$4&"!$A$27:$A$91");0);VERGELIJKEN(Menu!B$6;VERSCHUIVING(INDIRECT($B$4&"!$B$26");;VERGELIJKEN(Menu!$A7;INDIRECT($B$4&"!$B$25:$AC$25");0)-1;;3);0));"")
Doet het waarschijnlijk.

Als je een voorbeeldje plaatst met verschillende tabjes zorg er dan voor dat de data die opgehaald moet worden niet hetzelfde is. Anders kan het lijken dat een formule niet werkt omdat na de keuze van een ander jaar er niets wijzigt.

Opmaak en en andere toestanden kan je het beste als laatste doen.
 

Bijlagen

Geachte VenA,

vandaag ben ik weer aan dit project aan het werken. Erg bedankt voor uw sugggestie en voorbeeld.
Een ding dat direct opvald is dat de result set op de menu pagina direct vernaderd als en een van de twee variablen veranderd. Het vergt wel wat studie om precies uit tevinden hoe het werkt, maar daarvoor zijn zulke projecten toch voor. U heeft gelijk door te stellen dat de data consequent moet zijn, maar in mijn "real life" omgeving is dat ook zo.

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