Excel-formel: Dynamisk arbetsbokreferens -

Innehållsförteckning

Generisk formel

=INDIRECT("'("&workbook&")"&sheet&"'!"&ref)

Sammanfattning

För att bygga en dynamisk kalkylreferens - en referens till en annan arbetsbok som skapas med en formel baserad på variabler som kan ändras - kan du använda en formel baserad på INDIRECT-funktionen.

I exemplet som visas är formeln i E6:

=INDIRECT("'("&B6&")"&C6&"'!"&D6)

Förklaring

Kärnan i denna formel är att bygga upp en fullständig referens till ett intervall i en annan arbetsbok som text, använd sedan INDIRECT-funktionen för att konvertera texten till en faktisk referens.

En hänvisning till ett externt kalkylblad ser ut så här:

'(exempeldata.xlsx) Ark1'! A1

Notera de hakparenteserna (()) runt arbetsbokens namn, enstaka citattecken ('') runt kalkylbladet och arket och utropstecknet (!) Som följer.

För att skapa en referens som denna med hjälp av text använder vi sammankoppling för att sammanfoga värden från kolumner B, C och D med de önskade parenteserna, citattecken och utropstecken:

=INDIRECT("'("&B6&")"&C6&"'!"&D6)

Resultatet matas in i INDIRECT som ref_text:

=INDIRECT("'(sample data.xlsx)Sheet1'!A1")

INDIRECT-funktionen utvärderar sedan texten och konverterar den till en referens. Excel följer referensen och returnerar värdet vid den angivna referensen.

Obs: om referensen är ogiltig, eller om arbetsboken som det refereras till inte är öppen, kommer INDIRECT att kasta ett #REF-fel. Du kan fånga det här felet med IFERROR-funktionen och visa ett anpassat resultat om du vill.

Intressanta artiklar...