Страницы: 1
RSS
Уменьшение размера файла, Косяков нет, но при полном расширении и заполнении слишком раздувается
 
Здравствуйте! Возникла небольшая проблема. При полном расширении и заполнении слишком раздувается размер файла.
Поэтому прошу помощи более опытных пользователей Excel. Нужна помощь в упрощении количества и объёма формул.
Все формулы писал сам, но так как я не особо хорош в Excel, то и формулы все простенькие. Соответственно куча всяких формул, которые помимо того, что раздувают файл, так ещё и грузят комп (работаю в Windows через Parallels).
 
Пожалуйста уточните что Вы подразумеваете под "полным расширением" и какой размер файла для Вас является критическим. Лично я начинаю беситься при открытии эксельного файла более  десяти МБ независимо от железяки, операционки и версии офиса.
На первый взгляд я в Вашем файле никакого особого криминала не нашел.
У Вас главная проблема не с формулами, а именно в наличии пустых строк где данных нет, а формулы есть. Вот и лишний объём.
Ваша таблица имеет право на существование если данные в неё заносятся два-три раза в неделю причём только по одному клиенту. Для другого клиента создайте отдельную таблицу в отдельном файле. Ну и конечно сделайте таблицу куда будут собираться данные из всех исходных таблиц.
Но чтобы избавиться от пустых строк одних формул не хватит, нужно будет писать макросы.
Ну и ещё замечание. По многолетнему опыту работы обратил внимание, что простые пользователи намного лучше работают с таблицами ширина которых сравнима с шириной монитора, т.е. с минимальным движением по горизонтали, при этом вертикальное движение не напрягает, даже без закрепления шапки.

Ну ещё дополнительные советы Вам и всем кто составляет таблицы для заполнения не только вами но и другими людьми:
1. Всегда защищайте ячейки с формулами, даже защита без пароля остановит Вас при случайной попытке изменения ячейки.
2. Желательно выделяйте цветом фона ячейки для занесения данных.
3. Не бойтесь макросов и UserForm
4. Ваша таблица должна работать без ошибок даже если вы посадите за клавиатуру обезьяну. Ещё лучше если выдержит прогулку котёнка по клавиатуре. Идеал - безошибочная работа таблицы если данные в неё заносит менеджер. Вывод: защита должна быть не от дурака, не от обезьяны и котёнка, но от "менеджера".
5. Если используете макросы, то не заморачивайтесь с формулами - вы быстрее реализуете в макросе необходимый результат.
6. Как уже говорил взгляду легче двигаться по вертикали, нежели по горизонтали. Избегайте формы таблицы где каждому дню года соответствует минимум один столбец. В крайнем случае разделяйте на листы по месяцам.
Не стреляйте в тапера - он играет как может.
 
Ts.Soft, Спасибо большое за развёрнутый ответ.

Полное расширение - это моя опечатка. Имелось ввиду "полное заполнение. Ниже я прикрепил файл, практически полностью заполненный. Лист "Май" в таком виде и будет, разве что прибавится строк для других людей. Таких строк будет не менее 100.

Данные в мою таблицу вносятся на дню по 2 новых человека минимум. Вношу данные только я, так как там присутствуют личные паспортные данные людей и мои личные финансовые данные.

Вы пишете, что много формул и можно упростить разве что при использовании макросов. Собственно поэтому и обратился за помощью. Мне нужна помощь в уменьшении самих формул  или их числа. А может более опытные пользователи взглянут и увидят, что можно заменить всё это более простыми формулами массива или макросами.

Таблица сделана в горизонтальном виде специально. По горизонтали вносятся данные по конкретному человеку, А по вертикали идёт список из других людей.
Изменено: zva89 - 02.05.2016 05:20:21
 
Мо быть - http://www.planetaexcel.ru/techniques/12/114/ ... :)
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
ЕСЛИ(...)*ЕТЕКСТ(I4)*(1-O4)
В таких частях лучше образать лишние вычисления:
ЕСЛИ(ЕТЕКСТ(I4);ЕСЛИ(...)*(1-O4))
 
Z, Прошёлся по списку, но у меня практически ничего из того и не было. Разве что изменил формат xlsx на двоичную книгу.

Я думал, что можно как-то макросами или формулами массива заменить часть формул.  
 
Цитата
макросами или формулами массива заменить часть формул
Лучше первый вариант. Формулы работают быстрее, но Вам не нужно пересчитывать большие объемы данных.
Замена формул значениями=уменьшение размера файла
 
vikttur, Можете пожалуйста помочь с этим или хотя бы показать как это делается, конкретно на моём примере. Немного сталкивался с макросами, но толком не могу в них разобраться.
 
Только направление. В реализации, к сожалению, не помогу.
Вам могут показать, как. Но при этом: "Немного сталкивался с макросами, но толком не могу в них разобраться" - мало воятности, что сможете на нескольких примерах реализовать свое, четко работающее решение.

Не настаиваю, только как вариант - ветка платных заказов.
 
vikttur, Хотя бы направление. Уже легче будет. Платные заказы - не мой выбор. Хочу сам во всём разобраться и сам всё сделать.
 
Цитата
zva89 написал: Хочу сам во всём разобраться и сам всё сделать.
Похвально! Однако, есть резон, оглядеться по теме - "Программа для пункта проката" - поиск по такому запросу даст массу интересного (и бесплатного в т.ч.) материала. Пробуем?!. ;)
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
Z, Поискал, есть неплохие программки, но платные. Лучше свою буду сам дорабатывать. Больше толку будет :)
 
zva89, я сейчас набросал приблизительный вариант внешнего вида программки. Она полностью построена на справочниках. При такой организации существенно уменьшается объём хранимых данных, легко добавлять новый инвентарь и менять его параметры. Работа должна быть построена на использовании UserForm и все данные выбираются макросами. Приблизительный внешний вид одной формы я сделал.
Все листы книги должны быть скрыты кроме титульного с которого осуществляется управление.
Если на первом листе нажать кнопку справочник клиентов, то откроется соответствующая форма в которую загрузится список клиентов с соответствующего листа. При наборе в строке поиска фамилии в списке будут оставаться только те клиенты которые удовлетворяют условию поиска. При выборе клиента автоматически загружаются его паспортные данные и фото. Фото должно хранится в определённой папке, имя файла должно совпадать с ID клиента.
В справочнике не хранится информация которая вычисляется, например возраст сегодня. Также адрес проще хранить в одной ячейке не разбивая его на город, улицу и т.п. - вряд ли Вам потребуется выбирать клиентов живущих на определённой улице. А вот поле фактического адреса не помешает. Если он совпадает с адресом регистрации, то в базе ставиться признак, например символ "S". Соответственно в форме при установке флажка совпадения адреса, адрес регистрации продублируется в поле фактического адреса.
Также организованы справочники моделей-тарифов и инвентаря. Надеюсь Ваш бизнес будет процветать и расширяться следовательно нужно будет регулярно добавлять новый инвентарь. Кстати, возможно помечать каждую единицу уникальным штрихкодом (ID инвентаря), тогда при выдаче/возврате можно будет пользоваться сканером.
При оформлении выдачи также будет открываться своя форма где выбирается клиент, инвентарь, планируемый срок. Сумма рассчитывается автоматически. Когда данные заполнены они заносятся на лист База, открывается и заполняется лист Квитанция и отправляется на печать. При возврате инвентаря - своя форма где указывается фактическое время, вносятся суммы компенсации при повреждении инвентаря и печатается итоговая квитанция с учётом ранее оплаченной суммы.
Так же возможно использование кроме персональной скидки клиента сделать справочник скидок и заносить туда скидки которые будут действовать в определённые дни и/или на определённый инвентарь.
Так что советую создавать программу именно по такому принципу, иначе со временем устанете вносить изменения в структуру и формулы.
Не стреляйте в тапера - он играет как может.
 
Ts.Soft, Хорошая программка! Действительно круто сделано! А квитанция автоматом формируется?
 
Должно быть всё автоматом.
Пользователь только выбирает исходные данные.
Не стреляйте в тапера - он играет как может.
 
vikttur, Воспользовался Вашим советом. Получилось такое:
=ЕСЛИ(ЕТЕКСТ(I4);ВПР(G4;Тариф!$K$5:$M$22;2;1);0)*(1-O4)

Спасибо за помощь! Сократил размер файла с 994 КБ до 776 КБ. Дополнительно убрал УФ и получилось 554 КБ
 
Если (1-O4) - условие, а не вычисление, то и его можно записать через ЕСЛИ
Страницы: 1
Читают тему
Наверх