Сервіс розрахован на малий та середній бізнес.
Загальний огляд сервісу на нашому сайті за посиланням
Хорошоп - українська платформа швидкого та зрозумілого запуску інтернет-магазинів.
Щоб отримати нашу консультацію у подальшій роботі з платформою, зареєструйтесь за посиланням .
Наш власний досвід переходу з Бітрікс на Хорошоп
2026-07 Автор: Кубик. Цикл матеріалів "Непаперова армія".
У цій статті наведено технічні рекомендації, які допоможуть оптимізувати роботу Excel з ЕЖООС, зменшити розмір файлу і пришвидшити його роботу. Рекомендації можна використовувати незалежно від розміру підрозділу, але практичний ефект вони матимуть тільки на великих Excel таблицях.
Якщо у вас менша кількість даних, стаття буде вам корисна більше для розвитку, ніж для практичної оптимізації ЕЖООС Кубик. На менших розмірах все має працювати швидко і не вимагати додаткових дій.
Оптимізувати ми будемо два параметра: швидкість перерахунку всіх формул і розмір файлу. Як визначити розмір файлу зрозуміло - просто зафіксуйте його початкове значення. А для визначення швидкості перерахунку формул в Excel можна використати наведений нижче макрос. Перед запуском макросу залиште відкритим тільки один файл Excel, швидкість перерахунку якого треба визначити. Зробіть замір швидкості перерахунку 5-7 разів, після чого відкиньте найбільше і найменше значення.
Sub MeasureCalculationTime()
Dim startTime As Double
Dim endTime As Double
' Вимкнути події та екранне оновлення
Application.ScreenUpdating = False
Application.EnableEvents = False
startTime = Timer
Application.CalculateFullRebuild
endTime = Timer
MsgBox "Час перерахунку: " & Round(endTime - startTime, 2) & " секунд"
' Відновлення стану
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
Швидкість повного перерахунку
менше 7-8 секунд - нічого не робити;
8-15 секунд - треба задуматись;
більше 15 секунд - треба оптимізовувати.
Розмір файлу:
до 3 МБ на 1 000 рядків аркушу ООС - нічого не робити;
3-5 МБ на 1 000 рядків аркушу ООС - треба аналізувати, дивитись на показник швидкості і загальний розмір файлу;
більше 5 МБ на 1 000 рядків аркушу ООС - треба оптимізовувати.
Показники пов'язані між собою, тому, оптимізуючи один із них, ми будемо автоматично покращувати й другий. Можливий виняток - якщо у вас навіть відносно невеликий підрозділ і кількість рядків аркушу ООС менше 3 000, але вже накопичилася значна історія ведення. У такому разі може виникнути потреба зменшити розмір файлу навіть за умови, що швидкість перерахунку формул залишається задовільною.
Excel доволі оптимально зберігає інформацію в клітинках, які містять значення. У випадку з формулами дані зберігаються менш раціонально. Навіть якщо у великій смарт-таблиці весь стовпець обчислюється за однією формулою, ця формула зберігається окремо для кожної клітинки без додаткової оптимізації. В ЕЖООС Кубик таких стовпців багато, тому файл із формулами важить набагато більше, ніж аналогічний файл без формул.
Перш ніж розпочати оптимізацію, потрібно визначити, який саме аркуш створює найбільше навантаження і скільки він важить.
Зробіть копію файлу і всі дослідження робіть на копії. Після того як отримаєте потрібний результат, перенесіть виконані оптимізації до робочого файлу.
Для кожного аркуша по черзі виконайте такі дії:
Найбільш "важкими" аркушами в ЕЖООС Кубик будуть Статуси, Переміщення та ООС. Значне навантаження також може створювати аркуш Статистика.
Розглянемо варіанти оптимізації кожного з цих аркушів.
Особливістю аркушу Статуси є те, що він розростається швидше всіх. І якщо ви ведете ЕЖООС вже рік, то його розмір може бути доволі суттєвим навіть для не дуже великого підрозділу. Є 2 способи оптимізації цього аркушу:
Спосіб 1.
Без втрати інформації за попередні періоди.
Для цього вам необхідно виконати наступні кроки:
=IF([@20]="";"";IFERROR(MATCH([@20];тСтатусиІсторія[491];0);кНеЗнайдено))
замінити на
=IF([@20]="";"";IFERROR(XMATCH([@20];тСтатусиІсторія[491];0;-1);кНеЗнайдено))
Теоретично оптимізація формули також має дати певний, хоч і невеликий, сукупний ефект. Однак під час тестування я не помітив суттєвої різниці. Натомість кроки 1 і 2 впливають суттєво.
Спосіб 2.
З видаленням інформації за попередні періоди.
Якщо розмір таблиці історії статусів стає занадто великим і оптимізації способом недостатньо, залишається лише скоротити історію статусів.
Визначте, за який період потрібно зберегти історію в архівній копії і прибрати з поточного файлу.
Для коректної роботи ЕЖООС необхідно, як мінімум, зберегти записи, які впливають на формування табеля, тобто записи починаючи з початку поточного місяця.
Для прикладу наведу кроки, як видалити записи за період до 01.01.2026.
Важливо! Виконуйте дії саме в такому порядку. Якщо ви спробуєте видалити велику кількість записів, попередньо не відсортувавши їх в нижню частину таблиці, Excel може зависнути на кілька годин, навіть у не великому файлі. Видалення роздроблених діапазонів рядків у - це ресурсомістка операція, від якої Excel стає "погано".
Оптимізація аркуша Переміщення аналогічна оптимізації аркуша Статуси.
Важливо! Однак слід зазначити, що видалення історії з цього аркуша є вкрай небажаним, оскільки саме тут зберігається історія змін посад (послужний список) військовослужбовця. Ця інформація буде потрібна при впровадженні будь-якої ІКС, підготовки довідок та в інших випадках. Тому варіант з архівуванням історії обирайте лише в крайньому випадку. Один із можливих сценаріїв, коли це може бути доцільним, надано в розділі, присвяченому оптимізації аркуша ООС. У цьому розділі розглянемо лише спосіб оптимізації, який не передбачає втрати інформацї за попередні періоди.
Оптимізація аркушу переміщення без втрати інформації за попередні періоди.
Для цього необхідно виконати наступні кроки:
Особливістю роботи після заміни формул на значення в аркуші переміщення є те, що рядки пов'язані між собою. Якщо вносяться зміни до попередніх періодів, виправляються помилки, або виконуються зміни у зв'язку зі скасуванням пунктів наказів, необхідно бути уважним і дивитись на попередні записи по людині, дані якої коригуються. За потреби їх слід скоригувати вручну або відновити формулу в відповідному стовпці, після чого виконати кроки 1-2.
Якщо процедура заміни формул на значення виконується не вперше, то перед її повторним виконанням треба спочатку відновити формули для всього стовпця, а вже потім знову виконати кроки 1-2.
Також доцільно не скидати формули за якийсь період, наприклад, останні 3-6 місяців, навіть якщо вже є наступні переміщення. Це практично не вплине на швидкість роботи і розмір, але дасть змогу за потреби виконувати коригування в автоматичному режимі.
Аркуш ООС є центральним аркушем ЕЖООС від Кубик. Окрім демоданих, на ньому збирається змінна облікова інформація з аркушів Статуси, Переміщення, Звання, Контракти та Посади. Тому, на відміну від аркушів Статуси і Переміщення, скидати формули з аркушу ООС не можна! Єдиний стовпець, у якому можна скинути формулу, - це дата народження, яка обчислюється з ІПН, але це ніяк не прискорить роботу файла.
Тому єдиним способом оптимізації є своєчасне перенесення виключених військовослужбовців на аркуш Виключені (інструкція, як це робити, надана в кінці частини 2.), а також періодичне видалення накопиченої історії статусів і переміщень щодо цих військовослужбовців з аркушів Статуси та Переміщення. Важливо не видаляти ніяку інформацію безповоротно. Під видаленням у цьому випадку мається на увазі перенесення даних до окремого архівного файлу або на архівний аркуш у цьому ж файлі ЕЖООС. Такий підхід не зменшить розмір файлу, але дасть змогу прискорити обчислення завдяки тому, що кількість записів в таблиці історії статусів і переміщень буде зменшено.
Приклад того, як відібрати та перенести історію статусів виключених військовослужбовців з аркуша Статуси.
Для аркуша Переміщення порядок дій аналогічний.
Оптимізація буде помітною, якщо архівуватиметься велика кількість записів (понад 1 000). Тому цей спосіб оптимізації доцільно робити 1-2 рази на рік, коли накопичиться значна кількість виключених військовослужбовців і попередні способи оптимізації вже не дають суттєвого результату.
Аркуш Статистика у наданому зразку створено як приклад, він має бути налаштований індивідуально відповідно до ваших потреб і вимог.
Якщо обчислення статистики займає більше 1-2 секунд, доцільно виділити окрему клітинку, яка визначатиме, чи потрібно виконувати розрахунок статистики. Після цього до всіх формул підрахунку слід додати умову, щоб обчислення виконувалося лише тоді, коли ця клітинка має відповідне значення.
Наприклад формула без контролю перерахунку:
=COUNTIFS(тШПО[220];ПідрозділиБЧС&"*";тШПО[210];C$5;тШПО[214];кТак)
може бути замінена на формулу з контролем перерахунку:
=IF($A$1="Рахувати";COUNTIFS(тШПО[220];ПідрозділиБЧС&"*";тШПО[210];C$5;тШПО[214];кТак);0)
Така оптимізація дозволить не обчислювати статистику під час внесення даних, а виконувати її розрахунок лише за потреби, наприклад, перед збереженням файлу.
У великих підрозділах з часом аркуш Посади також може ставати відносно "важким", наприклад, після чисельних організаційно-штатних змін та\або переходу на новий штати. Загалом, незважаючи на велику кількість даних, цей аркуш обчислюється досить швидко і зазвичай не має суттєвого впливу на загальну швидкодію ЕЖООС.
За потреби можна відсортувати всі скорочені посади вниз та скинути формули для них. Також гарною практикою є використання копії файлу, у якій аркуш Посади залишається динамічним (із формулами), а до основного робочого файлу переноситься вже таблиці Посади та\або Підрозділи без формул. Такий підхід є простим і цілком ефективним.
Аналогічно на аркуші ШПО можна скинути формули в стовпцях, які відповідають за зв'язок з аркушем Посади: 220,221, 2,3,5, 210,214 та, насамперед, 771. Дані в цих стовпцях змінюються лише тоді, коли вносяться зміни до штату, але перед тим як це робити зробіть заміри, чи воно того варто.
Для обміну і спільного використання з іншими службами бажано створити окрему версію файлу ЕЖООС, яка буде без формул і включатиме лише головні аркуші, наприклад: ШПО, ООС, Виключені, а також інші аркуші без історичних даних - залежно від потреб вашого підрозділу. Принцип формування такого файлу аналогічний принципу формування регламентованого ЕЖООС. Як альтернативу можна створити макрос, який скидатиме усі формули на всіх аркушах і видалятиме зайве.
Навіть за відносно невеликої кількості даних у смарт-таблиці вставлення великих діапазонів із буфера обміну може займати тривалий час. Особливо це помітно, якщо у вихідному файлі застосовано фільтр і рядки розташовані не послідовно. У такому випадку процес вставлення і розширення смарт-таблиці буде довгим. Щоб уникнути цієї проблеми, використовуйте проміжний файл. Спочатку вставте дані до буферного файлу, а вже з нього перенесіть їх до смарт-таблиці, щоб область яка копіюється була без фільтрів. Також не рекомендується вставляти до смарт-таблиці понад 3 000 рядків за одну операцію.
Видалення рядків із середини великої таблиці може займати тривалий час. Якщо потрібно видалити навіть відносно невелику кількість рядків, спочатку перемістить їх вниз. Для цього позначте потрібні рядки кольором, відсортуйте таблицю за цим кольором, а потім видаліть усі рядки одним суцільним діапазоном знизу таблиці, видалення відбудеться в 10 або в 100 раз швидше.
Закриття файлу може займати тривалий час через очищення внутрішнього кешу Excel. Для файлів розміром понад 20 МБ процес закриття триває декілька хвилин. Така поведінка є коректною і не підлягає оптимізації. Щоб не чекати завершення закриття файлу, можна спочатку зберегти зміни, а потім завершити процес Excel через Диспетчер задач. Перед цим обов'язково переконайтеся, що всі інші відкриті файли Excel такж збережені або закриті, інакше їхні незбережені зміни буде втрачено, а при повторному відкритті почнеться діалог відновлення, що завжди не є добре.
Якщо один із файлів у Excel завис або тривалий час виконує операцію, а вам потрібно відкрити новий файл, не обов'язково чекати завершення поточного процесу. Можна запустити паралельно ще один процес Excel і відкрити потрібний файл в ньому. Для запуску нового процесу використовуйте ключ /x під час запуску програми. Для зручності можна створити окремий ярлик і вказати в ньому команду на кшталт наведеної нижче:
"C:\Program Files\......\EXCEL.EXE" /x
Так 👍 Ні 👎 Зворотній зв'язок 👋
Підтримати проект "Українська непаперова".
Для отримання шаблону надішліть запит на лінію підтримки в формі зворотнього зв'язку, посилання для скачування буде відправлено вам на електронну пошту протягом робочого дня.
Також посилання можно отримати в автоматичному режимі, якщо зробити донат "На Розвиток "Української непаперової". Посилання буде доступне одразу.
Посилання будуть доступні користувачам DELTA або власникам корпоративних облікових записів Сил Оборони України.
Інформація щодо новин і виходу оновлень шаблону на телеграм-каналі.
Підтримка і обговорення в групі Signal за посиланням.
description Огляд сервісу
description Огляд складського обліку
description Огляд обліку торгівельного підприємства
description Огляд обліку виробничих витрат і випуску готової продукції (робіт, послуг)
description Заробітна плата та кадри
Наш власний досвід переходу з BAS на Діловод