Excel, INDIRECT() N.B.
Tip
Voor het selecteren van een waarde in een CEL is het mogelijk om gebruik te maken van de krachtige functie: INDIRECT().
Om de celverwijzing dynamisch te laten zijn kan deze als tekst worden opgebouwd en worden meegegeven in de functie de de tekst zal interpreteren als verwijzing.
Dit kan door middel van een verwijzing in de vorm van formaat [R1K1] of door [A1].
Bij het gebruik van de eerstgenoemde [R1K1] moet je echter rekening houden met een taalafhankelijkheid. Normaal worden functies automatisch vertaald van een Nederlandstalige versie van Excel naar een Engelstalige versie van Excel ( en natuurlijk naar andere taalversies), maar de vaste tekst die je als parameter aan de formule INDIRECT() zal niet worden vertaald, met als gevolg dat er bij een andertalige versie van Excel de verwijzing naar de cel een foutmelding zal opleveren (#VERW of #REF)
Hieronder zijn een aantal oplossingen van het gebruik van de formule INDIRECT() uitgewerkt waaronder ook een manier van gebruik die niet taalafhankelijk is en dezelfde functionaliteit biedt.
N.B. De volgende uitwerking van de functie INDIRECT() is dus taalafhankelijk. Bij een Nederlandse versie van Excel moet gebruik worden gemaakt van het formaat "R1K1", in een Engelse versie van Excel van "R1C1" (Row Column).
De functie INDIRECT() is niet taalgevoelig. De tekst die de verwijzing vormt wel.
Als voorbeeld nemen we hier een verwijzing van de formule A1 door middel van RK verwijzing in de formule INDIRECT().
= INDIRECT("R1K1"; ONWAAR)
Als de tweede parameter WAAR is of is weggelaten, wordt verw_tekst geïnterpreteerd als een verwijzing van het type A1.
Als de tweede parameter ONWAAR is, wordt verw_tekst geïnterpreteerd als een verwijzing van het type R1K1.
In een Engelse versie van Excel wordt hiervoor een foutmelding #REF gegeven.
De formule zou in de Engelse versie van Excel moeten worden opgegeven als
= INDIRECT("R1C1"; ONWAAR)
Maar nu zal de Nederlandse versie van Excel de foutmelding #VERW geven.
De babylonische spraakverwarring kan als volgt worden omzeild.
Een gebruikersgedefinieerde module maken waarmee je de taal (landcode) kunt opvragen. In een VBA-module kun je de volgende functie kopiëren.
Option Explicit
Function Taal()
Taal = Application.International(xlCountryCode)
End Function
Hoewel het echter behelpen blijft, kun je per land de "K" of "C" aanpassen in de verwijzing. De verwijzing naar cel A1 zal er dan met de formule INDIRECT() als volgt uitzien.
=INDIRECT("R1" & ALS(Taal=31;"K1";"C1"))
De verwijzing in de vorm van R1K1 is dus taalgevoelig, het is dus aan te bevelen om een verwijzing van het type "A1" te nemen. Dit betekent dat de 2e parameter in de formule INDIRECT op "WAAR" moet worden gezet. Daarnaast kan de formule ADRES() worden gebruikt om de rijnummers en de kolomnummers om te zetten naar een verwijzing in het gewenste formaat. De rijnummers en kolomnummers kunnen variabel worden gekozen.
=INDIRECT(ADRES(1;1); WAAR)
De laatste oplossing is eenvoudiger en verdient de voorkeur.
Kijk er eens naar en probeer het uit . . . Deel je ervaringen met andere Excel-gebruikers via deze site.

Laat eens iets van je horen op ons gastenboek of forum..
|