Inhoudsopgave
In deze Excel INDIRECT tutorial worden de syntaxis en het basisgebruik van de functie uitgelegd en wordt een aantal formulevoorbeelden gegeven die laten zien hoe u INDIRECT in Excel kunt gebruiken.
Er bestaan heel wat functies in Microsoft Excel: sommige zijn gemakkelijk te begrijpen, andere vereisen een lange leercurve, en de eerste worden vaker gebruikt dan de laatste. En toch is Excel INDIRECT er één van. Deze Excel-functie voert geen berekeningen uit, noch evalueert zij voorwaarden of logische tests.
Goed dan, wat is de functie INDIRECT in Excel en waarvoor gebruik ik die? Dit is een zeer goede vraag en hopelijk krijgt u binnen enkele minuten een uitgebreid antwoord als u klaar bent met het lezen van deze handleiding.
Excel INDIRECT functie - syntaxis en basisgebruik
Zoals de naam al aangeeft, wordt Excel INDIRECT gebruikt om indirect te verwijzen naar cellen, bereiken, andere bladen of werkmappen. Met andere woorden, met de INDIRECT functie kunt u een dynamische cel- of bereikverwijzing creëren in plaats van deze hard te coderen. Als gevolg hiervan kunt u een verwijzing binnen een formule wijzigen zonder de formule zelf te wijzigen. Bovendien zullen deze indirecte verwijzingen niet veranderen wanneer enkele nieuwe rijen of kolommenworden ingevoegd in het werkblad of wanneer u bestaande verwijdert.
Dit alles is misschien gemakkelijker te begrijpen aan de hand van een voorbeeld, maar om een formule te kunnen schrijven, zelfs de eenvoudigste, moet je de argumenten van de functie kennen, toch? Laten we dus eerst eens kijken naar de syntaxis van Excel INDIRECT.
INDIRECT functie syntaxis
De functie INDIRECT in Excel retourneert een celverwijzing uit een tekststring. De functie heeft twee argumenten, het eerste is vereist en het tweede is optioneel:
INDIRECT(ref_text, [a1])referentietekst - is een celverwijzing, of een verwijzing naar een cel in de vorm van een tekststring, of een genoemd bereik.
a1 - is een logische waarde die aangeeft welk type referentie het ref_text argument bevat:
- Indien TRUE of weggelaten, wordt ref_text geïnterpreteerd als een celverwijzing in A1-stijl.
- Indien FALSE, wordt ref_text behandeld als een R1C1-verwijzing.
Hoewel het verwijzingstype R1C1 nuttig kan zijn in bepaalde situaties, zult u waarschijnlijk meestal de vertrouwde A1-referenties willen gebruiken. Hoe dan ook, bijna alle INDIRECT-formules in deze handleiding zullen A1-referenties gebruiken, dus we zullen het tweede argument weglaten.
Basisgebruik van de functie INDIRECT
Om inzicht te krijgen in de functie, schrijven we een eenvoudige formule die laat zien hoe u INDIRECT in Excel gebruikt.
Stel, u heeft nummer 3 in cel A1, en tekst A1 in cel C1. Zet nu de formule =INDIRECT(C1)
in een andere cel en kijk wat er gebeurt:
- De functie INDIRECT verwijst naar de waarde in cel C1, die A1 is.
- De functie wordt naar cel A1 geleid, waar hij de waarde kiest die moet worden teruggegeven, namelijk nummer 3.
Wat de INDIRECT-functie in dit voorbeeld dus eigenlijk doet is een tekststring omzetten in een celverwijzing .
Als u denkt dat dit nog steeds weinig praktisch nut heeft, heb ik nog een paar formules die de echte kracht van de Excel INDIRECT-functie laten zien.
Hoe INDIRECT gebruiken in Excel - formulevoorbeelden
Zoals aangetoond in het bovenstaande voorbeeld, kunt u de Excel INDIRECT-functie gebruiken om het adres van een cel in een andere cel te plaatsen als een gewone tekststring, en de waarde van de eerste cel te verkrijgen door te verwijzen naar de tweede. Dit triviale voorbeeld is echter niet meer dan een hint naar de INDIRECT-mogelijkheden.
Bij het werken met echte gegevens kan de functie INDIRECT elke tekststring omzetten in een verwijzing, met inbegrip van zeer complexe strings die u samenstelt met behulp van de waarden van andere cellen en resultaten die door andere Excel-formules worden geretourneerd. Maar laten we het paard niet achter de wagen spannen en verschillende Excel Indirect-formules één voor één doorlopen.
Indirecte verwijzingen maken van celwaarden
Zoals u zich herinnert, staat de Excel INDIRECT functie A1 en R1C1 referentie stijlen toe. Gewoonlijk kunt u niet beide stijlen tegelijk gebruiken in één blad, u kunt alleen schakelen tussen de twee referentie types via Bestand> Opties> Formules > R1C1 check box Dit is de reden waarom Excel-gebruikers zelden overwegen R1C1 te gebruiken als alternatieve referentiemethode.
In een INDIRECT-formule kunt u desgewenst beide referentietypen op hetzelfde blad gebruiken. Voordat we verder gaan, wilt u misschien het verschil weten tussen de referentiestijlen A1 en R1C1.
A1 stijl is het gebruikelijke verwijzingstype in Excel dat verwijst naar een kolom gevolgd door een rijnummer. Bijvoorbeeld, B2 verwijst naar de cel op het snijpunt van kolom B en rij 2.
R1C1 stijl is het tegenovergestelde verwijzingstype - rijen gevolgd door kolommen, waar je wel even aan moet wennen : ) Bijvoorbeeld, R4C1 verwijst naar cel A4 die zich in rij 4, kolom 1 van een blad bevindt. Als er geen cijfer achter de letter komt, dan verwijs je naar dezelfde rij of kolom.
En laten we nu eens kijken hoe de functie INDIRECT omgaat met A1- en R1C1-verwijzingen:
Zoals je in de schermafbeelding hierboven ziet, geven drie verschillende Indirecte formules hetzelfde resultaat. Heb je al uitgevonden waarom? Ik wed van wel : )
- Formule in cel D1:
=INDIRECT(C1)
Dit is de eenvoudigste. De formule verwijst naar cel C1, haalt de waarde ervan op - tekststring A2 zet het om in een celverwijzing, gaat naar cel A2 en geeft de waarde terug, die 222 is.
- Formule in cel D3:
=INDIRECT(C3,FALSE)
FALSE in het 2e argument geeft aan dat de bedoelde waarde (C3) moet worden behandeld als een celverwijzing naar R1C1, d.w.z. een rijnummer gevolgd door een kolomnummer. Daarom interpreteert onze INDIRECT-formule de waarde in cel C3 (R2C1) als een verwijzing naar de cel op de verbinding van rij 2 en kolom 1, namelijk cel A2.
Indirecte verwijzingen maken van celwaarden en tekst
Net zoals we verwijzingen hebben gemaakt van celwaarden, kunt u een tekststring en een celverwijzing binnen uw INDIRECT-formule, verbonden met de aaneenschakelingsoperator (&).
In het volgende voorbeeld retourneert de formule: =INDIRECT("B"&C2) een waarde uit cel B2 op basis van de volgende logische keten:
De functie INDIRECT voegt de elementen in het argument ref_text samen - tekst B en de waarde in cel C2 -> de waarde in cel C2 is getal 2, wat een verwijzing maakt naar cel B2 -> de formule gaat naar cel B2 en geeft de waarde terug, die getal 10 is.
De functie INDIRECT gebruiken met genoemde bereiken
Naast het maken van verwijzingen van cel- en tekstwaarden, kunt u met de Excel INDIRECT functie verwijzen naar genoemde bereiken .
Stel, u hebt de volgende genoemde bereiken in uw blad:
- Appels - B2:B6
- Bananen - C2:C6
- Citroenen - D2:D6
Om een dynamische verwijzing in Excel te maken naar een van de hierboven genoemde bereiken, voert u de naam ervan in een cel in, bijvoorbeeld G1, en verwijst u naar die cel vanuit een Indirecte formule =INDIRECT(G1)
.
En nu kunt u nog een stap verder gaan en deze INDIRECT-formule opnemen in andere Excel-functies om de som en het gemiddelde van de waarden in een bepaald genoemd bereik te berekenen, of de maximum- / minimumwaarde binnen het bereik te vinden:
=SUM(INDIRECT(G1))
=GEMIDDELDE(INDIRECT(G1))
=MAX(INDIRECT(G1))
=MIN(INDIRECT(G1))
Nu u het algemene idee hebt van het gebruik van de INDIRECT-functie in Excel, kunnen we experimenteren met krachtigere formules.
INDIRECT-formule om dynamisch naar een ander werkblad te verwijzen
Het nut van de Excel INDIRECT functie is niet beperkt tot het maken van "dynamische" celverwijzingen. U kunt deze ook gebruiken om "on the fly" te verwijzen naar cellen in andere werkbladen, en hier wordt uitgelegd hoe.
Stel, u hebt belangrijke gegevens in Blad 1, en u wilt die gegevens ophalen in Blad 2. Het volgende screenshot laat zien hoe een Excel Indirect formule deze taak kan uitvoeren:
Laten we de formule in de schermafbeelding uit elkaar halen en begrijpen.
Zoals u weet is de gebruikelijke manier om in Excel naar een ander blad te verwijzen het schrijven van de naam van het blad gevolgd door het uitroepteken en een cel/bereikverwijzing, zoals SheetName!Range Aangezien een bladnaam vaak een spatie(s) bevat, kunt u deze (de naam, geen spatie : ) beter tussen enkele aanhalingstekens zetten om een fout te voorkomen, bijvoorbeeld "Mijn blad!"$A$1 .
En nu hoef je alleen nog maar de bladnaam in een cel en het celadres in een andere cel in te voeren, ze samen te voegen in een tekststring en die string naar de functie INDIRECT te sturen. Vergeet niet dat je in een tekststring elk element dat geen celadres of nummer is, tussen dubbele aanhalingstekens moet zetten en alle elementen aan elkaar moet koppelen met behulp van de aaneenschakelingsoperator (&).
Gezien het bovenstaande krijgen we het volgende patroon:
INDIRECT("" & Naam van het blad & "'!" & Cel om gegevens uit te halen )Terugkomend op ons voorbeeld, zet u de naam van het blad in cel A1, en typt u de celadressen in kolom B, zoals gedemonstreerd in de bovenstaande schermafbeelding. Als resultaat krijgt u de volgende formule:
INDIRECT("" & $A$1 & "'!" & B1)
Let er ook op dat als u de formule naar meerdere cellen kopieert, u de verwijzing naar de naam van het blad moet vergrendelen met absolute celverwijzingen zoals $A$1.
Opmerkingen
- Indien een van de cellen die de naam en het celadres van het tweede blad bevatten (A1 en B1 in de bovenstaande formule) leeg is, zal uw Indirect-formule een fout opleveren. Om dit te voorkomen, kunt u de INDIRECT-functie omwikkelen met de IF-functie:
IF(OR($A$1="",B1=""), "", INDIRECT("" & $A$1 & "'!" & B1))
- Om de INDIRECT-formule die naar een ander blad verwijst correct te laten werken, moet het blad waarnaar wordt verwezen geopend zijn, anders zal de formule een #REF-fout opleveren. Om de fout te vermijden, kunt u de IFERROR-functie gebruiken, die een lege tekenreeks zal weergeven, welke fout zich ook voordoet:
IFERROR(INDIRECT("" & $A$1 & "'!" &B1), "")
Een dynamische verwijzing in Excel naar een andere werkmap maken
De indirecte formule die verwijst naar een andere Excel-werkmap is gebaseerd op dezelfde aanpak als een verwijzing naar een andere spreadsheet. U hoeft alleen de naam van de werkmap op te geven naast de bladnaam en het celadres.
Om het gemakkelijker te maken, beginnen we met het maken van een verwijzing naar een ander boek op de gebruikelijke manier (apostrofs worden toegevoegd voor het geval uw boek- en/of bladnamen spaties bevatten):
"[Boek_naam.xlsx]Blad_naam"!Bereik
Ervan uitgaande dat de boeknaam in cel A2 staat, de bladnaam in B2, en het celadres in C2, krijgen we de volgende formule:
=INDIRECT("[" & $A$2 & "]" & $B$2 & "'!" & C2)
Omdat u niet wilt dat de cellen met de namen van het boek en het blad veranderen wanneer u de formule naar andere cellen kopieert, vergrendelt u ze door absolute celverwijzingen te gebruiken, respectievelijk $A$2 en $B$2.
En nu kunt u gemakkelijk uw eigen dynamische verwijzing naar een andere Excel-werkmap schrijven met behulp van het volgende patroon:
=INDIRECT(""[" & Naam van het boek & "]" & Naam van het blad & "'!" & Celadres )Opmerking. De werkmap waarnaar uw formule verwijst moet altijd open zijn, anders geeft de functie INDIRECT een foutmelding #REF. Zoals gewoonlijk kan de functie IFERROR u helpen dit te voorkomen:
=IFERROR(INDIRECT("'[" & A2 & "]" & $A$1 & "'!" & B1), "")
Excel INDIRECT functie gebruiken om een celverwijzing te vergrendelen
Normaal gesproken verandert Microsoft Excel de celverwijzingen wanneer u nieuwe rijen of kolommen in een blad invoegt of bestaande verwijdert. Om dit te voorkomen, kunt u de functie INDIRECT gebruiken om te werken met celverwijzingen die hoe dan ook intact moeten blijven.
Doe het volgende om het verschil te illustreren:
- Voer een willekeurige waarde in een cel in, bijvoorbeeld nummer 20 in cel A1.
- Verwijs naar A1 vanuit twee andere cellen op verschillende manieren:
=A1
en=INDIRECT("A1")
- Voeg een nieuwe rij in boven rij 1.
Zie je wat er gebeurt? De cel met de gelijk aan logische operator geeft nog steeds 20 terug, omdat de formule automatisch is gewijzigd in =A2. De cel met de INDIRECT-formule geeft nu 0 terug, omdat de formule niet werd gewijzigd toen een nieuwe rij werd ingevoegd en nog steeds verwijst naar cel A1, die momenteel leeg is:
Na deze demonstratie heb je misschien de indruk dat de functie INDIRECT meer hindert dan helpt. Oké, laten we het op een andere manier proberen.
Stel, u wilt de waarden in de cellen A2:A5 optellen, en u kunt dit gemakkelijk doen met de functie SUM:
=SUM(A2:A5)
U wilt echter dat de formule ongewijzigd blijft, ongeacht het aantal rijen dat wordt verwijderd of ingevoegd. De meest voor de hand liggende oplossing - het gebruik van absolute verwijzingen - zal niet helpen. Om er zeker van te zijn, voert u de formule in =SUM($A$2:$A$5)
in een cel, voeg een nieuwe rij in, zeg op rij 3, en... vind de formule omgezet in =SUM($A$2:$A$6)
.
Natuurlijk werkt zo'n hoffelijkheid van Microsoft Excel in de meeste gevallen prima. Toch kunnen er scenario's zijn waarin u niet wilt dat de formule automatisch wordt gewijzigd. De oplossing is om de functie INDIRECT te gebruiken, zoals dit:
=SUM(INDIRECT("A2:A5"))
Aangezien Excel "A1:A5" ziet als een gewone tekststring en niet als een verwijzing naar een bereik, zal het geen wijzigingen aanbrengen wanneer u een rij invoegt of verwijdert.
INDIRECT gebruiken met andere Excel-functies
Naast SUM wordt INDIRECT vaak gebruikt met andere Excel-functies zoals ROW, COLUMN, ADDRESS, VLOOKUP, SUMIF, om er een paar te noemen.
Voorbeeld 1. INDIRECT- en ROW-functies
Vaak wordt de ROW-functie in Excel gebruikt om een matrix van waarden terug te geven. U kunt bijvoorbeeld de volgende matrixformule gebruiken (denk eraan dat u hiervoor op Ctrl + Shift + Enter moet drukken) om het gemiddelde van de 3 kleinste getallen in het bereik A1:A10 terug te geven:
=GEMIDDELDE(KLEIN(A1:A10,RIJ(1:3))
Als u echter een nieuwe rij in uw werkblad invoegt, ergens tussen rij 1 en 3, wordt het bereik in de functie ROW gewijzigd in ROW(1:4) en zal de formule het gemiddelde van de 4 kleinste getallen opleveren in plaats van 3.
Om dit te voorkomen, nestelt u INDIRECT in de ROW-functie en uw matrixformule zal altijd correct blijven, ongeacht het aantal rijen dat wordt ingevoegd of verwijderd:
=GEMIDDELDE(KLEIN(A1:A10,RIJ(INDIRECT("1:3"))))
Hier volgen nog enkele voorbeelden van het gebruik van INDIRECT en ROW in combinatie met de functie LARGE: Hoe N grootste getallen in een bereik op te tellen.
Voorbeeld 2. INDIRECT en ADDRESS functies
U kunt Excel INDIRECT gebruiken in combinatie met de ADDRESS functie om een waarde in een bepaalde cel te verkrijgen.
Zoals u zich wellicht herinnert, wordt de ADDRESS-functie in Excel gebruikt om een celadres te krijgen aan de hand van de rij- en kolomnummers. Bijvoorbeeld, de formule =ADDRESS(1,3)
geeft de tekenreeks $C$1 terug, omdat C1 de cel is op het snijpunt van de 1e rij en de 3e kolom.
Om een indirecte celverwijzing te maken, hoeft u alleen maar de ADDRESS-functie in te voegen in een INDIRECT-formule zoals deze:
=INDIRECT(ADRES(1,3))
Natuurlijk demonstreert deze triviale formule slechts de techniek. En hier zijn een paar voorbeelden die echt nuttig kunnen blijken:
- INDIRECT ADDRESS formule - hoe rijen en kolommen te verwisselen.
- VLOOKUP en INDIRECT - hoe dynamisch gegevens uit verschillende bladen te halen.
- INDIRECT met INDEX / MATCH - hoe een hoofdlettergevoelige VLOOKUP-formule te perfectioneren.
- Excel INDIRECT en COUNTIF - hoe de functie COUNTIF te gebruiken op een niet-aaneengesloten bereik of een selectie van cellen.
INDIRECT gebruiken met gegevensvalidatie in Excel
U kunt de Excel INDIRECT-functie met gegevensvalidatie gebruiken om trapsgewijze vervolgkeuzelijsten te maken die verschillende keuzes weergeven, afhankelijk van de waarde die de gebruiker in de eerste vervolgkeuzelijst heeft geselecteerd.
Een eenvoudige afhankelijke vervolgkeuzelijst is echt gemakkelijk te maken. Het enige wat nodig is, zijn een paar benoemde bereiken om de items van de vervolgkeuzelijst op te slaan en een eenvoudige =INDIRECT(A2)
formule waarbij A2 de cel is die uw eerste keuzelijst weergeeft.
Om complexere menu's van 3 niveaus of vervolgkeuzelijsten met meerdere woorden te maken, hebt u een iets complexere INDIRECT-formule nodig met een geneste SUBSTITUTE-functie.
Voor een gedetailleerde stap-voor-stap uitleg over het gebruik van INDIRECT met Excel Data Validation, bekijk deze tutorial: Hoe maak je een afhankelijke vervolgkeuzelijst in Excel?
Excel INDIRECT functie - mogelijke fouten en problemen
Zoals in de bovenstaande voorbeelden is aangetoond, is de functie INDIRECT zeer nuttig bij het omgaan met cel- en bereikverwijzingen. Niet alle Excel-gebruikers omarmen deze functie echter gretig, meestal omdat het uitgebreide gebruik van INDIRECT in Excel-formules resulteert in een gebrek aan transparantie. De INDIRECT-functie is moeilijk te controleren omdat de cel waarnaar wordt verwezen niet de uiteindelijke locatie is van de waarde die in de formule wordt gebruikt,wat behoorlijk verwarrend is, vooral als je met grote complexe formules werkt.
In aanvulling op het bovenstaande kan INDIRECT, net als elke andere Excel-functie, een foutmelding geven als u de argumenten van de functie verkeerd gebruikt. Hier volgt een lijst van de meest voorkomende fouten:
Excel INDIRECT #REF! fout
Meestal geeft de functie INDIRECT in drie gevallen een #REF! foutmelding:
- ref_text is geen geldige celverwijzing Indien de parameter ref_text in uw Indirect-formule geen geldige celverwijzing is, zal de formule de foutwaarde #REF! opleveren. Om mogelijke problemen te voorkomen, dient u de argumenten van de INDIRECT-functie te controleren.
- Bereikslimiet is overschreden Indien het ref_text argument van uw Indirecte formule verwijst naar een cellenbereik dat de rijenlimiet van 1.048.576 of de kolommenlimiet van 16.384 overschrijdt, krijgt u ook de #REF foutmelding in Excel 2007, 2010 en Excel 2013. Eerdere Excel versies negeren de overschrijding en geven wel degelijk een waarde terug, maar vaak niet de waarde die u zou verwachten.
- Het bedoelde blad of werkboek is gesloten. Indien uw Indirecte formule verwijst naar een andere Excel-werkmap of -werkblad, moet die andere werkmap / dat andere werkblad geopend zijn, anders geeft INDIRECT de foutmelding #REF! terug.
Excel INDIRECT #NAME? fout
Dit is het meest voor de hand liggende geval, wat impliceert dat er een fout zit in de naam van de functie, wat ons tot het volgende punt brengt : )
De functie INDIRECT gebruiken in niet-Engelse locales
Misschien bent u benieuwd dat de Engelse naam van de functie INDIRECT is vertaald in 14 talen, waaronder:
|
|
Als u geïnteresseerd bent in de volledige lijst, kijk dan op deze pagina.
Een veel voorkomend probleem met niet-Engelse lokalisaties is niet de naam van de INDIRECT-functie, maar eerder verschillende Regionale instellingen voor de Lijst Scheider In de standaard Windows configuratie voor Noord-Amerika en sommige andere landen is de standaard Lijst Scheider is een komma. Terwijl in Europese landen de komma is gereserveerd als de Decimaal symbool en de Lijst Scheider is ingesteld op puntkomma.
Als gevolg hiervan kunt u bij het kopiëren van een formule tussen twee verschillende Excel-lokalen de foutmelding " We vonden een probleem met deze formule... "omdat de Lijstscheider Indien u tegen deze fout aanloopt bij het kopiëren van een INDIRECT formule uit deze handleiding naar uw Excel, vervang dan alle komma's (,) door puntkomma's (;) om de fout te herstellen.
Om na te gaan welk lijstscheidingsteken en decimaalsymbool op uw machine zijn ingesteld, opent u het menu Bedieningspaneel en ga naar Regio en taal> Extra instellingen .
Hopelijk heeft deze handleiding enig licht geworpen op het gebruik van INDIRECT in Excel. Nu u de sterke punten en beperkingen kent, is het tijd om het eens te proberen en te zien hoe de functie INDIRECT uw Excel-taken kan vereenvoudigen. Bedankt voor het lezen!