Причиной, вероятно, является различие в 32-битной фрагментации памяти на 2 ПК (часто трудно использовать все теоретически доступные 2 ГБ).
Вы можете уменьшить объем памяти, используемой сводной таблицей, уменьшив количество столбцов и / или уменьшив объем памяти, необходимый для некоторых столбцов (текстовые строки являются хорошим кандидатом).
(Вы можете измерить объем памяти, используемый сводным кешем с помощью VBA PivotCache.memoryUsed)
Я предполагаю, что вы создаете сводный кеш, считывая данные из запроса непосредственно в сводный кеш, а не помещая данные запроса в рабочую таблицу и основывая стержень на листе, который будет использовать гораздо больше памяти.
Вы не говорите, что такое формулы> 1000000, поэтому у меня нет предложений по их улучшению.
Если вы хотите использовать большие объемы данных в сводных таблицах Excel и т. Д., Вы получите лучшие результаты от 64-разрядной версии Excel 2010, для которой не установлено ограничение в 2 ГБ.
В Excel не хватило ресурсов при попытке вычислить одну или несколько формул
Я получил сообщение об ошибке «Excel исчерпал ресурсы при попытке вычислить один или несколько формулы» на ОДИН из моих компьютеров (из 2).
Мой рабочий лист содержит: (Внутри одного рабочего листа, а не рабочего листа, в другом рабочем листе есть формулы)
1 000 000 формул
- база сводных таблиц на 900 000 строк данных
Когда я запускаю excel / vba для действия «Рассчитать лист» (только для текущей рабочей таблицы), программа выдает следующее сообщение об ошибке:
Excel ran out of resources while attempting to calculate one or more formulas
Я не обновляю сводную таблицу в (Excel или VBA) или «Вычисляем лист» в (Excel или VBA)
У меня 2 компьютера:
оба работают под управлением 64-битной Windows 7,
оба работают в Excel 2007 32Bit,
Я запускаю Excel сразу после запуска Windows,
мой компьютер с 2 ГБ оперативной памяти может работать без проблем,
другой компьютер с 6 ГБ ОЗУ показал
ran out of resources
сообщение об ошибкеЗапуск на том же наборе данных, тот же файл Excel
Я также заметил, что на моем ПК для разработки используется ~ 1,2 ГБ ОЗУ, а на нерабочем ПК - 900 МБ до нажатия кнопки «Обновить» / «Рассчитать».
РЕДАКТИРОВАТЬ
Неработающий компьютер может обрабатывать данные в пределах 100 000 строк данных
Мои вопросы:
- Почему он работает на компьютере с меньшим объемом памяти, а не на компьютере с большим объемом памяти? (основной вопрос)
- Что я могу сделать, чтобы уменьшить объем памяти, используемый Excel? (подвопрос) (кроме удаления данных)
Любая помощь приветствуется, пожалуйста, укажите мне правильное направление или просто дайте подсказку.
РЕДАКТИРОВАТЬ : я думаю об удалении формул и переместить логику в VBA, и сделать это путем кэширования данных, возможно, на 10000 строк. Но это не решит мою проблему, если «обновить» сводную таблицу будет отображать ту же ошибку.
6 ответов на вопрос
- Популярные
- Новые
- С комментариями
- Активные
спасибо за все предложения, чтения и помощь. Я решил проблему
- Измените все формулы на значения шаг за шагом на ~ 100 000 строк --- Это уменьшит объем памяти, удерживаемой Excel на 10%
- Удалил все ненужные данные / рабочие таблицы из рабочей книги (необработанные данные до массирования данных). Это уменьшило объем памяти, удерживаемой Excel на 40%.
И чтение http://www.add-ins.com/support/out-of-memory-or-not-enough-resource-problem-with-microsoft-excel.htm позволяет предположить, почему 6G RAM PC сталкивается с этой проблемой, а не чем 2G RAM ПК. Я думаю, это потому, что на ПК 6G есть много надстроек Excel, которые также потребляют оперативную память.
Спасибо за помощь.
старый квест, но все еще действительный для всех версий, я сталкиваюсь с подобными проблемами, когда формулы, которые я использовал, имели слишком большую область действия, даже если большинство полей были пустыми, например: DO_CALCULATION (D1: D100000) потребует значительного количества времени и даже памяти если только ячейки D1: D10 имеют какое-либо значение. Поэтому будьте осторожны, пытаясь подготовить формулы для расширения данных, сохраняйте небольшие диапазоны :)
Похоже, вы создаете очень большие листы Excel. 32-разрядные приложения могут использовать только до 2 ГБ ОЗУ, если только они не могут быть настроены на использование до 3,2 ГБ с помощью специального «переключателя». Так что в 32-битном Excel фактически не хватает памяти после 2 ГБ.
Так что не имеет значения, если у вас есть 16 или 32 ГБ ОЗУ. Вам нужен 64-битный MS Office, чтобы он мог свободно использовать ОЗУ объемом более 2 ГБ. Только тогда ваша дополнительная память объемом 6 ГБ будет действительно полезна для Excel. В противном случае он столкнется с необходимостью выяснить, как работать только с 2 ГБ ОЗУ, и, скорее всего, начнет использовать файл подкачки на жестком диске.
Одной из возможностей будет увеличение размера файла подкачки Windows. Я никогда не позволяю Windows управлять файлом подкачки. Я установил его в 1,5X физической памяти и установил минимальный и максимальный размер файла подкачки. Это предотвращает фрагментацию оперативной памяти. Поэтому, если у вас 4 ГБ ОЗУ, установите значение 6144/6144 МБ мин / макс.
Ответ заключается в обновлении до 64-разрядной версии Excel. Он может охватывать гораздо больший диапазон памяти, а также, как правило, гораздо быстрее и является подходящим инструментом для работы, если у вас большая таблица.
Одна из возможных причин, по которой у него могут заканчиваться ресурсы на машине с 6 ГБ, а не на машине с 2 ГБ, заключается в том, что сама Windows требует больше ресурсов для управления 6 ГБ памяти, чем для 2 ГБ памяти.
Это была известная проблема в 32-битной Windows (и еще большая проблема в 16-битной Windows). Это должно быть решено на 64-битных системах, но ...
В любом случае, можно проверить: отключите дополнительную оперативную память и посмотрите, исчезнет ли проблема.
Похожие вопросы
-
6
Нужно ли иметь 3 модуля памяти DIMM для использования DDR3 или даже иметь возможность запуска 3-кана...
-
5
Почему фанат моего процессора гонит видео или виртуальные машины?
-
3
Мой файл заблокирован в Excel 2007, что происходит?
-
-
4
Есть ли определенное или ощутимое преимущество использования ECC RAM на настольном ПК?
-
2
Использование памяти iTunes
-
2
Есть ли способ заставить Excel 2007 автоматически восстанавливать фоновые файлы, как в MS Word?
-
1
Excel Word Wrap + исчезающий текст
-
5
Как определить, какие надстройки Firefox используют больше всего памяти
-
1
Простое объединение / очистка с помощью Excel
-
5
Что мне делать со своей старой памятью?