Excel в ячейку название листа

Имя листа в ячейке формулой в Excel

Разберем несколько вариантов добавления имени листа в ячейку в Excel с помощью формул.

Формула имени листа в Excel

Чтобы присвоить ячейке имя листа в Excel можно воспользоваться следующей формулой:

=ПСТР(ЯЧЕЙКА(«ИМЯФАЙЛА»; A1 );ПОИСК(«]»;ЯЧЕЙКА(«ИМЯФАЙЛА»; A1 ))+1;255)

Давайте по шагам разберем принцип действия формулы имени листа.

Шаг 1. Функция ЯЧЕЙКА

Функция ЯЧЕЙКА позволяет получить данные о содержимом ссылки, в том числе и имя файла.
В данном случае формула ЯЧЕЙКА(«ИМЯФАЙЛА»; A1 ) позволяет получить полный путь файла Excel на локальном диске:


Как мы видим название листа идет сразу после названия файла, обрамленного в квадратные скобки.

Шаг 2. Функция ПОИСК

Таким образом для извлечения имени листа необходимо найти символ закрывающейся квадратной скобки (]) с помощью функции ПОИСК, которая возвращает позицию первого вхождения искомого элемента:


Прибавляя к результату 1, мы получаем позицию с которой начинается имя листа.

Шаг 3. Функция ПСТР

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


Так как точное количество символов в имени листа неизвестно, то в качестве последнего аргумента функции ПСТР указываем заведомо большее число, чем длина имени листа (подойдет любое число больше 31 — максимальная длина названия листа).

Альтернативная формула

Чтобы вставить название листа в ячейку можно воспользоваться альтернативной формулой:

=ПРАВСИМВ(ЯЧЕЙКА(«ИМЯФАЙЛА»; A1 );ДЛСТР(ЯЧЕЙКА(«ИМЯФАЙЛА»; A1 ))-ПОИСК(«]»;ЯЧЕЙКА(«ИМЯФАЙЛА»; A1 )))

Отличие от предыдущего варианта заключается в использовании функции ПРАВСИМВ, которая возвращает указанное количество знаков с конца текста.

Описание используемых функций

Функция ЯЧЕЙКА:

ЯЧЕЙКА(тип_сведений; [ссылка])
Возвращает сведения о форматировании, адресе или содержимом первой ячейки ссылки.

  • Тип сведений(обязательный аргумент) — текстовое значение, задающее тип сведений о ячейке (например, адрес, столбец, цвет, имяфайла, формат, скобки и т.д.);
  • Ссылка(необязательный аргумент) — ячейка, по которой возвращаются данные.

Функция ПОИСК:

ПОИСК(искомый_текст; просматриваемый_текст; [начальная_позиция])
Возвращает позицию первого вхождения знака или строки текста (при чтении слева направо, прописные и строчные буквы не различаются).

  • Искомый текст(обязательный аргумент) — искомый текст
  • Просматриваемый текст(обязательный аргумент) — текст, по которому производится поиск;
  • Начальная позиция(необязательный аргумент) — номер знака в просматриваемом тексте, с которого следует начать поиск.

Функция ПСТР:

ПСТР(текст; начальная_позиция; число_знаков)
Возвращает заданное число знаков из строки текста, начиная с указанной позиции.

  • Текст(обязательный аргумент) — текст, из которого извлекают символы;
  • Начальная позиция(обязательный аргумент) — позиция первого знака, извлекаемого из текста;
  • Число знаков(обязательный аргумент) — количество знаков, возвращаемых функцией.

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

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

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

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

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

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

Читать еще:  Удалить дубли в excel

=RIGHT(CELL(«filename»),LEN(CELL(«filename»))- MAX(IF(NOT(ISERR(SEARCH(«»,CELL(«filename»), ROW(1:255)))),SEARCH(«»,CELL(«filename»),ROW(1:255)))))

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

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

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

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

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

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

Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.

Примечание: Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Была ли информация полезной? Для удобства также приводим ссылку на оригинал (на английском языке).

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

Задача: записать в отдельной ячейке или внутри формулы имя текущего листа(т.е. того, в котором сама функция).

В принципе это очень легко сделать простейшей функцией пользователя:

‘————————————————————————————— ‘ Procedure : GetShName ‘ DateTime : 04.03.2015 10:44 ‘ Author : The_Prist(Щербаков Дмитрий) ‘ http://www.excel-vba.ru ‘ Purpose : Функция возвращает в ячейку имя листа ‘ rCell — Необязательный аргумент. ‘ Если указан — функция вернет имя листа, на котором расположена эта ячейка ‘ Если не указан — функция вернет имя листа, в котором записана функция ‘————————————————————————————— Function GetShName(Optional rCell As Range) If Not rCell Is Nothing Then GetShName = rCell.Parent.Name Else GetShName = Application.Caller.Parent.Name End If End Function

Синтаксис:
получение имени листа, в котором записана функция:
=GetShName()
получение имени листа, в котором расположена указанная ячейка
=GetShName( A1 ) — данная запись равнозначна записи без ячейки, т.к. ячейка все равно в пределах листа с самой функцией
=GetShName( Лист2!A1 )

Но бывают случаи, когда использование макросов весьма нежелательно. Тогда можно воспользоваться чуть более громоздкой и менее понятной формулой:
=ПСТР(ЯЧЕЙКА(«filename»; A2 );ПОИСК(«]»;ЯЧЕЙКА(«filename»; A2 ))+1;31)
=MID(CELL(«filename»,A2),SEARCH(«]»,CELL(«filename»,A2))+1,31)
Однако эта формула вернет точно такой же результат, как функция пользователя выше и макросы совершенно не нужны.

Теперь разберем эту формулу поподробнее
Самая основная часть — ЯЧЕЙКА(«filename»;A2). Функция ЯЧЕЙКА (CELL) с записанным первым аргументом «filename» возвращает полный путь к книге, включая имя листа и адрес ячейки, в которой записана функция:
C:UsersДмитрийDesktop[Tips_All_GetShName.xls]Лист1
Т.к. нам нужно только имя листа — мы применяем ПСТР (MID) , которая возвращает часть текста, начиная с указанной позиции символа. ПОИСК (SEARCH) ищет нам именно эту позицию — позицию символа «]».
Если по шагам просмотреть этапы работы формулы, то будет нечто вроде:
=ПСТР(ЯЧЕЙКА(«filename»; A2 );ПОИСК(«]»;ЯЧЕЙКА(«filename»; A2 ))+1;31)
Шаг1 =>
=ПСТР(ЯЧЕЙКА(«filename»; A2 );ПОИСК(«]»;C:UsersДмитрийDesktop[Tips_All_GetShName.xls]Лист1)+1;31)
Шаг2 =>
=ПСТР(ЯЧЕЙКА(«filename»; A2 );49+1;31)
Шаг3 =>
=ПСТР(C:UsersДмитрийDesktop[Tips_All_GetShName.xls]Лист1;50;31)
Шаг4 =>
=Лист1
Первый момент: почему применяю цифру 31 последним аргументом ПСТР? По факту, там необходимо указывать точное количество символов, но если указать больше — то будут взяты все символы от указанного и до последнего. Т.е можно было бы указать и 99, но 31 — это максимальное количество символов, которое можно использовать в имени листа.
Второй момент: первым аргументом функции ЯЧЕЙКА указывается текст, обозначающий тип сведений. В русской локализации он доступен на русском — «имяфайла». Однако при открытии файла с этой функцией в другой локализации тип сведений не будет переведен и функция не сможет работать. Поэтому я указываю на английском, т.к. он является универсальным в данном случае и будет работать в любой локализации. Однако нет никакой ошибки, если указать на русском: ЯЧЕЙКА(«имяфайла»; A2 )

Читать еще:  Счет пустых ячеек в excel

Если вторым аргументом функции ЯЧЕЙКА ничего не указывать( =ЯЧЕЙКА(«filename») ), то функция вернет полный путь с именем того листа, который активен в данный момент(даже если это лист другой книги).

Правда, у этой формулы есть свои недостатки: обязательно необходимо, чтобы книга была сохранена на диске. Это означает, что формула не сработает для книги, которая была только что создана и не сохранена. Связано это с ограничениями возможностей параметра «filename» функции ЯЧЕЙКА(CELL). Она не может получить путь к файлу, который еще не сохранен.
Функция пользователя(UDF) GetShName (приведенная в самом начале статьи) лишена этого недостатка.

Для чего вообще может быть нужно записывать имя листа в ячейку? Ну, например, если имя листа периодически меняется, а в своих формулах вы используете функции вроде ДВССЫЛ со ссылкой на этот лист. Либо для создания более наглядного оглавления через гиперссылки.

Кто-то уже явно догадался, что подобным же образом можно получить не только имя листа — но и имя книги:
=ПСТР(ЯЧЕЙКА(«filename»);ПОИСК(«[«;ЯЧЕЙКА(«filename»))+1;ПОИСК(«]»;ЯЧЕЙКА(«filename»))-ПОИСК(«[«;ЯЧЕЙКА(«filename»))-1)
так же как и для имени листа — можно указать ячейку из другой книги и тогда формула вернет имя той книги, из которой указана ячейка.
Если ячейка не указана — функция вернет имя активной в данный момент книги.

Так же можно получить полный путь к книге и имя книги(без квадратных скобок и имени листа):
=ПОДСТАВИТЬ(ПСТР(ЯЧЕЙКА(«filename»;A1);1;ПОИСК(«]»;ЯЧЕЙКА(«filename»;A1))-1);»[«;»»)

Статья помогла? Поделись ссылкой с друзьями!

Excel works!

Excel работает за вас

Excel works!

Thanks for Visiting

Как использовать имя листа в Excel?

У каждого листа есть название. В одной книге Excel может быть 256 листов. Как использовать имя листа в Excel, чтобы упростить расчеты для множества листов? Например, вам нужно собрать сумму определенного столбца формулой со всех листов, как использовать имя листа в Excel для сбора данных? Ниже предлагаю описание этой возможности табличного редактора.

Имя листа Excel в расчетах

Конкретный пример. Есть два листа с данными по годам Сумма1 и Сумма2, необходимо посчитать сумму по этим листам. При этом необходимо использовать имя листа в формуле. Т.е. если добавить любое количество листов, была бы возможность быстро рассчитать эту сумму.

Для таких расчетов существует замечательная функция =ДВССЫЛ()

По факту в ней необходим один аргумент — ссылка на ячейку. Есть еще необязательный аргумент для определения типа ссылок (R1C1 или A1 — по умолчанию A1).

Чтобы указать имя листа в аргументе (ссылку) нужно воспользоваться возможностью сцепить. Разберем на примере

C$2 — ячейка в которой записано имя листа на который ссылаемся (в нашем случае Сумма1 и Сумма2 )

Читать еще:  Excel печать заголовка на каждой странице

& — символ сцепки

«» — значит, что внутри ячеек воспринимается Excel как текст

!b2 — текстовое значение той ячейке на которую ссылаемся

Решение примера выше можно посмотреть в примере .

Вернуть имя листа в Excel в ячейку

Проще всего наверное макросом, создаем макрос и вносим в него такой текст:

Т.е. ячейке A1 мы этим макросом присваиваем имя листа (не забудьте запустить макрос)

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

Мы используем функцию ПРАВСИМВ для того, чтобы отделить нужное количество символов в возвращенном полном имени файла при помощи ЯЧЕЙКА («имяфайла») — например, C:Users[Имя листаxlsb]Лист1

Далее мы считаем количество ячеек которых нужно оделить справа — т.е. находим полную длину пути файла (ДЛСТР(ЯЧЕЙКА(«имяфайла»))) и вычитаем из нее количество символов до знака ]

В итоге получаем, что из текста C:Users[Имя листаxlsb]Лист1 нам с правой стороны нужно отделить 5 символов — Лист1

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

Имя файла в Excel

Так же можно вернуть в ячейке имя файла Excel

Формула будет иметь вид:

«имяфайла» — это именно такой аргумент, так и надо записывать.

Какая формула вернет название Листа в ячейку «А1»?

Можно создать собственную функцию на основе Google Apps Script.
Code.gs

В Таблице необходимо указать формулу для получения имени активного листа
=sheetName(E5:E13)
Для получения списка всех листов
=sheetsName(E5:E13)
где E5:E13 особый, обязательно активный, т.е. зависящий от ввода пользователя, диапазон. Без изменения этого диапазона, толку от функции будет мало.
Внимание, функции времени (TODAY(), NOW()) нельзя передавать как аргументы.

Пример Таблицы со скриптом goo.gl/w97FNi

С уважением.
Больше ответов на русском языке тут Bit.Ly/rudrive и тут Bit.Ly/rugoogleapps.

P.S.: Чтобы исключить гнев и любую неверную интерпретацию, скажу, что этот скрипт стал возможен после публикования вопроса и первых комментариев к этому посту. Пруф https://code.google.com/p/google-apps-script-issue.

ниже еще одно решение Вашего вопроса, в нем не нужны диапазоны,.
Просто укажите номер листа от 1 до N, где N — последний лист .
Инструкция, очень простая и короткая:
— Скопируйте код ниже (весь со всем скобками, слешами и запятыми):

— Откройте таблицу, где необходимо использовать функцию;
— Выберите «Инструменты» > «Редактор скриптов..» в меню открывшегося редактора Google Таблиц;
— В новой вкладке откроется Редактор скриптов:

— Вставьте в редактор скопированный код:

— В меню редактора выберите «Ресурсы» > «Триггеры текущего проекта» и дайте название Вашему проекту:

— Затем нажмите «Триггеры не настроены. Нажмите здесь, чтобы добавить триггер.» чтобы создать первый триггер:

— В открывшемся диалоговом окне выберите значения отмеченные на изображении ниже:

— Редактор потребует авторизации и выполнения действий в Вашем аккаунте, выбираем «Далее», «Далее» . и авторизируемся
* После этого функция будет работать из таблицы.
Проверяем, выбираем ячейку, вводим значение =getSheetName(1) результат «Лист1»

Похожие статьи

Ссылка на основную публикацию
Похожие публикации
×
×
Adblock
detector