Формула Excel: Перелік назв аркушів із формулою -

Загальна формула

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

Резюме

Для переліку робочих аркушів у книзі Excel можна скористатися двоетапним підходом: (1) визначити іменований діапазон, який називається «імена аркушів», за допомогою старої команди макросів та (2) використовувати функцію INDEX для отримання імен аркушів, використовуючи названий діапазон. У наведеному прикладі формула в B5 має вигляд:

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

Примітка: Я натрапив на цю формулу на дошці повідомлень MrExcel у дописі Т. Валько.

Пояснення

Іменований діапазон "імена аркушів" створюється з таким кодом:

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

GET.WORKBOOK - це макрокоманда, яка отримує масив імен аркушів у поточній книзі. Отриманий масив виглядає так:

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

Криптичний вираз поєднується з результатом:

&T(NOW())

Призначення цього коду - примусити перерахунок, щоб забрати зміни в назвах аркушів. Оскільки NOW - це нестабільна функція, вона перераховується при кожній зміні аркуша. Функція NOW повертає числове значення, що представляє дату та час. Функція T повертає порожній рядок ("") для числових значень, тому об'єднання не впливає на значення.

Повернувшись до аркуша, клітинка B6 містить скопійовану формулу:

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

Працюючи зсередини, функція MID використовується для видалення імен робочого аркуша. Отриманий масив виглядає так:

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

Це переходить у функцію INDEX як "масив". Функція ROW використовує діапазони, що розширюються, для створення номера рядка, що збільшується. У кожному новому рядку INDEX повертає наступне значення масиву. Коли більше не буде виводитись імен аркушів, формула поверне помилку #REF.

Примітка: оскільки ця формула покладається на команду макросу, вам потрібно буде зберегти її як книгу з підтримкою макросів, якщо ви хочете, щоб формула продовжувала оновлювати імена аркушів після закриття та повторного відкриття файлу. Якщо зберегти як звичайний робочий аркуш, код імені аркуша буде видалено.

Хороші посилання

Містер Excel повідомлення на форумі Т. Валько

Цікаві статті...