Страницы: 1
RSS
оптимизация!!! (возможно ли отключить автовычисление формул на части листов книги?)
 
Столкнулся вот с чем!  
Есть книга!  
1 лист - исходные данные, эти данные используются для составления различных отчетов на других листах, их 4 или 5 (в основном используются ВПР, ИНДЕКС+ПОИСКПОЗ, СУММПРОИЗВ)  
для удобства, в в "исходные" данные часть информации попадает из "справочника" (ИНДЕКС+ПОИСКПОЗ)  
Сейчас в исходных данных более 1500 записей по 15 по моему столбцам и при внесении новых данных все это дело начинает автоматом пересчитываться - соответственно время!!!  
Удалю листы со всеми отчетами, все ок!  
Ни как нельзя "отключить" автовычисление на листах кроме исходных данных на врем их заполнения.  
Не хотел бы делить на разные файлы.  
 
Не знаю, понятно изложил, нет!? :) Самому мне кажется что это вряд ли можно!
 
Понимаю конечно! Что "отключи вычисления во всей книге и вноси данные"  
но если бы это делал я сам.    
У пользователей просто паника из за того что часть данных не заполняется сразу.  
Звонки и разговоры на эту тему просто убили уже!
 
Добавьте крупным шрифтом надпись "Перед тем как звонить Евгению, нажмите F9 и подождите".  
 
Сделать то, что вы просите, нормальным образом вроде бы нельзя.  
Если пересчитывается долго именно бланковые небольшие листы, может быть есть смысл задуматься об оптимизации формул на оных.  
Можно макросом "выключать" часть формул(скажем, добавлять в них пробелы, а потом убирать).  
 
Дайте файл, а? Тут сейчас скучно.
 
http://slil.ru/28314547  
почти 500 кв
 
"Добавьте крупным шрифтом надпись "Перед тем как звонить Евгению, нажмите F9 и подождите".  
 
Стыдно сказать, но и про Ф9 им мне оч большая проблема объяснить.
 
Тогда на первом листе оставьте ТОЛЬКО поля для ввода данных. Нарисуйте БОЛЬШУЮ кнопку, на которой напишите "После ввода всех данных нажмите на эту кнопку". По нажатию кнопки сработает макрос, который запустит расчёт :-)  
Про кнопку сотрудникам можно рассказать? Поймут?
 
да вот, бьюсь всеми возможными способами!  
Спасибо за участие!
 
Гляньте пример :-)
 
Прикольно!! Я в макросах не силен, честно считаю рановато мне с ними,  
хотя понимаю что много проблем они решают!  
 
Макросы можно написать для листов, на которых нужно "отключить вычисления", так?  
Просто в "исходных данных" элементарные формулы все равно присутствуют.
 
Отключение автопересчёта, как я понимаю, произойдёт для всей Книги. Но можно теми же макросами на исходном листе производить необходимые начальные вычисления. А уж потом - бац по кнопке!
 
0.5) Если у вас 2007, замените суммпроизв на суммеслимн() и сохранятей в бинарном формате(xlsb).  
 
1) В суммпроизв добавьте проверку если(столбец слева<>"";суммпроизв();"") чтобы не проводить расчёты по пустым столбцам.  
2) Уменьшите "запас диапазонов"(у вас используется 1.5 тысячи, таблица сама растянута на 10 тысяч, а расчёты идут по 15 тысячам..нафига?).  
3) Создайте доп столбцы, в которых расчитываются промежуточные результаты(скажем, ФИО+марка. Файл уже закрыл, не помню точно, что повторяется.).  
4) Сделайте динамический расчёт диапазонов:  
А) или в именах.  
Б) или в доп таблице, а в формулах используйте диапазоны вида "ссылка на начало диапазона:индекс(диапазон;последнее значение)". Последнее значение берётся из таблицы.  
 
Возможно завтра-послезавтра будет более полный ответ, не уверен.
 
Саша уже выдал рекомендации по оптимизации.  
 
С помощью VBA, в общем-то, можно полностью отключить пересчет отдельных листов книги, оставив автопересчет остальных. А после внесения данных можно восстановить пересчет всех листов, при этом все формулы будут пересчитаны, что займет определенное время.    
 
Но нужно хорошо представлять:  
1. Действительно ли это решит проблему?  
2. Процесс отключения пересчета: кто (админ ли)? когда? какие листы отключать? как хотелось бы запускать макрос?  
3. Процесс внесения данных: куда? на каких листах нужен пересчет? требуется ли хоть раз (когда?) полный пересчет всех листов?  
4. Процесс включения пересчета: кто? когда? как хотелось бы запускать макрос?
 
Спасибо!  
Думаю, что пока воспользуюсь советами саши и буду оптимизировать формулы.    
Про диапазоны я тоже думал кстати.    
 
С VBA думаю не стоит, я не силен и при каких то сбоях не смогу разобраться в чем причина.  
+ к тому не уверен что проблема решится, как сказал ZVI.
 
а в формулах используйте диапазоны вида "ссылка на начало диапазона:индекс(диапазон;последнее значение)". Последнее значение берётся из таблицы.  
 
Саш, я вот этот момент не совсем понял, поясните, а?  
Остальное все сделал вроде. Наиболее действенным оказалось "поправить" диапазоны.  
Вроде живей пересчет пошел, да и файл "легче стал" чуть не вдвое!  
Я давно думал поправить диапазоны, но как то не такое значение придавал этому!
Страницы: 1
Читают тему
Наверх