EXEL...

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
Vit_v
Сообщения: 4
Зарегистрирован: 11 июл 2009, 13:15

День добрый ! У меня возможно странный но принципиальный для меня вопрос.И не один.Не откажите вниманием или советом.. :)

Есть таблица в EXEL , которой я пользуюсь для ведения отчетности по прохождению материалов и изделий на производстве. В таблице в основном используются встроенные функции БДСУММ БИЗВЛЕЧЬ и т.п. Таблица разрослась до 40 мб. Производительность машины стало не достаточно и для того чтобы ускорить процесс ввода я выставил вычисление вручную. Ввел несколько заданий - пересчитал. Но возникла проблема - при пересчёте сообщение " Вычеслить " не исчезает . Значит пересчет не окончен. Впервые когда я с этим столкнулся - удалил столбец на который ссылалась функция БИЗВЛЕЧЬ в параметре база_данных.Я все исправил.И все работало . До сегодня.. Последовательность.
1. Выделяю блок с формулами и условиями.(Данные извлекаются функциями из одного и того же места.)
2. Копирую в нужное место.
3. F9. -----> " Готово "
Но после 187 блока " Вычеслить " перестала исчезать..
Может EXEL не расчитан на такое количество вычилений или объема информации . В чем моя ошибка ? Или как отследить причину ошибки?

Буду весьма признателен за любой совет. :)
Teslenko_EA
Сообщения: 526
Зарегистрирован: 04 фев 2007, 18:37
Откуда: Сургут
Контактная информация:

Здравствуйте Vit_v.
самым конструктивным в Вашем случае думаю будет совет:
начните изучентие систем управления базами данных (СУБД)
одним из представителей является MS Access.
Евгений.
Аватара пользователя
mc-black
Сообщения: 250
Зарегистрирован: 08 май 2008, 16:09
Откуда: Россия, Нижний Новгород
Контактная информация:

Сложно сказать как и что. Но 40 Mb на 1 файл - это уже не жизнь, а пытка =) Не экселевский это размер! По мне так и 5Mb уже вызывают серьезные тормоза при сохранении файла (про вычисления формул - все зависит от их количества), а тут такой монстр... Понимаю, что хотя переходить на БД вам давно уже как стало целесообразно, но за пару выходных это сделать нереально - нужно время на проектирование базы, импорт данных, настройку форм и отчетов, тестирование, отладку и т.д. Но производство тоже не должно стоить из-за программы в Excel. Предлагаю ВРЕМЕННО начать заменять формулы, которые уже были вычислены и в пересчете не нуждаются из значениями (Специальная вставка - Значения), это немного разгрузит вычисления. И параллельно реорганизуйте вашу информацию в базу данных. По Access могу помочь Вам, на коммерческой основе естественно. Но не исключаю, что и Access в Вашем случае может оказаться не самым лучшим вариантом. Если хотите, можно продолжить обсуждение приватно по e-mail: mc-black@yandex.ru

У меня имеется большой опыт учета материально-производственных запасов и расчетов потребности в сырье, материалах и полуфабрикатах на разных производствах, сделанного в Excel с макросами VBA. Не исключаю вероятность того, что ваш файл мог бы в разы быть меньше за счет изменения организации информации, временного хранения промежуточных данных расчетов, замены формул на значения, вычисляемые макросами. Пишите мне, и мы что-нибудь сможем придумать.
На заказ: VBA, Excel mc-black@yandex.ru
Vit_v
Сообщения: 4
Зарегистрирован: 11 июл 2009, 13:15

mc-black писал(а):Сложно сказать как и что. Но 40 Mb на 1 файл - это уже не жизнь, а пытка =) Не экселевский это размер! По мне так и 5Mb уже вызывают серьезные тормоза при сохранении файла (про вычисления формул - все зависит от их количества), а тут такой монстр... Понимаю, что хотя переходить на БД вам давно уже как стало целесообразно, но за пару выходных это сделать нереально - нужно время на проектирование базы, импорт данных, настройку форм и отчетов, тестирование, отладку и т.д. Но производство тоже не должно стоить из-за программы в Excel. Предлагаю ВРЕМЕННО начать заменять формулы, которые уже были вычислены и в пересчете не нуждаются из значениями (Специальная вставка - Значения), это немного разгрузит вычисления. И параллельно реорганизуйте вашу информацию в базу данных. По Access могу помочь Вам, на коммерческой основе естественно. Но не исключаю, что и Access в Вашем случае может оказаться не самым лучшим вариантом. Если хотите, можно продолжить обсуждение приватно по e-mail: mc-black@yandex.ru

У меня имеется большой опыт учета материально-производственных запасов и расчетов потребности в сырье, материалах и полуфабрикатах на разных производствах, сделанного в Excel с макросами VBA. Не исключаю вероятность того, что ваш файл мог бы в разы быть меньше за счет изменения организации информации, временного хранения промежуточных данных расчетов, замены формул на значения, вычисляемые макросами. Пишите мне, и мы что-нибудь сможем придумать.
Благодарю за предложение , но тема вопроса не в разработке новой БД , а в конкретной проблеме. Хотя над Вашим предложением я , возможно , подумаю . ;)
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Teslenko_EA писал(а):Здравствуйте Vit_v.
самым конструктивным в Вашем случае думаю будет совет:
начните изучентие систем управления базами данных (СУБД)
одним из представителей является MS Access.
Евгений.
:) Это мой 2-й вопрос : какая СУБД предпочительней и почему . Не хотелось бы вкладывать свое время в неперспективные изыскания. Во времена моего образования СУБД работали еще под DOS ... А потребность в этом умении возникла только сейчас . Так сложилось что теории по БД у меня больше чем практики :) . А времени хватало только на EXEL . ( Не мусор же у меня в 40 мб :D )
Аватара пользователя
mc-black
Сообщения: 250
Зарегистрирован: 08 май 2008, 16:09
Откуда: Россия, Нижний Новгород
Контактная информация:

Благодарю за предложение , но тема вопроса не в разработке новой БД , а в конкретной проблеме. Хотя над Вашм предложением я , возможно , подумаю .
Тогда по теме. Предлагаю начать избавляться от формул в пользу вставки значений в тех местах таблицы, где это возможно и имеет смысл. Пример. Таблица на листе 80 столбцов 9000 строк (у тебя это может быть гораздо больше). Вся таблица вычисляется из данных других листов формулами ЕСЛИ, ВПР, СУММЕСЛИ, СУММПРОИЗВ, СУММ и др., новая информация дописывается в конец таблицы вставкой значений в пару-тройку столбцов, остальные столбцы вычисляются формулами. Книга начинает сильно тормозить-пересчитывать при изменениях некоторых ячеек. Предлагаю из 9000 строк формулы оставить только в одной строке, чтобы она копировалась при добавлении данных ниже, остальное меняться по смыслу не должно. Как тебе?
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
кЭто мой 2-й вопрос : какая СУБД предпочительней и почему .
Интересный вопрос. Я тоже бы хотел знать))) По-моему, Access не подходит для объема данных порядка 40 мегабайт и выше. Рекомендовать MS SQL Server или Oracle - напротив, как бы это не показалось стрельбой из пушки по воробьям. Есть несколько вариантов, но т.к. я с ними непосредственно не работал, рецензий дать не могу: SQLite, MySQL, Firebird..
На заказ: VBA, Excel mc-black@yandex.ru
Vit_v
Сообщения: 4
Зарегистрирован: 11 июл 2009, 13:15

mc-black писал(а):Тогда по теме. Предлагаю начать избавляться от формул в пользу вставки значений в тех местах таблицы, где это возможно и имеет смысл. Пример. Таблица на листе 80 столбцов 9000 строк (у тебя это может быть гораздо больше). Вся таблица вычисляется из данных других листов формулами ЕСЛИ, ВПР, СУММЕСЛИ, СУММПРОИЗВ, СУММ и др., новая информация дописывается в конец таблицы вставкой значений в пару-тройку столбцов, остальные столбцы вычисляются формулами. Книга начинает сильно тормозить-пересчитывать при изменениях некоторых ячеек. Предлагаю из 9000 строк формулы оставить только в одной строке, чтобы она копировалась при добавлении данных ниже, остальное меняться по смыслу не должно. Как тебе?
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------

Интересный вопрос. Я тоже бы хотел знать))) По-моему, Access не подходит для объема данных порядка 40 мегабайт и выше. Рекомендовать MS SQL Server или Oracle - напротив, как бы это не показалось стрельбой из пушки по воробьям. Есть несколько вариантов, но т.к. я с ними непосредственно не работал, рецензий дать не могу: SQLite, MySQL, Firebird..
" строк формулы оставить только в одной строке, чтобы она копировалась при добавлении данных ниже, остальное меняться по смыслу не должно. " Если я правилно понял - мысль . А реализовыать при помощи VBA ? У меня в каждой "строке" разные условия для возврата значений.

" SQLite, MySQL, Firebird ". Я так же провел поверхностный анализ и решил что для моих нужд и при моих знаниях мне достаточно ( было ) возможностей экселя. :) Начиналось с малого :)

Тогда остается или углубится в VBA , или занятся изучением 1С, как самым простым с точки зрения востребованности и поддержки..Нужно поразмыслить :)
Аватара пользователя
mc-black
Сообщения: 250
Зарегистрирован: 08 май 2008, 16:09
Откуда: Россия, Нижний Новгород
Контактная информация:

Я "портянку" из нескольких тысяч строк получаю во время работы макроса, он очищает всю таблицу, создает несколько столбцов, остальные столбцы вычисляются формулами. В конце работы макроса формулы заменяются значениями. Файл весит при этом прилично, но вычисления формул не тормозят работу книги. На случай, чтобы продолжить таблицу или обновить значения части строк в последней (или первой) строке я формулы не удаляю.
На заказ: VBA, Excel mc-black@yandex.ru
Vit_v
Сообщения: 4
Зарегистрирован: 11 июл 2009, 13:15

mc-black писал(а):Я "портянку" из нескольких тысяч строк получаю во время работы макроса, он очищает всю таблицу, создает несколько столбцов, остальные столбцы вычисляются формулами. В конце работы макроса формулы заменяются значениями. Файл весит при этом прилично, но вычисления формул не тормозят работу книги. На случай, чтобы продолжить таблицу или обновить значения части строк в последней (или первой) строке я формулы не удаляю.
А если 9000 строк при 30 столбцах ? И это за 2 месяца работы ? :D Вобщем я уже сам понял в чем моя ошибка... Нужно менять структуру данных и формул.Выйти на необходимый минимум.Углубится в VBa . Проработать формы отчета .А там принимать решение по использованию СУБД ...
Спасибо за дельные советы !
Ответить