Страницы: 1
RSS
Навигация при помощи ДВССЫЛ и АДРЕС в другие книги
 
При помощи функции ДВССЫЛ(АДРЕС(xxx;xxx;xxx;xxx;$xxx)) можно построить таблицу, которая вытягивала бы определенные значения в заданных постоянных или зависимых (это уж как задать столбец и строку) ячейках на листах.  
Однако, эта формула предназначена только для работы в пределах книги. Как ее использовать на другую книгу? какую функцию использовать (если такая есть)?
 
{quote}{login=Экономист}{date=31.08.2011 11:12}{post}Однако, эта формула предназначена только для работы в пределах книги. {/post}{/quote}  
Это откуда такие сведения?  
ДВССЫЛ не работает с закрытыми книгами, это правда. Но ведь книгу можно и открыть.  
АДРЕС умеет работать с другими книгами.  
Или принципиально брать данные из закрытой книги?
Кому решение нужно - тот пример и рисует.
 
{quote}{login=Экономист}{date=31.08.2011 11:12}{post}При помощи функции ДВССЫЛ(АДРЕС(xxx;xxx;xxx;xxx;$xxx)) можно построить таблицу...{/post}{/quote}  
Можно. Но для этого есть другие, более применимые и менее неудобные функции.
 
{quote}{login=Пытливый}{post}... для этого есть другие, более применимые и менее неудобные функции.{/post}{/quote}  
какие?
 
=ДВССЫЛ([Бюджет.xlsm]Дни!$B$2)
 
вот так записал формулу. книга "Бюджет" открыта. почему выдает ошибку?!
 
а, надо было в кавычки взять.. посчитал.  
но проблема, куда тут всунуть АДРЕС?  
 
грубо говоря, если книга - отчет. есть - БД. в БД - листы от 1 до 12.  
надо, чтоб в зависимости от одного параметра (месяц) в отчете формула искала то в листе 1, то в 2, то в 12-м. как это сделать?  
 
прикладываю пример с бизнес-планом. там листы кроме первого идут в расчет. на первом ДВССЫЛ(АДРЕС)) позволяет вытягивать в зависимости от текста в столбце А цифры из разных листов.  
 
теперь, мне надо это же сделать из другой книги. как? не пойму что-то
 
{quote}{login=Экономист}{date=01.09.2011 11:41}{post}=ДВССЫЛ([Бюджет.xlsm]Дни!$B$2)
вот так записал формулу. книга "Бюджет" открыта. почему выдает ошибку?!{/post}{/quote}  
В данном случае ДВССЫЛ не нужен.- [Бюджет.xlsm]Дни!$B$2
 
что-то такое =ДВССЫЛ(АДРЕС(3;C$3+2;;;"[Бюджет.xlsm]"&$A13)) но Бюджет.xlsm должен быть открыт.
 
Пример тупо скопировал из хелпа по функции адрес  
 
=АДРЕС(2;3;1;ИСТИНА;"[Книга1]Лист1")
 
Абсолютная ссылка $C$2 на листе1 книги1  
В хелпе использование внешней ссылки достаточно подробно описано.
Кому решение нужно - тот пример и рисует.
 
так получилось вот что:    
=ДВССЫЛ(АДРЕС(3;C$3+2;;;"[Бизнес_план]A7"))
 
выдает ошибку. название листа (!) тоже надо не буквами писать, а это ссылка на отчете. если писать буквами, вот что получается: =ДВССЫЛ(АДРЕС(3;C$3+2;;;"[Бизнес_план]сервис")) = 1760. Как сделать так, чтобы и лист не надо было прописывать?
 
в общем я видимо плохо объяснил.. итак, ссылка на другую книгу нужна не простая, а в зависимости от факторов, и получается, что меняется как строка, столбец, так и лист!  
но как лист сделать зависимым? надо написать как-то название книги и название листа, но записать типом a1, чтобы это была переменная. если прописать "[Книга1]Лист1", то это жесткая фиксация, я всегда ссылаюсь на один лист. но мне надо лист сделать переменным
надеюсь, я правильно объяснил..
 
=ДВССЫЛ(АДРЕС(3;C$3+2;;;"[Бизнес_план]"&A7))
 
Вам надо передать в качестве параметра функции строку с именем книги и листа, причем имя листа - величина переменна, правильно?  
В этом случае формируем строковую переменную:  
"[Бизнес_план]" & A7
Строка с названием листа объединяется с ЗНАЧЕНИЕМ из ячейки А7 в результирующую строку через &
Кому решение нужно - тот пример и рисует.
 
спасибо большое.. про амперсант знаю, оказывается я кавычки не там ставил! надо было их вокруг книги, а я делал вокруг книги-листа!  
фух, большую проблему вы мне помогли решить
 
Итересно чем отличается моя формула(в 02.09.2011, 00:19) от вашей, что её проигнорировали. :( и все равно вышли на тот же вариант.
 
Не проверял, лень вторую книгу готовить. Без АДРЕС():  
=ИНДЕКС(ДВССЫЛ("[Бизнес_план]"&A7&"!A1:J250");3;C$3+2)
A1:J250 - Ваш диапазон в книге.
 
{quote}{login=V}  
Итересно чем отличается моя формула(в 02.09.2011, 00:19) от вашей, что её проигнорировали. :( и все равно вышли на тот же вариант.{/quote}  
 
ничем:) вы были правы:)
 
Подскажите, а если динаичным является имя книги?
 
Т.е. имя документа варьируется, а лист и ячейка константа, пытался сделать: =ДВССЫЛ(АДРЕС(44;6;1;1;A22&"[.xls]Лист1")), но пишет ошибка. За ранее спасибо
 
Так наверно (в А22 - имя книги без расширения)  
 
=ДВССЫЛ(АДРЕС(44;6;1;1;"["&A22&".xls]Лист1"))
 
не идёт хоть ты убей. При такой схеме написания, проверяю этапы вичисления - ексль воспринимает название файла как &100&.xls вместо 100.xls и естественно сигнализирует об ошибке
 
{quote}{login=}{date=15.08.2012 04:19}{thema=}{post}...проверяю этапы вичисления -....{/post}{/quote}  
судя по скрину вы еще не дошли до того момента когда &100&.xls превратится в 100.xls  
А вообще по синтаксису формула рабочая. Ошибку смотрите со своей стороны.
 
Вобщем добился я своего "=ДВССЫЛ(АДРЕС(44;6;1;1;"["&C25&"]"&"Лист1"))", оказвается расширение ".xlsx" нельзя в квадратные скобки вносить. Пришлось врукопашную в столбце "С" шифров цехов прописать (100".xlsx). Теперь другая напасть - ДВССЫЛ работает только с открвытыми книгами, а окрывать более 200 файлов - не есть гуд. Кто знает, что делать?
 
Ваша задача в этой теме исчерпала себя. ДВССЫЛ() не работает с закрытыми книгами.  
Макросы. Но это уже другая история.
 
{quote}{login=vikttur}{date=16.08.2012 04:40}{thema=}{post}Ваша задача в этой теме исчерпала себя. ДВССЫЛ() не работает с закрытыми книгами.  
Макросы. Но это уже другая история.{/post}{/quote}  
Может ткнётё по форуму - в какую сторону копать? Открыл я редактор макросов - вроде и похоже на знакомый мне Pascal - да не совсем то. Может простые циклические программы как образец?
 
Создать новую тему. Эта - о примении функции, Вам же нужен макрос.
Страницы: 1
Читают тему
Наверх