Excel получить имя листа по адресу

Я пытаюсь получить полное имя листа динамически по адресу с помощью приведенной ниже формулы на другом листе. Есть ли способ лучше ?

адрес: '[Аэропорт - Ежедневный расход_2024.05.08.xlsx]Штаб-квартира 2024'!$A$1

результат: «Штаб-квартира 2024»

моя формула:

 = "'"&MID(TEXTAFTER(CELL("address";'HQ 2024'!A1);"]";1;0);1;
               FIND("~";SUBSTITUTE(TEXTAFTER(CELL("address";'HQ 2024'!A1);"]";1;0);"'";"~";1))
               )

PS, если имя таблицы изменится, я не хочу, чтобы моя другая формула, связанная с этим листом, была испорчена...

Почему вы не использовали что-то вроде этого: = "'"&TEXTBEFORE(TEXTAFTER(CELL("address",'HQ 2024'!A1),"]"),"!")

Mayukh Bhattacharya 07.05.2024 16:04

@MayukhBhattacharya, я не знаю почему :) спасибо... пожалуйста, опубликуй это как ответ...

Umut K 07.05.2024 16:11
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
0
2
56
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Вот альтернативный способ: можно попробовать использовать TEXTBEFORE() и TEXTAFTER():


 = "'"&TEXTBEFORE(TEXTAFTER(CELL("address",'HQ 2024'!A1),"]"),"!")

Почему бы вам не использовать оценку формулы, которую можно найти на ленте «Формулы», глава «Аудит формул», «Оценка формулы», как показано на следующем снимке экрана:

Оценивая шаг за шагом, вы можете увидеть, где что-то идет не так.

Вот, например. вы можете видеть, что проблема вызвана функцией CELL("address";'HQ 2024'!A1), которая возвращает адрес вашей ячейки, но не ее содержимое.

на самом деле проблем нет, моя формула работает... я хотел найти более простую формулу...

Umut K 07.05.2024 16:15

Я использую:

Это в ячейке DA1, чтобы получить имя листа:

MID(CELL("filename",A1),FIND("]",CELL("filename",A1),1)+1,50)

использует позицию «]», а затем:

Это чтобы получить список всех листов между первым и последним, так как есть другие листы, которые я не хочу перечислять:

TEXTSPLIT(TEXTJOIN(",", FALSE,Firstsheet:Lastsheet!DA1),",")

спасибо за ответ, но имя файла возвращает ошибку #VALUE в моем Excel, поэтому вместо этого мне приходится использовать адрес...

Umut K 12.05.2024 10:33

Вы «имя файла» взяли в кавычки? или в вашем языке это слово другое? это аргумент функции cell().

Solar Mike 12.05.2024 10:35

хотя в кавычках справки по формуле отображается «имя файла», он возвращает ошибку...

Umut K 12.05.2024 10:37

Ну, я думаю, вы допускаете ошибку, которую не заметили, то, что я написал, работает правильно.

Solar Mike 12.05.2024 11:27

с синтаксисом все в порядке... посмотрите видео

Umut K 12.05.2024 12:25

Видео проверять не надо - у меня есть рабочая версия :)

Solar Mike 12.05.2024 13:06

но самое главное для меня, что ваша формула не работает в моей версии (:

Umut K 12.05.2024 13:18

Другие вопросы по теме