Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.12.2012, 14:06   #1
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию Динамические именованные диапазоны

Всем привет! Возник вопрос по использованию именованных диапазонов: функция ДВССЫЛ в случае с динамическими диапазонами выдаёт ошибку ссылки. Это её нормальное поведение или нужно потанцевать с бубном?

з.ы. нашёл ссылку на планете, но там походу БД почистили(
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 24.12.2012, 16:14   #2
Serge 007
Участник клуба
 
Аватар для Serge 007
 
Регистрация: 15.12.2009
Сообщений: 1,448
По умолчанию

Как используете ДВССЫЛ? Пример давайте
Бесплатная помощь: www.excelworld.ru
Платная помощь: serge_007.planetaexcel@mail.ru
https://yoomoney.ru: 41001419691823
Serge 007 вне форума Ответить с цитированием
Старый 25.12.2012, 08:15   #3
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Есть примерно такие именованные диапазоны:
Код:
Январь
=Лист1!$A$1:$D$31
Февраль
=Лист1!$A$40:$D$68
Март
=Лист1!$A$80:$D$111
и т.д.
а также динамический диапазон:
Код:
Год
=Январь + Февраль + Март+...
И примерно такая формула:
Код:
=СУММ(ИНДЕКС(ДВССЫЛ(Лист2!$A$1),,Столбец(ЯчейкаСТребуемымСтолбцом)))
Если я указываю в ячейке Лист2!A1 значение Год (с Январём и т.д. работает нормально), то выдаёт ошибку #ССЫЛ, ходя при замене ДВССЫЛ(Лист2!$A$1) на Год всё работает как положено.
Как я понял, это связано с тем, что функция не инициирует вычисление динамического диапазона. Вот мне и интересно, так это, либо есть какие-то обходные пути?
Правильно поставленная задача - три четверти решения.

Последний раз редактировалось DiemonStar; 25.12.2012 в 08:17.
DiemonStar вне форума Ответить с цитированием
Старый 25.12.2012, 12:37   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Год=Январь + Февраль + Март+...

1) год - это не динамический диапазон. это сумма первых ячеек диапазонов январь, февраль, март....
2) в режиме массива - это диапазон с суммами соответсвующих ячеек (если все обьявленные январь, февраль, март.... имеют одинаковый размер* иначе #Н/Д)
3) в любом случае в таком виде, Год - это виртуальный диапазон без конкретного адреса на листе и ДВССЫЛ не найдет его
и
4) не очень удачное решение присвоить диапазону имя аналогичное существующей функции, хотя такая конструкция =Год(Год) допустима и работоспособна.

обьявите Год как Лист1!$A$1:$D$365 и пользуйтесь на здоровье.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 25.12.2012, 13:33   #5
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Цитата:
4) не очень удачное решение присвоить диапазону имя аналогичное существующей функции, хотя такая конструкция =Год(Год) допустима и работоспособна.
Название я привёл как пример. на практике использовал За_Год.

Цитата:
3) в любом случае в таком виде, Год - это виртуальный диапазон без конкретного адреса на листе и ДВССЫЛ не найдет его
Вот это и было интересно.

Цитата:
обьявите Год как Лист1!$A$1:$D$365 и пользуйтесь на здоровье.
Увы, но такой вариант не прокатит: исходные данные состоят из нескольких таблиц по месяцам. И в них используется локальная статистика и данные не используемые в данной задаче, которые при таком подходе исказят результат.

Проблему я решил дублированием расчётной таблицы (которая на Лист2) и заменой в формуле функции ДВССЫЛ(Лист2!$A$1) на явное указание массива (ЗаГод). Вопрос же задал исключительно с познавательной точки зрения.

Спасибо за ответы!
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Именованные таблицы DiemonStar Microsoft Office Excel 4 02.10.2012 18:02
Именованные ячейки Foxx Microsoft Office Excel 1 20.02.2012 00:33
Поменять местами диапазоны bize Microsoft Office Excel 8 09.02.2012 21:18
Динамические диапазоны LaryMusa Microsoft Office Excel 8 05.07.2010 21:20
Как просуммировать диапазоны? Алексей11111 Microsoft Office Excel 7 28.11.2009 18:19