Ga naar hoofdinhoud

Excel INDIRECT(): Zo bouw je dynamische verwijzingen in je formules

Ontdek hoe de functie INDIRECT() van Excel tekst omzet in live verwijzingen. Leer hoe je deze gebruikt voor dynamische werkbladen, stabiele celverwijzingen, benoemde bereiken en meer.
· 8 min lezen

Verken met AI

De functie INDIRECT() is een van Excels krachtigste maar vaak verkeerd begrepen tools. In tegenstelling tot functies die direct berekeningen uitvoeren, zet INDIRECT() tekststrings om in live celverwijzingen. Zo kun je dynamische en flexibele formules maken die zich aanpassen aan variabele invoer. Of je nu een overzichtsdashboard bouwt, verschillende werkbladen aanroept op basis van gebruikerskeuzes of celverwijzingen dynamisch wijzigt, INDIRECT() kan het verschil maken.

In deze gids laat ik je zien hoe je de functie INDIRECT() gebruikt voor celverwijzingen en hoe je veelvoorkomende problemen oplost, inclusief wanneer je de functie beter niet kunt gebruiken. Als je sommige basisprincipes wilt opfrissen, raad ik je onze cursus Introduction to Excel aan om een stevige basis op te bouwen. 

Wat de functie INDIRECT() doet

De functie INDIRECT() in Excel haalt de waarde op van een cel of bereik op basis van een verwijzing die als tekststring wordt aangeleverd. In plaats van een celadres zoals "A1" hard te coderen in een formule, laat INDIRECT() je dat adres dynamisch definiëren met tekst, die Excel interpreteert als een live verwijzing.

De syntaxis van de functie INDIRECT() staat hieronder:

INDIRECT(ref_text, [a1])

Waarbij:

  • ref_text (vereist): Een tekststring die een geldige cel- of bereikverwijzing voorstelt. Dit kan verwijzen naar een cel zoals "A1", een benoemd bereik, of zelfs een verwijzing op een ander werkblad zoals "Sheet2!B5".

  • [a1]: Dit is een optioneel argument dat het type verwijzing in ref_text aangeeft. Als a1 TRUE is of wordt weggelaten, wordt ref_text geïnterpreteerd als een A1-stijlverwijzing. Als a1 FALSE is, wordt ref_text behandeld als een R1C1-stijlverwijzing.

Hoe je de functie INDIRECT() gebruikt

Het volgende voorbeeld laat zien hoe de functie INDIRECT() tekst dynamisch omzet in celverwijzingen.

Stel dat cel C2 de tekst "A2" bevat en cel A2 de waarde 100. De onderstaande functie geeft ook 100 terug omdat Excel de inhoud van C2 leest en INDIRECT() die behandelt als een verwijzing.

=INDIRECT(C2)

Using INDIRECT() to reference based on another cell in Excel.

INDIRECT() gebruiken om te verwijzen op basis van een andere cel in Excel. Afbeelding door de auteur.

Als cel A5 het getal 5 bevat, kun je met de onderstaande formule een dynamische verwijzing opbouwen:

=INDIRECT("B"&A5)

Deze formule combineert "B" met de waarde in A5 (6) en vormt zo "B6". INDIRECT() geeft vervolgens de waarde in cel B6 terug, namelijk "Product A".

Using INDIRECT() with & for dynamic referencing in Excel.

INDIRECT() gebruiken met & voor dynamische verwijzingen in Excel. Afbeelding door de auteur.

Dynamische toepassingen van INDIRECT() in Excel

De echte kracht van de functie INDIRECT() is het vermogen om dynamische verwijzingen op te bouwen. Dat maakt haar ideaal voor geavanceerde modellen, dashboards en gebruikergestuurde rapporten. Hieronder staan drie belangrijke use-cases die de flexibiliteit laten zien.

Andere werkbladen verwijzen

Je kunt INDIRECT() gebruiken om dynamisch gegevens van verschillende bladen op te halen op basis van de invoer van een cel. Stel bijvoorbeeld dat je in cel A1 de naam van een blad hebt staan, zoals "Sales". Je wilt de waarde ophalen uit cel B2 op dat blad.

De onderstaande formule bouwt een verwijzing als 'Sales'!B2 en geeft de waarde uit die cel terug.

=INDIRECT("'" & A1 & "'!B2")

Using INDIRECT() to reference other worksheets indirectly in Excel.

INDIRECT() gebruiken om indirect naar andere werkbladen te verwijzen in Excel. Afbeelding door de auteur.

Zet bladtitels altijd tussen enkele aanhalingstekens met ' als er kans is op spaties of speciale tekens, zoals 'Sales 2023'!A1.

Benoemde bereiken verwijzen

Je kunt de functie INDIRECT() ook gebruiken om dynamisch naar benoemde bereiken te verwijzen, wat krachtig is in combinatie met keuzelijsten of gebruikersinvoer.

Stel dat je benoemde bereiken hebt, Sales_2023 en Sales_2023, waarbij cel “A1” "Sales_2023" bevat

Naming cell ranges in Excel.

Celkoppelingen benoemen in Excel. Afbeelding door de auteur.

De onderstaande formule telt de waarden op in het benoemde bereik Sales_2023, ook al verwijst hij er niet direct naar. Deze methode is ideaal voor gebruikergestuurde dashboards of modellen met meerdere scenario’s.

=SUM(INDIRECT(A1))

Using INDIRECT() to reference named ranges in Excel.

INDIRECT() gebruiken om naar benoemde bereiken te verwijzen in Excel. Afbeelding door de auteur.

Vaste verwijzingen die niet veranderen

Normaal gesproken passen celverwijzingen in formules zich automatisch aan als je rijen of kolommen invoegt of verwijdert. Maar de functie INDIRECT() maakt absolute verwijzingen die niet verschuiven.

Als je bijvoorbeeld in cel “A1” 100 hebt staan, geven zowel de formule =A1 als =INDIRECT("A1") 100 terug. Maar als je de waarde verschuift

Direct cell reference in Excel.

Directe celverwijzing in Excel. Afbeelding door de auteur.

Using INDIRECT() for cell referencing in Excel.

INDIRECT() gebruiken voor celverwijzingen in Excel. Afbeelding door de auteur.

Als je echter een nieuwe regel boven rij 1 invoegt, toont D3 (was B2) nu =A3 omdat de waarde met de rij meeschuift. De cel E3 met de functie INDIRECT() toont nog steeds het oorspronkelijke A2, dat nu leeg kan zijn of een andere waarde kan hebben (UID).

Using INDIRECT() for fixed references in Excel.

INDIRECT() gebruiken voor vaste verwijzingen in Excel. Afbeelding door de auteur.

Geavanceerde voorbeelden en use-cases

Zodra je de basis onder de knie hebt, blinkt de functie INDIRECT() uit in geavanceerdere Excel-scenario’s, vooral in combinatie met functies als VLOOKUP(), ROW() en dynamische arrays. Deze combinaties ontsluiten nog meer dynamische en flexibele modellen.

Gebruik INDIRECT() met VLOOKUP()

Je kunt INDIRECT() combineren met VLOOKUP() om de opzoektabel dynamisch te wijzigen op basis van gebruikersinvoer.

Stel dat je twee tabellen hebt, Prices_2022 en Prices_2023. In aparte cellen, G1: Prices_2022 en G2: Apple`. De onderstaande formule zoekt dynamisch naar "Apple" in de tabel van het geselecteerde jaar op basis van de waarde in A1 en retourneert de prijs.

=VLOOKUP(G2, INDIRECT(G1), 2, FALSE)

Using INDIRECT() with VLOOKUP() in Excel.

INDIRECT() gebruiken met VLOOKUP() in Excel. Afbeelding door de auteur.

Bekijk onze tutorial VLOOKUP() from Another Sheet: A How-to in Excel om meer te leren over zoeken en gegevens ophalen uit verschillende Excel-bladen.

INDIRECT() met R1C1-verwijzingen

INDIRECT() kan ook R1C1-notatie gebruiken, wat vooral handig is bij het dynamisch opbouwen van formules in macro’s of het programmatisch verwijzen naar posities.

De onderstaande formule geeft bijvoorbeeld de waarde terug in rij 2, kolom 3 (cel C2). Het tweede argument (FALSE) vertelt Excel dat je de R1C1-stijl gebruikt, niet A1.

=INDIRECT("R2C3", FALSE)

Using INDIRECT() with R1C1 in Excel.

INDIRECT() gebruiken met R1C1 in Excel. Afbeelding door de auteur.

De volgende formule gebruikt ROW() en COLUMN() dynamisch. De formule zal altijd de waarde uit kolom 3 teruggeven op dezelfde rij waar de formule staat.

=INDIRECT("R" & ROW() & "C3", FALSE)

Using INDIRECT() with ROW() and COLUMN() in Excel.

INDIRECT() gebruiken met ROW() en COLUMN() in Excel. Afbeelding door de auteur.

INDIRECT() en dynamische arrays

Voordat Excel dynamische arrays introduceerde, was INDIRECT() een gangbare manier om array-achtig gedrag te genereren.

De onderstaande formule geeft bijvoorbeeld een array terug: {1; 2; 3; 4; 5}. Dit simuleert een array van 1 tot 5 door rijen indirect te verwijzen.

=ROW(INDIRECT("1:5"))

Using INDIRECT() with ROW() for dynamic arrays in Excel.

INDIRECT() gebruiken met ROW() voor dynamische arrays in Excel. Afbeelding door de auteur.

De moderne alternatieve methode is de functie SEQUENCE() gebruiken.

=SEQUENCE(5)

Using SEQUENCE() for dynamic arrays in Excel.

SEQUENCE() gebruiken voor dynamische arrays in Excel. Afbeelding door de auteur.

INDIRECT() gebruiken voor dynamische arrays werkt nog steeds, maar wordt als minder efficiënt en minder leesbaar beschouwd dan SEQUENCE(), FILTER() en andere dynamische arrayfuncties die beschikbaar zijn in modern Excel (Office 365 en Excel 2021+).

Aandachtspunten en prestatierisico’s

De functie INDIRECT() kent enkele belangrijke beperkingen, vooral in grote of complexe Excel-werkboeken. Deze problemen omvatten het volgende:

  • Volatiele functie (overbelasting door herberekening): INDIRECT() is een volatiele functie, wat betekent dat ze herberekent zodra ergens in het werkboek iets verandert, zelfs als de wijziging niets met de formule te maken heeft. Dit kan de prestaties vertragen.

  • Debuggen kan lastig zijn: Omdat INDIRECT() verwijzingen opbouwt uit tekst, kan Excel ze niet gemakkelijk traceren zoals standaardcelverwijzingen. Dat maakt het moeilijk om formules te auditen met afhankelijkheden/precedenten traceren of om kapotte verwijzingen te vinden wanneer er iets verandert.

  • Overweeg moderne alternatieven: Waar mogelijk kun je beter niet-volatiele functies gebruiken die betere prestaties en helderheid bieden. Denk aan INDEX() voor dynamische celopzoekingen, CHOOSE() om dynamisch uit vooraf gedefinieerde bereiken of opties te kiezen, en SEQUENCE() voor het genereren van dynamische numerieke arrays.

Wanneer je INDIRECT() beter niet gebruikt

Hoewel INDIRECT() krachtige flexibiliteit biedt, is het niet altijd de beste keuze. Het introduceert vaak onnodige complexiteit, prestatieproblemen of onderhoudsproblemen. Hieronder staan situaties die je beter vermijdt en de beste alternatieve methoden.

  • Dynamische celverwijzingen binnen hetzelfde blad: Gebruik INDEX() in plaats van INDIRECT() voor betere prestaties en traceerbaarheid.

  • Dynamische arrays of getallenreeksen: Vermijd =ROW(INDIRECT("1:10")). Gebruik in plaats daarvan =SEQUENCE(10), dat sneller, schoner en niet-volatiel is.

  • Wanneer traceerbaarheid belangrijk is: Formules met INDIRECT() zijn niet effectief te traceren met “Trace Precedents” of “Evaluate Formula”.

  • Naar een statische cel of een statisch bereik verwijzen: Gebruik geen INDIRECT("A1") als je ook gewoon =A1 kunt schrijven.

  • Veelvuldig gebruik in grote spreadsheets: Omdat INDIRECT() volatiel is, herberekent het voortdurend en kan het de prestaties aanzienlijk vertragen.

Alternatieven voor INDIRECT()

De volgende tabel vat de beste alternatieven voor INDIRECT() samen.

Doel

Verkies dit in plaats van INDIRECT()

Dynamische celverwijzing

INDEX()

Reeksen genereren

SEQUENCE()

Conditionele logica of schonere formules

LET()

Opzoeken met meerdere scenario’s

CHOOSE() of XLOOKUP()

Flexibele bladformules

XLOOKUP() met gestructureerde gegevens of Power Query

Belangrijkste punten

INDIRECT() zet tekststrings om in live verwijzingen en is daarmee een krachtig hulpmiddel voor het bouwen van dynamische en flexibele spreadsheets. Het is handig voor het verwijzen naar verschillende bladen, benoemde bereiken of vaste cellen die niet mogen verschuiven bij wijzigingen. Het is echter een volatiele functie die vaak herberekent en grote werkboeken kan vertragen. De functie is ook lastiger te traceren en te debuggen dan traditionele functies. Gebruik INDIRECT() selectief en overweeg veiligere, efficiëntere alternatieven.

Ik raad je aan onze cursus Data Analysis in Excel te volgen om te leren over inzichten in B2B-gegevens en de skill track Excel Fundamentals om meer te leren over de functies in de nieuwste Excel-versies. Onze Advanced Excel Functions is een perfecte cursus als je geavanceerde verwijzingen en opzoekingen wilt verkennen.

Allan Ouko

Auteur

Allan Ouko

\n
\n
\n
\n
Technical writer voor data science met praktische ervaring in data-analyse, business intelligence en data science. Ik schrijf praktische, op de industrie gerichte content over SQL, Python, Power BI, Databricks en data engineering, gebaseerd op analytisch werk in de echte wereld. Mijn schrijfwerk slaat een brug tussen technische diepgang en zakelijke impact, en helpt professionals om data om te zetten in onderbouwde beslissingen.
\n
\n
\n
\n

Excel FAQ’s

Wat doet INDIRECT()?

INDIRECT() zet een tekststring om in een cel- of bereikverwijzing.

Werkt INDIRECT() automatisch bij?

Ja, INDIRECT() herberekent wanneer de verwezen cellen veranderen, tenzij de verwijzing ongeldig is.

Hoe beïnvloedt INDIRECT() de prestaties?

INDIRECT() herberekent elke keer dat een cel in het werkboek verandert, wat grote of complexe werkboeken kan vertragen door frequente herberekeningen.

Wat zijn alternatieven voor INDIRECT()?

Gebruik INDEX(), CHOOSE(), SEQUENCE() of LET() voor veiliger en sneller werken.

Waarom geeft INDIRECT() #REF! terug?

De verwijzing die wordt opgevraagd bestaat niet of is verkeerd gespeld.

Onderwerpen

Gerelateerd