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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.04.2011, 12:20   #1
almik
Пользователь
 
Регистрация: 07.04.2011
Сообщений: 42
По умолчанию Одна внешняя ссылка для большой формулы

Есть одна большая формула, которая целиком состоит из внешних ссылок.

Если при каждой ссылке указывать путь на внешний источник (тоже файл excel), то программа плюётся, что очень длинная ссылка выходит.

Может, можно как-то один раз указать, что все элементы этой формулы относятся к другому файлу, и один раз навсегда прописать адрес этого файла?
almik вне форума Ответить с цитированием
Старый 11.04.2011, 12:28   #2
аналитика
Форумчанин
 
Регистрация: 14.05.2009
Сообщений: 311
По умолчанию

давай оба файла
аналитика вне форума Ответить с цитированием
Старый 11.04.2011, 12:33   #3
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

а если их три - то обоих, троем...
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 11.04.2011, 12:49   #4
almik
Пользователь
 
Регистрация: 07.04.2011
Сообщений: 42
По умолчанию

2IgorGO,
хотите сказать, что всё-таки надо каждую внешнюю ссылку оформлять как внешнюю, с полным путём?..

2аналитика,
вот два такие файлы.
Вложения
Тип файла: zip пример_11-04-11.zip (3.9 Кб, 10 просмотров)
almik вне форума Ответить с цитированием
Старый 11.04.2011, 13:12   #5
аналитика
Форумчанин
 
Регистрация: 14.05.2009
Сообщений: 311
По умолчанию

если промежуточные столбцы не критичны, то формулу можно изменить на:
Код:
=СУММ(СМЕЩ($A$1;ПОИСКПОЗ(ДЕНЬ(СЕГОДНЯ())-1;$A$1:$A$28)-1;1;1;27))
аналитика вне форума Ответить с цитированием
Старый 11.04.2011, 13:33   #6
almik
Пользователь
 
Регистрация: 07.04.2011
Сообщений: 42
По умолчанию

2аналитика:
дак, подождите, не в этом же вопрос. там во 2-м файле - одна формула, в ней пути для внешних ссылок (на 1-й файл) не прописаны. если их там прописать, формула займёт слишком много места и не поместиться.
вопрос - можно ли оптимизировать запись?
almik вне форума Ответить с цитированием
Старый 11.04.2011, 13:43   #7
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

если в промежуточных ячейках не числа, то формулу можно упростить до:
Код:
=СУММ(ИНДЕКС(R3C2:R28C2;ПОИСКПОЗ(вчера;R3C1:R28C1;)):ИНДЕКС(R3C10:R28C10;ПОИСКПОЗ(вчера;R3C1:R28C1;)))
или (как Вам удобно)
=СУММ(ИНДЕКС($B$3:$B$28;ПОИСКПОЗ(вчера;$A$3:$A$28;)):ИНДЕКС($J$3:$J$28;ПОИСКПОЗ(вчера;$A$3:$A$28;)))
и ссылок на соседнюю книгу остается всего 4 шт.

или вообще (с 2 ссылками на соседнюю книгу) если промежуточные ячейки пусты:
Код:
=СУММПРОИЗВ((вчера=$A$3:$A$28)*$B$3:$J$28)
или так:
=СУММПРОИЗВ((вчера=R3C1:R28C1)*R3C2:R28C10)
"вчера" в диспетчере имен определено как: =ТЕКСТ(ДЕНЬ(СЕГОДНЯ())-1;"00")
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 11.04.2011 в 13:46.
IgorGO вне форума Ответить с цитированием
Старый 11.04.2011, 14:04   #8
almik
Пользователь
 
Регистрация: 07.04.2011
Сообщений: 42
По умолчанию

2IgorGO:

в промежуточных ячейках как раз есть данные

а в ваших формулах где эти самые внешние ссылки (по типу '[имя_файла.xls]'!)? и не понял, что есть такое R2.., R1..

т.е., так понимаю, единственный путь - это оптимизировать саму формулу?
almik вне форума Ответить с цитированием
Старый 11.04.2011, 14:48   #9
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

отройте сначала Ваш пример_11-04-11_1.xls, а потом приатаченый файл
Код:
=СУММ((вчера='[пример_11-04-11_1.xls]Лист1'!$A$3:$A$28)*ЕСЛИ(ОСТАТ(СТОЛБЕЦ('[пример_11-04-11_1.xls]Лист1'!$B$3:$J$28);2)=0;'[пример_11-04-11_1.xls]Лист1'!$B$3:$J$28))
теперь не важно, что в промежуточных ячейках (не забудьте "вчера" в диспетчере прописать)
Вложения
Тип файла: rar Книга657.rar (6.4 Кб, 11 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 11.04.2011 в 14:50.
IgorGO вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужен компонент для работы с большой БД George2010 Компоненты Delphi 6 06.10.2010 10:10
Одна процедура для всех Edit(ов) SoftKoc Общие вопросы Delphi 7 23.01.2010 13:44
Классы для чисел большой точности Lawliet32 Помощь студентам 2 26.12.2009 12:32
Одна функция для нескольких объектов Salomon Помощь студентам 2 25.11.2008 16:32