Вихідна ситуація - фінвідділ щодня звіряє банківські виписки з реєстром рахунків у Excel вручну, витрачаючи 2-3 години на день і допускаючи помилки через різні формати дат, комісії банку та часткові оплати. Дані приходять у вигляді кількох Excel/CSV файлів від різних банків і внутрішнього реєстру інвойсів. Потрібно зібрати це в один керований процес у Microsoft Excel з VBA макросами. Технічна середа - Windows 10/11, Microsoft 365 Apps (Excel 64-bit). Дозволено тільки VBA (без сторонніх надбудов і без Power BI). Дані зберігаються на мережевому диску, частина файлів може бути відкритою іншими користувачами. Обсяг - до 50 000 рядків транзакцій на місяць, до 10 000 інвойсів у реєстрі. Потрібна стабільна робота на Excel 64-bit з урахуванням обмежень памʼяті та швидкодії. Предметна область - звірка оплат: повна оплата, часткова оплата, переплата, повернення, комісії банку окремими рядками, різні валюти (UAH, EUR, USD), різні формати призначення платежу з номером інвойсу/договору. Конкретний результат - Excel файл-шаблон з кнопками на стрічці/формі та набором VBA модулів, який: 1) Імпортує виписки з 2-3 різних форматів (CSV з роздільниками ; або , та XLSX) і нормалізує їх у єдину таблицю (Power Query не використовувати). 2) Імпортує внутрішній реєстр інвойсів з окремого файлу, оновлює довідники контрагентів і договорів. 3) Автоматично матчує транзакції з інвойсами за правилами: номер інвойсу в призначенні, сума з допуском до 0.5% (через комісії/курсові різниці), дата платежу в допустимому вікні +/- 10 днів, підтримка часткових оплат з накопиченням залишку. 4) Формує звіт по статусах інвойсів: оплачено, частково, прострочено, невідомий платіж, підозрілий дубль. Для невідомих платежів створює список для ручного рознесення з можливістю підтягнути інвойс зі списку. 5) Створює журнал виконання (лог) з часом, кількістю імпортованих рядків, кількістю співпадінь, помилками парсингу. 6) Забезпечує захист від типових збоїв: відсутні колонки, неправильні кодування CSV, пусті значення, дублікати, змішані формати дат. Обмеження - не використовувати зовнішні бібліотеки, COM-доступ до банківських клієнтів, інтернет-запити. Потрібно мінімізувати ручні дії до запуску макросів і вибору файлів. Код має бути читабельний, з коментарями, розбитий на модулі. Заборонено зберігати паролі в коді. Етапи виконання - аналіз прикладів файлів і узгодження правил матчінгу, розробка структури книги і модулів, реалізація імпорту та нормалізації, реалізація матчінгу та ручного рознесення, формування звітів і логу, оптимізація швидкодії, тестування на контрольному наборі. Критерії приймання (вимірювані) - імпорт 50 000 транзакцій і 10 000 інвойсів виконується до 3 хвилин на типовому офісному ПК; точність автозвірки на наданому тестовому наборі не нижча за 95% (помилки підтверджуються вручну за логом); при некоректному файлі макрос не падає, а видає зрозуміле повідомлення і запис у лог; результати звітів відтворювані при повторному запуску на тих самих файлах. Вихідні матеріали - буде надано 3 приклади виписок різних банків, приклад реєстру інвойсів і опис правил, які зараз застосовуються вручну. Потрібно також додати коротку інструкцію користувача в окремому аркуші.