Имя книги в excel в формуле

 

Юрец

Пользователь

Сообщений: 63
Регистрация: 27.02.2014

Здравствуйте,
Как получить имя открытой книги в ячейку формулой желательно без расширения?

 

Sanja

Пользователь

Сообщений: 14838
Регистрация: 10.01.2013

#2

13.03.2016 22:36:23

Здравствуйте. См. справку по =ЯЧЕЙКА()

Код
=ПСТР(ЯЧЕЙКА("имяфайла");ПОИСК("[";ЯЧЕЙКА("имяфайла"))+1;ПОИСК(".xls";ЯЧЕЙКА("имяфайла"))-ПОИСК("[";ЯЧЕЙКА("имяфайла"))-1)

Изменено: Sanja13.03.2016 22:49:52

Согласие есть продукт при полном непротивлении сторон.

 

Юрец

Пользователь

Сообщений: 63
Регистрация: 27.02.2014

Посмотрел справку, подставил = ЯЧЕЙКА(«имяфайла») выдала весь путь.
хотел сказать спасибо, а тут формула, попробовал =песня(!);Спасибо(!)

 

The_Prist

Пользователь

Сообщений: 14182
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

Небольшой нюанс — лучше указывать ссылку на ячейку в этой книге — иначе будет возвращать путь всегда к активной книге.
Чуть подробнее работу функции ЯЧЕЙКА в данном случае здесь описывал:

Как получить имя листа формулой

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Юрец

Пользователь

Сообщений: 63
Регистрация: 27.02.2014

Включил запись макроса, сделал пару действий и возник вопрос: А как подтянуть формулу?
Остановил макрос, открыл vba вижу записаный код, понимаю что надо разместить формулу, но как  и где? Что надо сделать?

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

 

kuklp

Пользователь

Сообщений: 14868
Регистрация: 21.12.2012

E-mail и реквизиты в профиле.

#7

14.03.2016 00:12:44

Так формулой, или ВБА?

Код
Function BookName$()
    BookName = Left$(ThisWorkbook.Name, InStrRev(ThisWorkbook.Name, ".") - 1)
End Function

Я сам — дурнее всякого примера! …

 

Юрий М

Модератор

Сообщений: 60581
Регистрация: 14.09.2012

Контакты см. в профиле

#8

14.03.2016 00:15:12

А так не проще?

Код
ActiveCell = Split(ThisWorkbook.Name, ".")(0)
 

kuklp

Пользователь

Сообщений: 14868
Регистрация: 21.12.2012

E-mail и реквизиты в профиле.

#9

14.03.2016 01:14:52

Не проще, Юр. В имени может быть сколько угодно точек. Это не ДОС :) Вот кстати, моя лиса так с форума качает: Суточний звіт.xlsm.xls, Щотижневий звіт.xlsm.xls

Изменено: kuklp14.03.2016 01:18:05

Я сам — дурнее всякого примера! …


Имени текущей книги можно получить с помощью функции

ЯЧЕЙКА()

.

Функция

ЯЧЕЙКА()

возвращает

имя текущей книги

(файла) в двух случаях:


  • =ЯЧЕЙКА(«имяфайла»)

    Типичный результат:

    С:XLSПримерыТекст[Переводчик.xlsx]Лист1

  • =ЯЧЕЙКА(«адрес»;Лист2!A1)

    , где второй аргумент – ссылка на ячейку на другом листе. Типичный результат:

    [Переводчик.xlsx]Лист2!$A$1

Если формула вводится в новую книгу, то ее сначала нужно сохранить. После сохранения, возможно, потребуется нажать клавишу

F

9

(Вкладка

Формулы

, Группа

Вычисление

,

Пересчет

).

Если в ячейке

А1

находится одна из вышеуказанных формул, то для нахождения имени книги можно использовать формулу (см.

файл примера

):

=ПСТР(A1;ПОИСК(«[«;A1)+1;ПОИСК(«]»;A1)-ПОИСК(«[«;A1)-1)

Формула предполагает, что название файла заключено в скобках [  ], находит позиции этих символов и извлекает все что между ними.

Если имя файла содержит символы [ и ], то функция

ЯЧЕЙКА()

заменит эти символы на скобки ( ). Поэтому, с помощью этой функции имена файлов

Перево[дчи]к.xlsx и Перево(дчи)к.xlsx

различить нельзя.

@liverlarson 

Does Office 365 Excel support VBA?

All versions of Windows desktop Excel from Excel 5 through Excel 2019 support VBA.

This includes the version of Excel installed by Office 365. …

There is no version of Excel Online, iOS Excel or Android Excel that supports VBA.

Nor does any version of Excel that runs on Windows RT support VBA.

In my humble opinion, it would be good to always have the possibility of VBA in Excel.

All new options such as editing PDF and cloud options, in all future versions, will be require VBA.

Unless someone has already adjusted to Java script … which I don’t hope.

What I don’t know is, if you maybe can open from the Developer tab in Visual Basic editor, I don’t have Office 365 yet. You can try it, maybe…maybe it will work.

The sequence is in Excel 2016

     Click File

     Click Options

     Click Customize Ribbon

     Under the list of Main Tabs, select Developer

     Click OK

The Developer tab will now appear on the Ribbon and from it you can open the Visual Basic Editor.

 If opening the Developer tab and clicking a button is a little too much work, you can also open the editor with the keyboard shortcut Alt+F11, which works whether the Developer tab is enabled or not.

As I told you before, with the logic of Excel 2016.

Nikolino

I know I don’t know anything (Socrates)

Excel для Microsoft 365 Excel 2021 Excel 2019 Excel 2016 Excel 2013 Excel 2010 Еще…Меньше

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

Вставка текущего имени файла, его полного пути и имени активного листа

Введите или вставьте следующую формулу в ячейку, в которой нужно отобразить текущее имя файла с полным путем и именем текущего листа.

=ЯЧЕЙКА(«filename»)

Вставка текущего имени файла и имени активного листа

Введите или вставьте следующую формулу в виде формула массива, чтобы отобразить текущее имя файла и имя активного листа.

=ПРАВСИМВ(ЯЧЕЙКА(«filename»);ДЛСТР(ЯЧЕЙКА(«filename»))- МАКС(ЕСЛИ(НЕ(ЕОШ(ПОИСК(«»;ЯЧЕЙКА(«filename»); СТРОКА(1:255))));ПОИСК(«»;ЯЧЕЙКА(«filename»);СТРОКА(1:255)))))

Примечания: 

  • Чтобы ввести формулу в виде формулы массива, нажмите клавиши CTRL+SHIFT+ВВОД.

  • Формула возвращает имя листа, если он был сохранен хотя бы один раз. Если вы используете эту формулу на несохраненном листе, ячейка формулы останется пустой, пока вы не сохраните лист.

Вставка только текущего имени файла

Введите или вставьте следующую формулу, чтобы вставить имя текущего файла в ячейку.

=ПСТР(ЯЧЕЙКА(«filename»);ПОИСК(«[«;ЯЧЕЙКА(«filename»))+1; ПОИСК(«]»;ЯЧЕЙКА(«filename»))-ПОИСК(«[«;ЯЧЕЙКА(«filename»))-1)

Примечание: Если вы используете эту формулу на несохраненном листе, вы увидите сообщение об ошибке #ЗНАЧ! в ячейке. После сохранения листа ошибка заменяется именем файла.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

Нужна дополнительная помощь?

Адрес другой книги в формуле в виде переменных

Константин

Дата: Вторник, 13.11.2012, 10:49 |
Сообщение № 1

Добрый день, коллеги.

Возникла следующая проблема — даже дилемма возможно или нет — мне кажется реально, но видимо руки кривоваты.
Есть таблица, в которую необходимо подтягивать статистические данные из другой книги. Во второй книге Ноябрь.xlsx все данные разбиты по датам — каждая дата на отдельном листе и лист имеет название в виде даты, например, 1.11, 2.11, 3.11.
Задача:
на данный момент формула подтягивания выглядит вот так:

Code

='[Ноябрь.xlsx]1.11′!$F102

. То есть из книги ноябрь с листа 1.11 подтягиваем значение ячейки F102. Необходимо сделать следующее: в А1 прописано название месяца, в B1 — число месяца (11) в ячейке, например, I1 число месяца (1). Как подставить в формулу эти значения, чтобы не переписывать формулу для каждого дня, месяца?

 

Ответить

Константин

Дата: Вторник, 13.11.2012, 10:53 |
Сообщение № 2

Группа: Пользователи

Ранг: Новичок

Сообщений: 11


Репутация:

0

±

Замечаний:
0% ±


Прикрепляю исходный файл.

К сообщению приложен файл:

__46_.xlsx
(14.9 Kb)

 

Ответить

Serge_007

Дата: Вторник, 13.11.2012, 10:56 |
Сообщение № 3

Группа: Админы

Ранг: Местный житель

Сообщений: 15894


Репутация:

2623

±

Замечаний:
±


Excel 2016

Можно использовать ДВССЫЛ(), но тогда для работы надо будет что бы открыты были обе книги


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

Константин

Дата: Вторник, 13.11.2012, 11:02 |
Сообщение № 4

Группа: Пользователи

Ранг: Новичок

Сообщений: 11


Репутация:

0

±

Замечаний:
0% ±


Serge_007, как я понял из справки в любом случае файл должен быть открыт, даже если на другую книгу прописать абсолютный адрес через формулу. допустим в ячейку А1 поместить путь С:\…Ноябрь.xlsx? А можно ли ее использовать для прописания пути к файлу в функции ИНДЕКС и ПОИСКПОЗ? будет ли она там работать?

 

Ответить

Serge_007

Дата: Вторник, 13.11.2012, 11:05 |
Сообщение № 5

Группа: Админы

Ранг: Местный житель

Сообщений: 15894


Репутация:

2623

±

Замечаний:
±


Excel 2016

Quote (Константин)

в любом случае файл должен быть открыт

Нет, это не так. С открытым файлом работает ЛЮБАЯ функция листа допускающая ссылку, с закрытым — только некоторые


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

Константин

Дата: Вторник, 13.11.2012, 11:31 |
Сообщение № 6

Группа: Пользователи

Ранг: Новичок

Сообщений: 11


Репутация:

0

±

Замечаний:
0% ±


Serge_007, почему то выдает ошибку ССЫЛКА, хотя по шагам вычисления путь получается верный.

в нижней ячейке я прописал формулу при открытом файле, в ячейке I3 прописана формула с абсолютной ссылкой. В любом случае выдается ошибка ССЫЛКА. с чем может быть связано? могу выложить файл с которым работаю.

 

Ответить

Serge_007

Дата: Вторник, 13.11.2012, 11:51 |
Сообщение № 7

Группа: Админы

Ранг: Местный житель

Сообщений: 15894


Репутация:

2623

±

Замечаний:
±


Excel 2016

Нужны два файла-примера на десяток строк


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

Константин

Дата: Вторник, 13.11.2012, 11:58 |
Сообщение № 8

Группа: Пользователи

Ранг: Новичок

Сообщений: 11


Репутация:

0

±

Замечаний:
0% ±


1-й файл это та таблица в которую необходимо все импортировать из файла два.
В файле 1 в ячейке I3 должно быть прописано =ДВССЫЛ($D$1&»[«&$B$1&»]»&J$1&».»&$C$1&»‘!»&$A3) — сейчас стоит другое для показа ссылки

Сообщение отредактировал КонстантинВторник, 13.11.2012, 11:59

 

Ответить

Serge_007

Дата: Вторник, 13.11.2012, 12:43 |
Сообщение № 9

Группа: Админы

Ранг: Местный житель

Сообщений: 15894


Репутация:

2623

±

Замечаний:
±


Excel 2016

Вот как это должно выглядеть:

Сами файлы во вложении

К сообщению приложен файл:

4839527.rar
(36.2 Kb)


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

Константин

Дата: Вторник, 13.11.2012, 13:00 |
Сообщение № 10

Группа: Пользователи

Ранг: Новичок

Сообщений: 11


Репутация:

0

±

Замечаний:
0% ±


Serge_007, оч понравилась реализация, а можно еще название самого файла прописать как переменную? например также как дату прописывали? просто файлы у меня будут разбиты по месяцам: вписал в нужную ячейку название месяца и сразу выгрузились данные

 

Ответить

Serge_007

Дата: Вторник, 13.11.2012, 13:06 |
Сообщение № 11

Группа: Админы

Ранг: Местный житель

Сообщений: 15894


Репутация:

2623

±

Замечаний:
±


Excel 2016

Quote (Константин)

можно еще название самого файла прописать как переменную?

Можно. Вместо названия файла Константин_2 используйте ссылку на ячейку, в которой записано требуемое название файла

Quote (Константин)

вписал в нужную ячейку название месяца и сразу выгрузились данные

Непонятно зачем это, если месяц есть в названии ЛИСТов, с которых мы берём дни в формуле


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

Pamix

Дата: Вторник, 12.08.2014, 07:03 |
Сообщение № 12

Группа: Пользователи

Ранг: Прохожий

Сообщений: 1


Репутация:

0

±

Замечаний:
0% ±


Excel 2003

Serge_007, Приветствую, ситуация подобная, но файлы нет возможности держать открытыми. Какими можно воспользоваться функции, чтобы не открывать второй файл?
[moder]Читаем Правила форума, создаём свою тему[/moder]

 

Ответить

Like this post? Please share to your friends:
  • Имя класса окна excel
  • Имя категории в excel
  • Имя имеет неправильный синтаксис excel
  • Имя документа в ms word отображается
  • Имя документа word по умолчанию