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

INDIRECT gebruiken

Status
Niet open voor verdere reacties.

Egbert12345

Gebruiker
Lid geworden
13 dec 2010
Berichten
496
Beste forummers, ik blijf worstelen met "indirect". Ik kan helaas geen voorbeeldbestand meesturen, maar zal het zo goed mogelijk beschrijven. De volgende formule gebruik ik:

=SOMPRODUCT(('[database VWG.xlsm]database'!$CG$2:$CG$5000)*('[database VWG.xlsm]database'!$B$2:$B$5000>0)*('[database VWG.xlsm]database'!$N$2:$N$5000="N")*('[database VWG.xlsm]database'!$V$2:$V$5000=""))

In cel A1 staat de naam database VWG
Deze naam kan echter veranderen in bijvoorbeeld database GBN en daarom wil ik graag de functie indirect gebruiken, maar het lukt mij niet om deze correct in te bouwen.

Hebben jullie genoeg aan deze informatie en willen jullie mij s.v.p. helpen?

m.vr.gr Egbert
 
Voorbeeld voor de eerste term in je formule

Vervang
Code:
'[database VWG.xlsm]database'!$CG$2:$CG$5000
Door:
Code:
INDIRECT("'[database "&A1&".xlsm]database'!$CG$2:$CG$5000)")

Rest gaat op een zelfde manier.
 
Laatst bewerkt:
Volgens mij zo.

Somproduct((Indirect("'[" & A1 & ".xlsm]database'!$CG$2:$CG$5000")

Edit afhankelijk van wat er in A1 staat.
 
Laatst bewerkt:
VenA, alvast bedankt. Wil jij mij nog een stapje verder helpen (het is al weer erg lang geleden dat ik deze functie heb gebruikt).
Ik struikel over de aanhalingstekens. Misschien wil je mij een plezier doen en ook een voorbeeld voor de tweede en derde reeks geven. Alvast bedankt

=SOMPRODUCT(('[database VWG.xlsm]database'!$CG$2:$CG$5000)*('[database VWG.xlsm]database'!$B$2:$B$5000>0)*('[database VWG.xlsm]database'!$N$2:$N$5000="N")*('[database VWG.xlsm]database'!$V$2:$V$5000=""))
 
Je ziet toch waar ik ze neergezet hebt. Dan kan je beter zelf even doen. Jij ziet het effect meteen. Als ik een typefout maakt werkt heb bij jou alsnog niet en blijven we heen en weer posten.
 
Houd er wel rekening mee dat INDIRECT een vluchtige (engels: "volatile") functie is, die elke keer herberekend wordt als er iets verandert in het bestand.
Zeker met de vermelde omvang van de bereiken, ga je dit zeker merken: bijvoorbeeld als je zit te typen in het bestand, dan lijkt Excel bijzonder traag: bij elke Enter wordt alles herberekend.

Je kunt dit voorkomen door in de Excel opties - formules - berekeningen op handmatig te zetten, maar dat kan erg vervelend zijn als herberekening eigenlijk continu zou moeten plaatsvinden.

Een andere optie - die ik zou kiezen als ik al meerdere Excel bestanden aan elkaar zou moeten koppelen - is om de formule te laten zoals die is en in plaats daarvan, wanneer nodig, de koppeling aan te passen naar het andere bestand via tab Gegevens - Koppelingen bewerkingen - Bron wijzigen.

Ik zou zeggen: kijk er eens naar en kies wat voor jou het beste is.

Edit: voor het wijzigen van de link kun je ook een eenvoudige macro maken. Ik heb een macro opgenomen bij het wijzigen van een link en dit leverde op de volgende code.

Code:
Sub Macro1()
'
' Macro1 Macro
'

'
    ActiveWorkbook.ChangeLink Name:= _
        "C:\Users\Beugelsdijk\Documents\Excel 2007\Test wijziging koppeling - oud bestand.xlsx" _
        , NewName:="Test wijziging koppeling - nieuw bestand.xlsx", Type:= _
        xlExcelLinks
End Sub

Hier kun je natuurlijk nog iets aan veranderen zodat de macro werkt met de naam in A1.
 
Laatst bewerkt:
Beste forummers, ik probeer een andere oplossing te zoeken, maar worstel gewoon met deze functie. Als ik eenmaal goed begrijp hoe deze functie werkt kan ik verder.

Voorbeeld: in cel A1 staat CF2
=SOM('[database VWG.xlsm]database'!CF2:CF5000)
=SOM(indirect('[database VWG.xlsm]database'!(A1& ":CF5000")))
Het gaat denk ik niet goed met de haakjes. Kunnen jullie mij aangeven wat ik fout doe?
thx Egbert
 
Code:
=SOM(INDIRECT([COLOR="#FF0000"]"[/COLOR]'[database VWG.xlsm]database'![COLOR="#FF0000"]"&[/COLOR]A1&":CF5000")))

Je knoopt als het ware allemaal stukjes tekst (die elk tussen aanhalingstekens staan) aan elkaar (met het &-teken), waarna Excel d.m.v. de functie INDIRECT dit herkent als een adres of een bereik.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan