Vzorec aplikace Excel: Zvýšení reference na buňku pomocí INDIRECT -

Obecný vzorec

=INDIRECT(sheet&"!"&CELL("address",A1))

souhrn

Chcete-li zvýšit odkaz vytvořený jako text uvnitř funkce INDIRECT, můžete použít funkci CELL. V zobrazeném příkladu je vzorec v D5:

=INDIRECT($B$5&"!"&CELL("address",A1))

Které přírůstky jako vzorec se zkopírují dolů.

Vysvětlení

Zvažte jednoduchý dynamický odkaz na List2 pomocí INDIRECT ve vzorci, jako je tento:

=INDIRECT($B$5&"!"&"A1"))

Pokud změníme název listu v B5 na jiný (platný) název, vrátí INDIRECT odkaz na A1 v novém listu.

Pokud však tento vzorec zkopírujeme dolů do sloupce, odkaz na A1 se nezmění, protože „A1“ je napevno zakódován jako text.

Abychom tento problém vyřešili, použijeme funkci CELL ke generování textového odkazu z běžného odkazu na buňku:

CELL("address",A1)

S "adresou" jako prvním argumentem a A1 jako druhým argumentem vrátí funkce CELL řetězec jako "$ A $ 1". Protože A1 je běžný odkaz na buňku, bude se normálně zvyšovat, jak se vzorec zkopíruje dolů do sloupce. Výsledkem v D5: D9 je řada vzorců, jako je tento:

=INDIRECT("Sheet2!$A$1") =INDIRECT("Sheet2!$A$2") =INDIRECT("Sheet2!$A$3") =INDIRECT("Sheet2!$A$4") =INDIRECT("Sheet2!$A$5")

V každém případě INDIRECT vyřeší každý textový řetězec na odkaz a Excel vrátí hodnotu v dané buňce v List2.

Poznámka: INDIRECT i CELL jsou těkavé funkce a přepočítávají se při každé změně listu. To může způsobit problémy s výkonem ve složitějších listech.

Zajímavé články...