Здравствуйте. У меня возник вопрос. Вопрос заключается в замене ссылки на листы. Например, есть несколько листов - Лист1; Лист2; Лист3; Лист4; Лист5, а на листе Лист1, в ячейке A5 имеется формула
Код
=ЕСЛИ(ИЛИ(Лист2!B1=1;Лист2!B2=2);A;"")
. Вот, как сделать так, чтобы задавав в ячейке A4 название (ссылку) нужного мне листа, формула понимала ссылку, а не воспринимала его как текст.
Код
=ЕСЛИ(ИЛИ(A4&"!"&"B1"=1;A4&"!"&"B2"=2);A;"")
, где в A4 можно выбирать название листов (Лист2; Лист3; Лист4; Лист5).
Код
=ЕСЛИ(ИЛИ(A4=1;A4=2);A;"")
, ну или в ячейке A4 уже будет находится нужная ссылка на ячейку, с названием листа (A4=Лист2!B1). Когда искал решение, пробовал эти варианты, но формула понимает их как текст – A4&"!"&"B1" –> "Лист2"&"!"&"B1" –> "Лист2!B1" Как видно, это все из-за кавычек. Почему так происходит? И какое есть решение?
Здравствуйте. У меня возник вопрос. Вопрос заключается в замене ссылки на листы. Например, есть несколько листов - Лист1; Лист2; Лист3; Лист4; Лист5, а на листе Лист1, в ячейке A5 имеется формула
Код
=ЕСЛИ(ИЛИ(Лист2!B1=1;Лист2!B2=2);A;"")
. Вот, как сделать так, чтобы задавав в ячейке A4 название (ссылку) нужного мне листа, формула понимала ссылку, а не воспринимала его как текст.
Код
=ЕСЛИ(ИЛИ(A4&"!"&"B1"=1;A4&"!"&"B2"=2);A;"")
, где в A4 можно выбирать название листов (Лист2; Лист3; Лист4; Лист5).
Код
=ЕСЛИ(ИЛИ(A4=1;A4=2);A;"")
, ну или в ячейке A4 уже будет находится нужная ссылка на ячейку, с названием листа (A4=Лист2!B1). Когда искал решение, пробовал эти варианты, но формула понимает их как текст – A4&"!"&"B1" –> "Лист2"&"!"&"B1" –> "Лист2!B1" Как видно, это все из-за кавычек. Почему так происходит? И какое есть решение?Sergey_Syakoy
Значение А, там где истина, это просто значение, оно не важно, надо было мне его в кавычки закрыть. Моя ошибка. Получается, что программа будет воспринимать текст ссылки из ячейки, как ссылку, если его записать только через ДВССЫЛ? Или можно записать это попроще? Через какие-то знаки например.
Значение А, там где истина, это просто значение, оно не важно, надо было мне его в кавычки закрыть. Моя ошибка. Получается, что программа будет воспринимать текст ссылки из ячейки, как ссылку, если его записать только через ДВССЫЛ? Или можно записать это попроще? Через какие-то знаки например.Sergey_Syakoy
Сообщение отредактировал Sergey_Syakoy - Четверг, 05.01.2023, 19:15
Или можно записать это попроще? Через какие-то знаки например.
Можно попробовать, если понравится, создать имя-формулу через "Диспетчер имен". Для этого, стоя на ячейке A5 на Лист1, жмёте Ctrl+F3, "Создать" и далее заполняете форму: [vba]
Код
Имя: дс Область: Книга Диапазон: =ДВССЫЛ(!A4)
[/vba]И теперь в любой ячейке любого листа можете использовать идентификатор "дс" для ссылки на ячейку, полный адрес которой указан в соседней ячейке сверху. Тогда формула для A5 приобретает такой вид:
Код
=ЕСЛИ(ИЛИ(дс=1;дс=2);"A";"")
Но стоит чуть поменять дизайн таблицы, например, вставить новую строку между 4 и 5, как формула, к сожалению, перестанет работать. Но тут уж каждый выбирает по себе. По мне так и просто ДВССЫЛ внутри формулы - отличный выбор, в конце концов, именно для этого она и существует в списке функций.
Или можно записать это попроще? Через какие-то знаки например.
Можно попробовать, если понравится, создать имя-формулу через "Диспетчер имен". Для этого, стоя на ячейке A5 на Лист1, жмёте Ctrl+F3, "Создать" и далее заполняете форму: [vba]
Код
Имя: дс Область: Книга Диапазон: =ДВССЫЛ(!A4)
[/vba]И теперь в любой ячейке любого листа можете использовать идентификатор "дс" для ссылки на ячейку, полный адрес которой указан в соседней ячейке сверху. Тогда формула для A5 приобретает такой вид:
Код
=ЕСЛИ(ИЛИ(дс=1;дс=2);"A";"")
Но стоит чуть поменять дизайн таблицы, например, вставить новую строку между 4 и 5, как формула, к сожалению, перестанет работать. Но тут уж каждый выбирает по себе. По мне так и просто ДВССЫЛ внутри формулы - отличный выбор, в конце концов, именно для этого она и существует в списке функций.Gustav