Таблица данных Excel очень медленно обновляется

79
8

У меня есть таблица данных Excel, связанная с запросом к базе данных Oracle. В этой таблице данных есть: (1) дополнительные расчетные столбцы (некоторые из которых включают формулы массива и MATCHes), добавленные в таблицу данных (на основе запрошенных значений) и (2) множество зависимых формул, распространяющихся по всем другим вкладкам

Хотя сам запрос быстро обновляется, если он добавлен в новый файл Excel точно так же, как есть, зависимые формулы, похоже, замедляют обновление EVEN WITH CALCULATIONS SET TO MANUAL.

Я пробовал несколько вещей: 1) Установите вычисления в руководство 2) Отключено обновление экрана 3) Отключенные события 4) Удалены вычисленные столбцы из таблицы данных (только обычные формулы)

Кажется, ничего не помогает... какие-то идеи? Благодарю.

спросил(а) 2021-01-19T17:54:24+03:00 9 месяцев, 1 неделя назад
1
Решение
65

Эта ссылка может вас заинтересовать.

Excel Recalculation http://msdn.microsoft.com/en-us/library/office/bb687891(v=office.12).aspx

Thread Safe Functions http://msdn.microsoft.com/en-us/library/office/bb687899(v=office.12).aspx#xl2007xllsdk_threadsafe

Существует много событий, которые могут вызвать событие пересчета, также считываемое функциями VOLATILE. Функция volatile - это функция, значение которой не может считаться одинаковой с одного момента на другой, даже если ни один из ее аргументов (если он не принимает никаких) изменился.

The following Excel functions are volatile.
NOW
TODAY
RAND
OFFSET
INDIRECT
INFO (depending on its arguments)
CELL (depending on its arguments)

Пересчет таблиц данных обрабатывается несколько иначе. Пересчет выполняется асинхронно для регулярного пересчета книг, так что большие таблицы могут занять больше времени, чтобы пересчитать, чем остальная часть рабочей книги.

Попробуйте установить " Automatic Except for Data Tables. Возможно, даже если настроить вручную, это означает, что всякий раз, когда событие запускает руководство, он вычисляет затронутые ячейки. Возможно, ваше обновление запускает все эти события, которые будут вычисляться несколько раз, потому что по мере того, как события вызывают это, больше событий приходит и запускается снова.

Самое простое, что вы могли бы сделать - это устранить как можно больше формул VOLATILE и ARRAY. Личный опыт говорит мне, что функции RAND и ARRAY хуже всего.

ответил(а) 2021-01-19T17:54:24+03:00 9 месяцев, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема