Teoreticky by bylo nejlepším řešením použití funkce =cell("address"; odkaz).
Podtrhl bych teoreticky, protože tato funkce se v calcu chová poněkud odlišně, než v excelu. Navíc některé chování calcu se podobá chybě. (Např. nevrátí adresu, pokud je explicitně uveden soubor xxx.xls, uzemní calc, pokud se explicitně uvede jméno vlastního sešitu, ...)
Řešení tedy již bylo naznačeno: Nějak zjistit, jestli jsme v prostředí calcu nebo excelu a příslušně modifikovat vzorec.
Zde se nabízí zmíněná funkce info. Logicky bych nejraději použil parametr "release", ovšem z vrácené hodnoty lze těžko něco dovozovat calc : 310..., excel 12.... Asi by pomohlo, kdy autoři sem v calcu vložili něco čitelnějšího.
Mohl by pomoci parametr "system", kde calc by vrací (ve win) "WNT" a excel (ve win) "pcdos".
Tedy pokud (neuvažuji mac) platí INFO("system")="pcdos" tak jsme v excelu.
v excelu docela dobře funguje =hyperlink(cell("address", odkaz), "popis"). To by mohlo řešit problém s jazykovými mutacemi excelu (v české mutaci to je: =HYPERTEXTOVÝ.ODKAZ(POLÍČKO("address"; odkaz); "popis")). V calcu by mohl fungovat již dříve uvedený postup.
Pozor ovšem na uvedení jména souboru pokud se odkazujete v rámci sešitu. Calc v takovém případě u mně chcípne. Maskování pomocí indirect není vhodné, pokud požadujeme funci v různých jazykových mutacích.
Pokud stačí poskakovat jen v jednom sešitu, tak funguje:
=HYPERLINK("#"&CELL("address";$List2.A1);"nazev pole v bunce")
(Zajímavé je, že úvodní # excelu nevadí)