Pro informace o výuce Excelu klikněte zde
Mezi časté dotazy patří, jak dostat názvy listů do buněk, tak aby se názvy automaticky aktualizovaly.
Řešení 1
Název listu je možno získat pomocí XML funkce POLÍČKO, která ve tvaru POLÍČKO(„filename“;A1) vrátí celou cestu k souboru vč. názvu sešitu a listu.
Např.: C:\Dokumenty\Excel\[Příklad.xls]Souhrn
Název listu poté můžeme získat např. pomocí vzorce ve tvaru:
=ČÁST(POLÍČKO(„filename“;A1);NAJÍT(„]“;POLÍČKO(„filename“;A1))+1;DÉLKA(POLÍČKO(„filename“;A1))-NAJÍT(„]“;POLÍČKO(„filename“;A1)))
můžeme použít i jednodušší variantu vzorce, kdy nezjišťujeme počet znaků pro extrahování, ale použijeme konstantu 31 (maximální délka názvu listu je 31 znaků)
=ČÁST(POLÍČKO(„filename“;A1);NAJÍT(„]“;POLÍČKO(„filename“;A1))+1;31)
Řešení 2
Další možností je použití UDF funkcí např.:
- funkce, která vrací název listu podle jeho indexu (pořadí) v sešitu
Function RJNazevListu(IndexListu As Integer) As String RJNazevListu = Sheets(IndexListu).Name End Function
- funkce, která vrací název listu podle adresy buňky
Function RJNazevListu2(Bunka As Range) As String RJNazevListu2 = Bunka.Parent.Name End Function
Příklady použití UDF funkcí:
=RJNazevListu(ŘÁDEK()) – vrátí název listu, který je umístěný v sešitu na stejném místě jako je číslo řádku se vzorcem
=RJNazevListu2(A1) – vrátí název aktivního listu
=RJNazevListu2(‚List3‘!$A$1) – vrátí název List3
Důležité:
Excel přepočítává vzorce jen při změně hodnot v oblasti. Ale změna názvu listu není pro Excel důvod vzorce přepočítat. Proto po změně názvu listu nedojde automaticky k přepočítání vzorců. Je nutné vynutit si přepočítání vzorců klávesovou zkratkou Ctrl+Alt+F9.
Poznámka:
Pokud chceme vracet název souboru, použijeme tento vzorec:
=ČÁST(POLÍČKO(„filename“;A1);NAJÍT(„[„;POLÍČKO(„filename“;A1))+1;NAJÍT(„]“;(POLÍČKO(„filename“;A1)))-NAJÍT(„[„;POLÍČKO(„filename“;A1))-1)
vrátí název souboru včetně přípony.