Formuła programu Excel: lista nazw arkuszy z formułą -

Formuła ogólna

=GET.WORKBOOK(1)&T(NOW())

Podsumowanie

Aby wyświetlić arkusze w skoroszycie programu Excel, można zastosować podejście dwuetapowe: (1) zdefiniować nazwany zakres zwany „nazwami arkuszy” za pomocą starego polecenia makra oraz (2) użyć funkcji INDEKS, aby pobrać nazwy arkuszy przy użyciu nazwanego zakresu. W przedstawionym przykładzie formuła w B5 to:

=INDEX(MID(sheetnames,FIND(")",sheetnames)+1,255),ROWS($B$5:B5))

Uwaga: natknąłem się na tę formułę na forum dyskusyjnym MrExcel w poście T. Valko.

Wyjaśnienie

Nazwany zakres „nazwy arkuszy” jest tworzony za pomocą tego kodu:

=GET.WORKBOOK(1)&T(NOW())

GET.WORKBOOK to polecenie makra, które pobiera tablicę nazw arkuszy z bieżącego skoroszytu. Wynikowa tablica wygląda następująco:

("(workbook.xlsm)Sheet1","(workbook.xlsm)Sheet2","(workbook.xlsm)Sheet3","(workbook.xlsm)Sheet4","(workbook.xlsm)Sheet5")

Do wyniku zostaje dołączone tajemnicze wyrażenie:

&T(NOW())

Celem tego kodu jest wymuszenie ponownego obliczenia w celu uwzględnienia zmian nazw arkuszy. Ponieważ NOW jest funkcją nietrwałą, przelicza się przy każdej zmianie arkusza. Funkcja TERAZ zwraca wartość liczbową reprezentującą datę i godzinę. Funkcja T zwraca pusty ciąg („”) dla wartości liczbowych, więc konkatenacja nie ma wpływu na wartości.

Z powrotem w arkuszu, komórka B6 zawiera skopiowaną formułę:

=INDEX(MID(sheetnames,FIND(")",sheetnames)+1,255),ROWS($B$5:B5))

Działając od wewnątrz, funkcja MID służy do usuwania nazw arkuszy. Wynikowa tablica wygląda następująco:

("Sheet1","Sheet2","Sheet3","Sheet4","Sheet5")

Wchodzi to do funkcji INDEKS jako „tablica”. Funkcja WIERSZ używa rozszerzających się zakresów do generowania rosnącego numeru wiersza. W każdym nowym wierszu INDEKS zwraca następną wartość tablicy. Gdy nie ma już nazw arkuszy do wyprowadzenia, formuła zwróci błąd #REF.

Uwaga: ponieważ ta formuła opiera się na poleceniu makra, musisz zapisać jako skoroszyt z włączoną obsługą makr, jeśli chcesz, aby formuła nadal aktualizowała nazwy arkuszy po zamknięciu i ponownym otwarciu pliku. Jeśli zapiszesz jako normalny arkusz, kod nazwy arkusza zostanie usunięty.

Dobre linki

Pan Excel post na forum autorstwa T. Valko

Interesujące artykuły...