|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
19.08.2010, 13:14 | #11 |
Пользователь
Регистрация: 16.04.2009
Сообщений: 37
|
Вручную можно сказать (найти... заменить...) исправил формулы.
Конечно-же летучесть сразу упала до минимума, с которым работать стало невозможно. Пришлось отключать автоматический расчет формул. KL (XL): Скажите, с ИНДЕСК(А:А;1) летучесть вернется или это будет понятно в конкретном случае? |
19.08.2010, 15:42 | #12 |
Форумчанин
Регистрация: 04.08.2009
Сообщений: 112
|
1) Мне кажется, вы путаете понятия летучести и скорости пересчета То, что вы наблюдаете после замены ссылок на ДВССЫЛ() скорее всего повышенная летучесть формул, вызывающая повышенное торможение.
Летучесть - пересчет формул при любом событии способном вызвать пересчет Нелетучесть - пересчет формул только при влиянии изменения на результат формулы Летучие функции: СЛЧИС() СЛМЕЖДУ() - встроенная функция, начиная с XL2007 СЕГОДНЯ() ТДАТА() СМЕЩ() ДВССЫЛ() ИНФОРМ() ЯЧЕЙКА() СУММЕСЛИ() - начиная с XL2002, если суммируемый диапазон представлен только первой ячейкой =СУММЕСЛИ(A1:A4;">0";B1) 2) Если вы вернетесь к простым ссылкам или ИНДЕКС(A:A;1), то летучесть должна исчезнуть вместе с торможением. 3) Если у вас XL2003 или раннее и очень много формул со ссылками, то в любом случае теоретически может быть превышен один из двух лимитов зависимостей, что приведет к полной летучести листа (если на панели статуса появится "Вычислить"), явление редкое, но возможное. Подробнее здесь: http://www.decisionmodels.com/calcsecretsf.htm
KL [MVP - Microsoft Office Excel]
CPU: Intel Core 2, 2.17GHz | RAM: 3.25GB (4GB) | GPU: nVidia Quadro FX 2500M OS: Windows 7 Ultimate x64 EN | MSO: 2010 Professional Plus x86 EN Последний раз редактировалось KL (XL); 19.08.2010 в 18:06. |
23.08.2010, 09:58 | #13 |
Пользователь
Регистрация: 16.04.2009
Сообщений: 37
|
KL (XL):
Спасибо за разъяснение понятия летучести формул.
Конечно-же до этого я не понимал, что летучесть формул и летучесть компьютера - это разные понятия. Еще вопрос. Как изменить формулу для сохранения ссылок при удалении строки в выражении: СЧЁТЗ(ДВССЫЛ("F42:AC42")) В других формулах использовал ИНДЕКС(А:А;1). Тормоз еще очень существенный. Выражений СЧЁТЗ(ДВССЫЛ("F42:AC42")) порядка 600 штук (на 31 странице (кол.дней в мес-це) по 190 штук в каждой). Если есть у вас время, я бы мог здесь выложить эту книгу (~6Mb) и для сравнения разницы в скорости предыдущую версию этой книги (~5Mb). В предыдущей версии не применяется ни ИНДЕКС(А:А;1) ни ДВССЫЛ("..") и соответственно работать комфортно (без тормозов), но при этом нарушаются ссылки при удалении строки. В последней версии использовал ИНДЕКС(А:А;1) и указанное выше выражение СЧЁТЗ(ДВССЫЛ("F42:AC42")). |
23.08.2010, 11:32 | #14 |
Форумчанин
Регистрация: 04.08.2009
Сообщений: 112
|
1) Летучесть влияет не столько на скорость пересчета, сколько на частоту пересчета, т.е. большее время ожидания от большего количества повторов пересчета. Проблема летучих формул как раз в том, что их количество большого значения не имеет. В книге может быть одна ячейка с летучей функцией, но если на нее ссылаются остальные... Т.ч. надо постараться, чтобы не осталось ни одной
2) Код:
KL [MVP - Microsoft Office Excel]
CPU: Intel Core 2, 2.17GHz | RAM: 3.25GB (4GB) | GPU: nVidia Quadro FX 2500M OS: Windows 7 Ultimate x64 EN | MSO: 2010 Professional Plus x86 EN Последний раз редактировалось KL (XL); 23.08.2010 в 12:35. |
23.08.2010, 13:20 | #15 |
Пользователь
Регистрация: 16.04.2009
Сообщений: 37
|
KL (XL):
Спасибо за помощь.
Вернулся к приведенному вами списку летучих функций. Нашел и заменил функции ТДАТА(), которых у меня было аж 792 шт. и на половину из них были ссылки. Но это похоже не так повлияло на результат, как все-таки функция ДВССЫЛ(А:А;1). Заменил оставшиеся приведенной вами СЧЁТЗ(ИНДЕКС($F:$F;42):ИНДЕКС($AC:$ AC;42)) и так называемая летучесть компьютера, т.е. отсутствие тормозов вернулось к прежнему состоянию. Еще раз спасибо всем. аналитика : Извините, что не воспользовался вашим примером: Option Explicit Sub InDirect_() Dim r As Range, c As Range Dim sIn As String, sRanges() As String, sNotRanges() As String, k As Integer Dim L As Integer, i As Integer Dim sChar As String * 1, sOut As String Dim bInRange As Boolean Dim iBegin As Integer, iEnd As Integer . . . для автоматизации замены функций. Что-то не совсем разобрался, как это должно работать в моем случае. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Исключение при удалении из std::map | arokot | Общие вопросы C/C++ | 2 | 11.08.2010 17:36 |
С++. Ошибка при удалении последней строки из файла | _Dis_ | Помощь студентам | 12 | 28.08.2009 21:33 |
ошибка при удалении символа | Virus191288 | Общие вопросы Delphi | 13 | 15.08.2009 14:50 |
Ошибка при удалении... | JRcoker | Общие вопросы Delphi | 8 | 29.07.2008 22:53 |
Проблемы при удалении файлов | Pavel55 | Общие вопросы Delphi | 7 | 10.01.2008 00:45 |