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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.08.2010, 13:14   #11
transgd
Пользователь
 
Регистрация: 16.04.2009
Сообщений: 37
По умолчанию

Вручную можно сказать (найти... заменить...) исправил формулы.
Конечно-же летучесть сразу упала до минимума, с которым работать стало невозможно. Пришлось отключать автоматический расчет формул.

KL (XL):
Скажите, с ИНДЕСК(А:А;1) летучесть вернется или это будет понятно в конкретном случае?
transgd вне форума Ответить с цитированием
Старый 19.08.2010, 15:42   #12
KL (XL)
Форумчанин
 
Аватар для KL (XL)
 
Регистрация: 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.
KL (XL) вне форума Ответить с цитированием
Старый 23.08.2010, 09:58   #13
transgd
Пользователь
 
Регистрация: 16.04.2009
Сообщений: 37
По умолчанию KL (XL):

Спасибо за разъяснение понятия летучести формул.
Конечно-же до этого я не понимал, что летучесть формул и летучесть компьютера - это разные понятия.
Еще вопрос. Как изменить формулу для сохранения ссылок при удалении строки в выражении:
СЧЁТЗ(ДВССЫЛ("F42:AC42"))
В других формулах использовал ИНДЕКС(А:А;1).
Тормоз еще очень существенный. Выражений СЧЁТЗ(ДВССЫЛ("F42:AC42"))
порядка 600 штук (на 31 странице (кол.дней в мес-це) по 190 штук в каждой).
Если есть у вас время, я бы мог здесь выложить эту книгу (~6Mb) и для сравнения разницы в скорости предыдущую версию этой книги (~5Mb).
В предыдущей версии не применяется ни ИНДЕКС(А:А;1) ни ДВССЫЛ("..") и соответственно работать комфортно (без тормозов), но при этом нарушаются ссылки при удалении строки.
В последней версии использовал ИНДЕКС(А:А;1) и указанное выше выражение СЧЁТЗ(ДВССЫЛ("F42:AC42")).
transgd вне форума Ответить с цитированием
Старый 23.08.2010, 11:32   #14
KL (XL)
Форумчанин
 
Аватар для KL (XL)
 
Регистрация: 04.08.2009
Сообщений: 112
По умолчанию

1) Летучесть влияет не столько на скорость пересчета, сколько на частоту пересчета, т.е. большее время ожидания от большего количества повторов пересчета. Проблема летучих формул как раз в том, что их количество большого значения не имеет. В книге может быть одна ячейка с летучей функцией, но если на нее ссылаются остальные... Т.ч. надо постараться, чтобы не осталось ни одной

2)
Код:
СЧЁТЗ(ИНДЕКС($F:$F;42):ИНДЕКС($AC:$AC;42))
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.
KL (XL) вне форума Ответить с цитированием
Старый 23.08.2010, 13:20   #15
transgd
Пользователь
 
Регистрация: 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
.
.
.
для автоматизации замены функций.
Что-то не совсем разобрался, как это должно работать в моем случае.
transgd вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Исключение при удалении из 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