[Excel] Jak poprzez formułę pobrać nazwę arkusza ?

Excel
[Excel] Jak poprzez formułę pobrać nazwę arkusza ?

W bardzo łatwy sposób możliwe jest pobranie nazwy aktywnego arkusza posługując się językiem skryptowym VBA, który w Excelu jest wykorzystywany do pisania makr. Jednak wygodniej było by nie pisać specjalnie makra, a zamiast niego wykorzystać formułę. Niestety nie ma gotowej formuły, która by wykonała to zadanie jednak dzięki kombinacjom kilku formuł jest możliwe wyłuskanie interesującej nas informacji.

Zaczniemy od formuły która poda nam informacje o pliku i aktualnie otwartym arkuszu:

=CELL("filename")

Rezultatem jej wykonania będzie pełna ścieżka do pliku oraz nazwa aktywnego arkusza. Rozwiązanie to maj jedną wadę mianowicie niezależnie w którym arkuszu umieścimy funkcję jej rezultat będzie pokazywał nazwę arkusza aktywnego nie zaś tego w którym dana formuła się znajduje. Chcąc poprawić to działanie przekazujemy w drugim parametrze adres komórki z danego arkusza np.

=CELL("filename"; A1)

Rezultatem powyższej formuły będzie ścieżka do pliku oraz nazwa arkusza:

C:\plik.xsl[Arkusz1]

Jak widzimy ostatnią częścią informacji jest nazwa arkusza którą chcemy wyłuskać z całości informacji. Zrobimy to następującą formułą:

=MID(CELL("filename");SEARCH("]";CELL("filename"))+1;
 LEN(CELL("filename"))-SEARCH("]";CELL("filename")))

Poniżej wersja dla osób korzystających z polskiej wersji Excel-a:

=FRAGMENT.TEKSTU(KOMÓRKA("filename");SZUKAJ.TEKST("]";KOMÓRKA("filename"))+1;
DŁ(KOMÓRKA("filename"))-SZUKAJ.TEKST("]";KOMÓRKA("filename")))

Ważna informacja na koniec, wszystkie formuły zadziałają pod warunkiem że pliki będą zapisane, w przeciwnym wypadku nie zostaną wyświetlone żadne informacje.