![](https://cdn.wiki-base.com/6721394/excel_formula_dynamic_workbook_reference__2.png.webp)
Obecný vzorec
=INDIRECT("'("&workbook&")"&sheet&"'!"&ref)
souhrn
Chcete-li vytvořit odkaz na dynamický list - odkaz na jiný sešit, který je vytvořen pomocí vzorce založeného na proměnných, které se mohou změnit - můžete použít vzorec založený na funkci NEPŘÍMÝ.
V zobrazeném příkladu je vzorec v E6:
=INDIRECT("'("&B6&")"&C6&"'!"&D6)
Vysvětlení
Podstatou tohoto vzorce je vytvořit úplný odkaz na rozsah v jiném sešitu jako text a poté použít funkci NEPŘÍMÝ k převodu textu na skutečný odkaz.
Odkaz na externí list vypadá takto:
„(ukázková data.xlsx) List1“! A1
Všimněte si hranatých závorek (()) kolem názvu sešitu, jednoduchých uvozovek ('') kolem listu + listu a vykřičníku (!), Který následuje.
K vytvoření takového odkazu pomocí textu použijeme zřetězení ke spojení hodnot ze sloupců B, C a D s požadovanými závorkami, uvozovkami a vykřičníkem:
=INDIRECT("'("&B6&")"&C6&"'!"&D6)
Výsledek se přivádí do INDIRECT jako ref_text:
=INDIRECT("'(sample data.xlsx)Sheet1'!A1")
Funkce INDIRECT poté vyhodnotí text a převede jej na referenci. Excel sleduje odkaz a vrací hodnotu u daného odkazu.
Poznámka: Pokud je odkaz neplatný nebo pokud není odkazovaný sešit otevřený, INDIRECT vyvolá chybu #REF. Tuto chybu můžete zachytit pomocí funkce IFERROR a zobrazit vlastní výsledek, pokud chcete.