Názvy listů do buněk

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.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *